목록분류 전체보기 (74)
과거의 내가 미래의 나에게
웹 서버는 IP 주소를 통해 사용자가 원하는 사이트로 이동시켜준다. 그러나 사람들이 IP 주소를 외우기에는 벅찼고, 그렇기에 문자로 이루어진 도메인 주소를 만들어냈다. 그리고 도메인 주소를 통해 IP 주소를 알 수 있도록 DNS가 만들어진다. 이번 글에서는 DNS가 어떤 구성으로 이루어져 있는지에 대해 살펴보겠다. DNS 구성 DNS(Domain Name System)에서 웹사이트의 IP 주소와 도메인 주소를 이어주기 위해 일하는 서버들을 DNS Server라고 한다. 이 DNS Server는 네임 서버, 도메인 서버 등으로 다양하게 불리는 데 어찌되었든 이들이 하는 일은 웹사이트의 IP 주소와 도메인 주소를 이어주는 것이다. DNS 서버를 분류하기 위해 많은 글을 읽어봤지만 부족한 정보 수집 능력 탓인..
웹서버에 웹사이트의 정보들이 저장되어있고, 사용자는 웹 브라우저를 통해 웹서버의 웹사이트를 가져온다. 그러나 인터넷 상에는 수많은 웹서버들이 있다. 이 널려있는 웹 서버에서 사용자는 자신이 보고싶은 웹 사이트를 가져오기 위해 웹사이트 주소를 입력한다. 여기서 사용자는 아마 보통 문자열로 이루어진 주소를 입력할 것인데, 이를 도메인 주소라고 한다. 하지만 웹 서버는 이러한 도메인 주소를 통해서 갈 수 없는 곳이다. 웹 서버의 주소는 IP 주소를 통해서만 접근할 수 있는데, 이 때 도메인 주소에서 IP 주소로 바꾸어주는 것이 바로 DNS 서버의 역할이다. DNS(Domain Name System) DNS(Domain Name System)는 거대한 분산 시스템으로, 웹사이트의 IP 주소와 도메인 주소를 이어..
저번 글에서는 개발자란 무엇인지 그리고 웹이란 무엇인지 살펴보았다. 이번 글에서는 웹이란 무엇인지 정의내리고, 웹의 동작 원리는 어떤 과정인지 살펴봄으로써 앞으로 배워야 할 것이 무엇이 있을 지 살펴보는 것이 목적이다. 그래서 웹은 뭔데? 웹이 탄생하게 된 과정을 살펴보면서 웹이 어떤 것인지 어렴풋이 알게되었지만 그래서 웹이 무엇이냐? 라고 질문한다면 어떻게 대답해야할까. 웹은 단순하게 인터넷을 통한 서비스들 중 문서(=웹페이지)를 공유하고 정보를 검색 할 수 있는 서비스 제품이다. 수많은 컴퓨터 프로그램 중에 하나의 프로그램일 뿐인 것이다. 인터넷 서비스에는 WWW(줄여서 Web), E-Mail, Telnet(원격접속), FTP(파일송수신), IRC(채팅) 등이 있다. 위의 서비스들은 보통..
본 글은 CSS 설계 기법 책을 읽고 단순하게 정리하고 나열한 글이다. 추후에 이러한 지식을 바탕으로 프로젝트의 CSS 체계를 직접 고려해보고 적용시키는 과정을 거쳐보려고 한다. OOCSS 기초 중의 기초인 CSS 설계 기법이다. 가장 밑바탕이 되어준다. 스트럭처와 스킨을 분리 구조(width ,height ,margin ,padding 따위)와 스킨(background, font, color 따위)을 분리하여 css를 설정한다. 이는 상황에 따라 적절히 구분해야할 것이다. 컨테이너와 콘텐츠 분리 한 영역에만 적용될 콘텐츠 만드는 것을 지양하자. SMASSS 느슨한 개발을 원할 경우에 적합하다. 다른 기법과 조합해도 좋은 기법. 1. 베이스 규칙 프로젝트의 표준 스타일을 정의한다. ID 셀렉터나 clas..
HTTP 프로토콜의 비연결성 서버와 클라이언트 통신규약인 HTTP 프로토콜은 비연결을 지향한다. 서버와 클라이언트는 통신을 할 때 연속적으로 이어지지 않고 한 번 통신이 되면 끊어진다. 클라이언트가 서버에 요청을 했을 때, 서버는 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식인 것이다. 따라서 서버에게 클라이언트가 누구인지 그 때 그 때 알려주어야하는데 이러한 번거로움을 해결하기 위한 것이 cookie와 session이다. Cookie 쿠키는 HTTP의 일종이다. HTTP에서 클라이언트의 상태 정보를 PC에 작은 기록 정보 파일 형태로 저장해두었다가 필요 할 때 참조하거나 재사용할 수 있다. 웹사이트는 쿠키를 통해 접속자의 장치를 인식하고 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장한..
개발자란 무엇일까? 모든 것을 배우기 앞서 가장 근본적인 것이 궁금해졌다. 내가 직업이라고 말하고 다니는 “개발자”란 정확히 무엇을 하는 직군일까? 누군가 이런 질문을 하였을 때 이해하기 쉽도록 웹사이트 같은거나 모바일 앱 같은 것을 만드는 사람이야. 라고 가볍게 대답해주었지만 개발자인 내 자신은 이 대답이 개발자를 표현할 수 있는 문장이라고는 생각하진 않았다. 어렴풋이 개발자란 무엇인지 알고 있었지만 막상 그것을 문장으로 표현하려니 손이 멈춰지는 나를 보고는 개발에 대해 더욱 더 심도있게 학습하기에 앞서 “개발자”란 무엇인지 깊이 생각하고 정의 내릴 필요가 있음을 느껴 이 글을 쓰기 시작한다. 무언가를 알기 위해서는 그것의 역사를 보면 정의가 명확해진다. 개발자의 역사는 곧 컴퓨터의 발전과 맥락을 같이..
「딥다이브 자바스크립트」 정리 - 생성자 함수에 의한 객체 생성 ※ 아래 내용은 책을 통해 학습한 것을 개인적으로 정리한 것으로 내용이 다소 부정확 할 수 있습니다. 생성자 함수 Object, String ,Number, Boolean, Function, Array, Date, RegExp 등. 생성자 함수는 new를 통해서 호출하는데 만약 new 없이 호출한다면 그냥 일반 함수로 작동한다. new Object()로 객체를 생성하고 그 이후 프로퍼티 또는 메서드를 추가하여 완성시킬 수 있다. 하지만 객체 리터럴이 훨씬 더 간단하기에 굳이 사용할 필요는 없을듯… 생성자 함수를 통한 객체 생성 생성자 함수는? 함수 선언문 또는 함수 표현식으로 정의한 함수는 일반적인 함수로 호..
「딥다이브 자바스크립트」 정리 - 프로퍼티 어트리뷰트 ※ 아래 내용은 책을 통해 학습한 것을 개인적으로 정리한 것으로 내용이 다소 부정확 할 수 있습니다. 먼저 내부슬롯과 내부 메서드에 대해서 내부 슬롯과 내부 메서드는 js 엔진 내부에서만 사용하는 의사 프로퍼티와 의사 메서드이다. 이는 js 엔진 내에서 돌아갈 뿐 개발자가 직접 접근할 수 있는 객체의 프로퍼티는 아니다 하지만 일부에 한하여 간접적으로 접근할 수 있는 수단을 제공하기도 한다. 예를 들어 모든 객체는 [[Prototype]]이라는 내부 슬롯을 갖는데, 원칙적으로 직접 접근할 수는 없지만 __proto__를 통해 간접적으로 접근할 수 있다. 참고로, ECMAScript 사양에 등장하는 이중 대괄호로 감싼 이름들이 내부 슬롯과 내부 메서드이다..