▣ nodejs.org > about 기본 예제 코드로 살펴보는 중요내용.
▣ 위 코드의 역할
1. 웹서버를 만드는 코드
2. 만들어진 웹 애플리케이션은 나타난 주소로 접근해서 요청이 들어오기를 기다리게 됨.
3. (코드 해석) 웹 브라우저로부터 통해서 요청한 내용을 받아서 hello world 라는 텍스트를 출력하게 된 것.
이 개념을 이해하기 위해서
인터넷, 도메인 네임, IP, PORT를 공부하면 좋다.
▣ 인터넷의 동작방법
1. 서버
2. 클라이언트
3. IP
4. PORT
인터넷?
- 1960 인터넷 등장으로 더 이상 컴퓨터 간에 독립되지 않고 서로 연결되어 협력적인 작업을 시작할 수 있게 됨.
클라이언트 & 서버
- 웹브라우저가 설치 된 곳
- 어떤 주소를 가진 컴퓨터(서버: 요청에 응답해서 정보를 제공)에 접속해서 정보를 요청하는 것.
도메인 & IP
도메인 : 사람이 기억하기 쉽도록 한 이름 ( 비유 : 주소록 친구 이름 )
IP : 도메인과 일치하는 구체적인 주소 또는 어드레스 ( 비유 : 주소록 친구 이름에 해당하는 전화번호 )
▣ 서버에 주목! ( 현재 node.js를 공부중 )
특정 주소를 가지고 있는 컴퓨터(서버)를 자세히 보면, 그 서버 컴퓨터에 여러가지의 다양한 서버 소프트웨어(데이터베이스 서버, 채팅 서버, 게임서버, 웹서버... )가 설치 되어 있을 수 있다.
사용자가 해당 주소로 접속했을 때, 서버 컴퓨터 설치된 애플리케이션 중 어떤 서버 애플리케이션에 연결 및 응답할까?
바로 이부분이 node.js 수업에서 중요한 부분!
PORT?
컴퓨터는 0번부터 65535개의 구멍 또는 문이 있다. 이 문을 PORT라고 한다.
예를 들어, http://주소:80/
- 약 6만개에 달하는 포트 중에서 80번 포트에 웹 서버를 실행(연결)을 시킨후 웹 서버가 80번 포트를 바라보게(리스닝하도록) 한다.
- 사용자가 위 주소로 접속했을 때, 해당 주소에 해당하는 컴퓨터(서버)를 찾아온뒤 80번 포트와 연결하고 싶다고 전달하는 것.
하지만 :80 쓰기 귀찮음! 그래서 생략 가능! 어떻게?
- 기본 주소로 접속했을 때, 컴퓨터는 사용자가 웹브라우저를 통해 접속했다는 것을 http를 통해 알고 있기 때문에 자동으로 80번과 연결해준다. - - http를 통해서 접속한다면 80번 포트를 쓰자고 약속되어 있다.
- 80번 포트 이외에 포트에 대해서 접속 가능하게 처리하기 위해서, 웹서버가 특정 포트를 가질 수 있도록 연결 시켜 주어야 한다.
(위 코드를 다시 살펴보면)
Line 6 : createdServer라는 명령을 통해 서버 1대를 만든다.
Line 12 : 그 서버를 만들고 .listen 이라는 명령어를 통해 어떤 컴퓨터에 리스닝하겠금 할 건지 설정.
첫번째 인자는 포트는 1337 전달, 호스트네임(IP) 두번째 인자로 전달 : node.js를 이용해서 웹서버를 만들고 그 웹서버가 1337를 리스닝하도록 시키는 코드 (전달받는 인자를 수정한다면 접속할 수 있는 주소가 바뀐다.)
Line 9 : 사용자가 접속했을때 hostname으로 접속한 사용자에 대해서 응답하라!라는 명령이다. 그 응답 결과는 hello world라는 코드를 출력하는 것이 이 코드의 취지.
Line 13 : 리스닝하고 있는 컴퓨터(서버)로 접속 중일 때
▣ 이번 포스팅에서 가장 중요한 항목 : 인터넷은 어떻게 동작하는가
node js에서 공식적으로 자신들을 설명할 때 사용하는 코드가 위 (기본) 예제 :
nodejs는 파이썬 루비 자바 등 컴퓨터가 할 수 있는 아주많은 일들을 처리할 수 있는 역량을 가지고 있지만,
nodejs가 가장 중점으로 두는 것은 서버로 들어오는 요청을 빠르고 편리하게 응답하는 어떤 애플리케이션을 만들 수 있는 기반을 제공하는 것!
'Others > NODE.JS' 카테고리의 다른 글
Express] 정적파일을 서비스하는 법 (0) | 2017.09.11 |
---|---|
Express 설치 및 기본코드분석 (0) | 2017.09.11 |
동기와 비동기 (0) | 2017.09.07 |
모듈과 NPM (0) | 2017.09.07 |
서버 측 자바스크립트 - nodejs 소개 (0) | 2017.09.03 |