node.js 서버구축하기


node.js version : v6.9.2 LTS

last updated : DEC 30th 2016

author : kodonho

본 강좌는 node.js 기반의 웹서버를 구축하기 위한 설치, 기초문법, 기본구조(event, module 사용법 등) 그리고 node.js의 웹서버모듈인 http 사용에 중점을 둔 강좌입니다. node.js 에 내장된 기본 모듈중심의 강좌이므로 express와 같은 외부 모듈에 대한 사용법은 이 강좌에서 크게 다루지 않습니다.
각 강좌는 연속성을 가지지만 각각의 소스코드는 독립적으로 실행가능하기 때문에 필요한 Chapter만 따로 구독할 수 있습니다.
node.js 는 크롬의 V8 엔진을 사용하기는 하지만 브라우저 환경과 다르기 때문에 기존 브라우저의 window와 같은 내장객체는 제공되지 않습니다. 따라서 javascript 로 node.js 코드를 작성한 후에 브라우저에서 실행되지는 않습니다.

목차

개발환경

구분 사양
OS Windows10 Pro 64bit (부트캠프)
CPU i5 2.60 GHz
RAM 16GB
HDD SSD 512GB
node.js v6.9.2 LTS
MongoDB 3.4.0
mongoose 4.7.4
Chrome 55.0.2883.87 m (64-bit)
Postman 4.9.2

시작에 앞서

용어에 대한 이해

  • 모듈 : 다른 개발언어에서의 라이브러리와 유사한 개념입니다. node.js에 내장되어 바로사용할 수 있는 내부모듈과 플러그인처럼 설치해서 사용해야 하는 외부모듈이 있습니다. 대표적인 외부모듈이 express 입니다.

  • 이벤트 : node.js 의 근간이 되는 서버 구동방식입니다. 객체지향에서의 callback 과 동일한 형태의 설계패턴으로 node.js는 이벤트기반의 비동기 방식으로 서버가 동작합니다. 로직상에서 이벤트가 연결되면 해당이벤트는 서버가 클라이언트의 요청을 대기하기 위해 listener를 동작시키는것과 같이 연결한 이벤트를 catch하기 위해 대기하게 됩니다.

  • 객체 : 함수형 언어인 javascript는 함수자체를 객체로 사용할 수 있지만, 객체지향처럼 독립적인 객체 단위도 지원합니다. 모듈과 객체가 비슷한 점이 있는데 모듈은 객체들의 묶음으로 집합관계라고 생각하시면 됩니다. 모듈은 내장모듈과 외부모듈 모두 require( ) 함수로 따로 생성을 해야지만 사용할 수 있지만, 내장객체의 경우 별다른 선언이나 생성없이 바로 사용할 수 있습니다.

node.js 소개

이전까지 웹브라우저에서만 사용되던 javascript를 웹브라우저 밖에서도 사용해보자는 논의가 진행되는중에 2009년 1월에 CommonJS 라는 오픈소스표준이 탄생하게 됩니다.

node.js 는 이 CommonJS를 기반으로 한 비 웹브라우저 플랫폼중에 웹서버 개발을 프레임웍이고, 인터프리팅 엔진으로는 Google의 V8을 사용합니다.

각 브라우저 개발사들은 각자의 스크립트 엔진을 이용해서 브라우저상의 javascript를 구동시키는데 아래표는 각 브라우저별 엔진의 이름을 나타냅니다.

브라우저 엔진
Google Chrome V8
Apple Safari Squirrel Fish
Mozilla Firefox Spider Monkey
Opera Opera Carakan
Microsoft IE Chakra

이 중 V8은 속도 향상을 위해 C++로 엔진을 개발하고 다양한 기술을 도입하게 되는데 그 중에 대표적인 예가 JIT(Just-in-time)컴파일러입니다. V8은 실행전에 코드를 기계어로 컴파일함으로써 상당한 속도향상을 이룸과 동시에 VM 기반으로 독립적인 실행이 가능하게 설계되었습니다.

Copyrights ⓒ kodonho@gmail.com, 영리목적 사용불가.

results matching ""

    No results matching ""