2014년 2월 12일 수요일

node.js 살펴보기

node.js 에 대하여 많이 듣기는 했으나 제대로 머리속에 정리가 안되어 있어서 정리를 해보도록 하자.

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

node.js  확장성 있는 네트워크 어플리케이션 개발을 쉽고 빠르게 할 수 있도록 지원하는 자바스크립트 런타임 기반의 플랫폼이다. (특히 server-side 에 유용하다.)
event-driven, non-blocking I/O model 을 사용한다. (기타 좋은 말은 영문으로... ^^)

위키 : http://ko.wikipedia.org/wiki/Node.js

음... 잘 모르겠다 ㅡ.ㅡ;;

그럼 예제를 보면 좀 더 이해가 가리라..... 역시 node.js 홈페이지(http://www.nodejs.org/) 의 예제를 보도록 하자.


  • 웹 서버 띄우기
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/');

자바스크립트를 이용하여 'http' 프로토콜을 지정하고 createServer 를 통해 서버를 만들었다. 웹 서버니까 listen 으로 포트를 열어두고. 서버의 요청이 있는 경우 'Hello World'를 출력하는 함수를 만들어 두었다.
간단한 예제이지만 쉽게 이해가 갈 것이다. 서버를 생성할 때 function 에 필요한 로직을 두면 웹 어플리케이션이 되는 것이다. 물론 이때 MVC 패턴 등을 이용하여 만들어 두면 훨씬 쉽게 작성할 수 있다. 아직 찾아보지는 않았지만 아마도 잘 정리된 개발 패턴이 있거나 node 기반의 프레임워크가 존재할 것이다. 꼭 찾아보자...

네트워크 어플리케이션을 작성할 수 있다고 하지 TCP 기반의 어플리케이션을 만드는 예제를 살펴보자


  • TCP 서버 띄우기 
var net = require('net');

var server = net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});

server.listen(1337, '127.0.0.1');

명확하고 심플하다. net 객체를 받아서 TCP Server 를 만들었다. listen 함수를 통해 아이피와 포트를 지정하였다. 아직 살펴본 것은 아니지만 server객체로 부터 request 를 받아서 처리하는 로직을 주도 response 객체를 만들어 전달하면 응답하는 형태일 것이라는 추정이 된다. 아님 말구. ^^

자바스크립트만을 이용해서 어플리케이션을 만들 수 있고, 복잡한 서버 설정을 하는 것이 아니라 코드로 설정 정보를 세팅하는 방식이어서인지 매무 심플하고 명료하다.

관련 API 문서는 한글화 된 버전이 있다.

http://nodejs.sideeffect.kr/docs/

Node.js 관련 잘 정리된 사이트 : http://octoberskyjs.github.io/home/


댓글 없음:

댓글 쓰기