Dev Web/Node.js2013. 9. 24. 10:43
1. Node.js 배경사

Node.js 는 구글 크롬 브라우저에서 사용하는 V8 자바스크립트 엔진을 기반으로 자바스크립트로 애플리케이션을 개발 할 수 있게 합니다.

V8 엔진은 기존의 다른 자바스크립트 엔진보다 속도가 빨랐고, 그로 인해 자바스크립트를 이용해서 웹 브라우저가 아닌 곳에서 쓸 수 있게 되었습니다. CommonJS(ServerJS) 프로젝트와 V8 자바스크립트 엔진을 기반으로 Node.js 를 개발하기 시작했습니다.

기존 웹 서버는 대부분 쓰레드(thread)를 기반으로 하는 동기 방식으로 네트워크 입출력을 처리하는 반면, Node.js 는 이벤트를 기반으로 하는 비동기 방식으로 네트워크 입출력을 처리합니다.


2. 이벤트 기반 비동기 방식

Node.js 는 이벤트 기반 비동기 방식으로 작동 -> 대규모 네트워크 프로그램 개발에 적합

물건 구매를 예를 들어 여러 가게에 물건을 사러 간다고 할 때,

동기 방식은

  • 몸을 복제하여 동시에 여러 가게에 간다.
    • 이 방식은 쓰레드를 여러개 만들어 동시에 일을 처리한다는 것을 의미합니다.
    • 쓰레드는 많아질수록 메모리 사용량이 폭발적으로 증가하는 단점이 있습니다.
비동기 방식은
  • 시장을 대기표를 나누어주는 시스템으로 바꾸고 대기표를 받고 기다린다.
    • 대기 번호를 부르는 이벤트가 발생하는 순간 물건을 받아오면 됩니다.
    • 쓰레드는 단 하나만 사용하므로 몸은 하나입니다.
    • 이벤트를 사용하므로 빠른 속도로 일을 처리할 수 있습니다.
    • 하지만, 일을 처리하는 한 명이 쓰러지는 순간 프로그램 전체에 문제가 발생하는 단점도 있습니다.

3. Node.js 장점과 단점

장점

Node.js 장점은 이벤트 기반 비동기 방식을 사용하여 대규모 네트워크 프로그램을 개발하기 적합합니다.

자바스크립트를 사용하기 때문에 다른 기존 웹개발자 들이 쉽게 접근 할 수 있습니다.

구글이 V8 자바스크립트 엔진 속도 점점 더 빠르게 하고 있습니다.

C++를 사용하여 기능을 확장 할 수 있습니다. (V8 엔진이 C++로 개발)

단점

단점은 프로그램 진행에 문제가 발생하는 순간 프로그램 전체가 영향을 받는 것입니다.

V8 자바스크립트 엔진이 아무리 빨라도 C, C++ 언어로 개발된 서보보다는 느립니다.


4. Node.js를 사용한 애플리케이션

이베이, 링크드인, 야머, 윈도 애저



참고 : 모던 웹을 위한 Node.js 프로그래밍 - 윤인성



Node.js 프로그래밍

저자
윤인성 지음
출판사
한빛미디어 | 2013-09-20 출간
카테고리
컴퓨터/IT
책소개
이 책이 제시하는 핵심 내용 자바스크립트 + Node.js로 배...
가격비교글쓴이 평점  



'Dev Web > Node.js' 카테고리의 다른 글

[Node.js] express 모듈  (0) 2013.09.24
[Node.js] jade 외부 모듈  (0) 2013.09.24
[Node.js] ejs 외부 모듈  (0) 2013.09.24
[Node.js] 기본 내장 모듈  (0) 2013.09.24
[Node.js] Node.js 샘플 애플리케이션  (0) 2013.09.24
Posted by 놀란