記錄

생활코딩_Node.js) IP Address, Port, Node js 기본 코드 본문

Web/Node.js

생활코딩_Node.js) IP Address, Port, Node js 기본 코드

surhommejk 2018. 7. 27. 15:31


IP Address와 Port

예전에 한 번 개념을 정립했었는데 이번에 강의에 나와서 다시 정리한다. 무척 쉽지만 항상 그냥 지나쳤던거라.. 흔히 IP 라고 하는 것은 사실 'IP 주소'(IP Address)를 줄여서 우리가 그냥 편하게 쓰는 용어다. 컴퓨터 네트워크 상에서 컴퓨터 장치가 서로를 인식하는 유일키 같은 개념이 IP Address이다. 전화번호와 같은 것이라고 보면 된다. 그리고 Port는 0 ~ 65535개가 존재하는데 컴퓨터가 네트워크 데이터 송수신을 위해 활용하는 '창구'나 '통로'같은 개념이다. 강의에서 나왔듯이 '항구'로서의 개념도 이해하기가 쉽다.

정리하자면 IP Address로 컴퓨터를 구분하여 접속하고 Port를 통해 서버를 구분하는 것이다. 예를 들어 http://jk.com:1337로 접속한다면 jk.com에 해당하는 IP Address로 접속하여(이는 DNS에서 다시 다룰 것 같음) jk.com이 가리키는 IP Address의 컴퓨터가 가진 포트 중 1337 포트로 요청을 하게 되는 플로우다. 강의에서 조금 더 나아가 설명해 준 것은 http:// 로 접속할 경우 웹 브라우져의 접속이라고 판단하고 웹 서버 전용 포트인 80번으로 요청하게 된다는 것이었다.



const http = require('http');

const hostname = '127.0.0.1';
const port = 1337;

http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World123123\n');
}).listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});


1. 

이를 바탕으로 위 Node.js의 기본 코드를 분석해보자. Node.js는 HTTP라는 빌트인 모듈을 갖고 있다. HTTP 모듈은 Node.js가 HTTP를 통해 데이터를 전송하는 것이 가능하도록 하는 역할을 한다. 따라서 HTTP 모듈을 만들기 위해서 require() 함수를 실행시킨다

const http = require('http');


2.

const hostname = '127.0.0.1';
const port = 1337;

곧 파라미터로 쓸 변수들이라서 일단 선언 해둔 것. const로 선언한 이유는 더 이상 재할당을 통해 바꿀 일이 없다고 판단했기 때문인 것 같고 const, let, var의 차이는 깔끔하게 정리된 포스팅이 있어 링크를 남긴다(https://hyunseob.github.io/2016/11/21/misunderstanding-about-const/)


3.

http.createServer(function (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

http 객체가 가진 createServer() 함수를 이용해 서버를 만드는데 이 서버는 특정 포트에 예의주시 하도록 listen() 을 통해 포트를 지정할 수 있다. createServer()에 파라미터로 자리한 function의 경우 누군가가 해당 IP 주소로 접근하여 listen의 파라미터로 설정된 포트로 접속을 시도할 경우 실행된다.(The function passed into the http.createServer() method, will be executed when someone tries to access the computer on the port)

Comments