본문 바로가기
nodejs

[node.js] 예제로 간단하게 웹서버 구축

by jinbro 2017. 4. 11.

[목표]

- node.js로 웹서버 간단하게 구축해보기
- 브라우저 - 웹서버 HTTP 통신 기본개념 익히기
- node.js로 간편하게 웹서버 구축하는 방법 알기(다음 포스팅)


[서버구축]
(1) node.js 공식 웹사이트 about 탭 가기 : https://nodejs.org/ko/about/
(2) 예시 코드 긁어오기
1
2
3
4
5
6
7
8
9
10
const http = require('http');
const hostname = '127.0.0.1'//클라우드 서버컴퓨터(원격 접속 후 웹서버 구축)라면 아래 (5)번 항목 참고
const port = 3000;
const server = http.createServer((req, res) => {
     res.statusCode = 200;
     res.setHeader('Content-Type''text/plain');
     res.end('Hello World\n'); });
});

server.listen(port, hostname, () => {
     console.log(`Server running at http://${hostname}:${port}/`);
});
cs

(3) node.js 파일 전용 디렉토리에 vi로 js 파일 만들고 코드 붙여넣기

(4) node 파일이름.js 실행 : 로컬(같은 컴퓨터 내, 로컬호스트에서만 동작)에서 접속할 수 있는 웹서버가 실행됨

- 정상적으로 실행된다면 콘솔창에 Server running at http://호스트네임(ip주소):3000/ 메세지가 출력됨


(5) 브라우저에서 접속해보기(거듭 말하지만 같은 호스트 내에서 === 같은 컴퓨터 내에서만 동작함) : 주소 - 127.0.0.1:3000
- 원격 서버컴이 돌리고 있는 서버에 현재 컴퓨터 브라우저로 접속하고싶다면 서버컴퓨터의 포트 번호를 열 것
- 원격 서버에 접속하기위해 위 코드 중 hostname을 수정(서버컴퓨터의 프라이빗 아이피로, 접속할 때는 퍼블릭아이피)해야함 
- 원격 서버컴을 돌리고 있는 서버에 접속하려면 원격서버의 http://서버컴의 퍼블릭 아이피 + 포트번호로 주소를 구성해야함
- 로컬에서 돌린다면 같은 호스트 내에서 돌리고 있기때문에 그대로 접속하면 됨
- http 통신은 요청과 응답으로 이루어지는 것이기때문에 서버에 요청하는 길을 열어줘야함(포트 열기, 왜 포트가 필요한지 알고싶으면 아래 링크)


[서버구축 코드분석]
- 1번째 줄은 http 통신을 위해 필요한 라이브러리(node.js에서는 모듈이라함)를 불러오는 것
- 2,3 번째 줄까지는 서버 컴퓨터 정보를 등록함(호스트네임 : 서버컴퓨터의 이름 === ip주소 혹은 도메인, 포트번호)
- 4번째줄부터는 서버컴퓨터에 웹서버를 만드는 과정임 : req는 request(요청), res는 response(응답)을 뜻함
- 4번째줄부터의 내용은 서버가 브라우저로부터 받은 요청에 대한 응답을 처리하기위해 필요한 것들을 나열해놓음
- 그리고 server.listen은 웹서버가 실제 실행되는 구문 : 웹서버가 정상동작하면 console.log 내의 메세지가 콘솔에 나타남


[서버구축 참고자료]
(1) 생활코딩 node.js 간단한 웹서버 구축 : https://opentutorials.org/course/2136/11853
(2) 생활코딩 인터넷 : https://opentutorials.org/course/1688/9483

(3) node.js 공식 웹사이트 : https://nodejs.org/ko/about/



댓글