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/) 의 예제를 보도록 하자.
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/
댓글 없음:
댓글 쓰기