본문 바로가기
Hot Tech Reference/HTML5

Node.js

by cusmaker 2012. 5. 22.
반응형

"Evented I/O for V8 JavaScript"


V8 자바스크립트 엔진과 추가적인 프레임웍으로 구성

주요 기능 : Evented I/O, 파일 처리, 네트워크 I/O등

네트워크 I/O : TCP, UDP, DNS, HTTP, IRC, FTP등


즉, Node.js는 javascript언어를 인터프리트해서 실행시켜주고, 별도의 유용한 라이브러를 제공해 주는 실행환경이다. 

또, Node.js는 손쉽게 웹서버를 구현할 수 있는 방법을 제공해 준다. 그것도 기존 웹서버와는 전혀 다른 방식의 http request 처리 방법과 빠른 속도를 자랑한다.


기존 웹서버의 경우 http request당 하나의 thread가 생겨서 동시 요청에 제한이 있고, 시스템 부하가 많이 걸린다. 반면에 Node.js는 Evented I/O 방식으로 하나의 thread에서 모든 요청을 event queue에서 처리하는 방식으로 동시 요청 수에 제한이 없고, 동시 요청수에 상관없이 constant한 메모리 사용량을 어느정도 보장받는다. 


아래의 간단한 예는 Node.js로 웹서버를 구현한 것이다.

어마어마하다. 

웹서버 구현, web API용 서버, server side 구현 등으로 활용할 수 있다.

지금은 browser javascript에서 client측 UI 및 로직이 구현되지만, 향후 GUI tool과 연동시 client side에서 browser 독립적인 어플로도 활용할 수 있다.(현재 Node.js 연동 GUI toolkit을 개발중인걸로 알고 있다.)

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');