1. Node.js의 정의
비동기 이벤트 처리 서버사이드 (네트워크 애플리케이션) 개발에 사용되는 소프트웨어 플랫폼.
개발 언어로는 자바스크립트를 사용한다.
내장 HTTP 서버 라이브러리를 가지고 있으므로, 아파치와 같은 웹 서버 어플리케이션이 없이도 동작한다.
비동기 방식이므로 다수의 연결을 동시에 처리 가능하다.
2. Node.js의 논 블로킹 방식
이는 오늘날 OS 스레드가 일반적으로 사용하는 동시성 모델과는 대조적입니다. 스레드 기반의 네트워크는 상대적으로 비효율적이고 사용하기가 몹시 어렵습니다. 게다가 잠금이 없으므로 Node의 사용자는 프로세스의 교착상태에 대해서 걱정할 필요가 없습니다. Node에서 I/O를 직접 수행하는 함수는 거의 없으므로 프로세스는 결과 블로킹 되지 않습니다. 아무것도 블로킹 되지 않으므로 Node에서는 확장성 있는 시스템을 개발하는 게 아주 자연스럽습니다.
블로킹, 논 블로킹 참조 : http://ozt88.tistory.com/20
3. Node.js의 장점
비동기 I/O 처리 / 이벤트 위주 : Node.js 라이브러리의 모든 API는 비동기식입니다, 멈추지 않는다는거죠 (Non-blocking). Node.js 기반 서버는 API가 실행되었을때, 데이터를 반환할때까지 기다리지 않고 다음 API 를 실행합니다. 그리고 이전에 실행했던 API가 결과값을 반환할 시, Node.JS의 이벤트 알림 메커니즘을 통해 결과값을 받아옵니다.
빠른 속도 : 구글 크롬의 V8 자바스크립트 엔진을 사용하여 빠른 코드 실행을 제공합니다.
단일 쓰레드 / 뛰어난 확장성 : Node.js는 이벤트 루프와 함께 단일 쓰레드 모델을 사용합니다. 이벤트 메커니즘은 서버가 멈추지않고 반응하도록 해주어 서버의 확장성을 키워줍니다. 반면, 일반적인 웹서버는 (Apache) 요청을 처리하기 위하여 제한된 쓰레드를 생성합니다. Node.js 는 쓰레드를 한개만 사용하고 Apache 같은 웹서버보다 훨씬 많은 요청을 처리할 수 있습니다.
노 버퍼링 : Node.js 어플리케이션엔 데이터 버퍼링이 없고, 데이터를 chunk로 출력합니다.
라이센스 : Node.js 는 MIT License가 적용되어있습니다.
4. Node.js를 사용하면 좋은 분야
다음과 같은 분야에 Node.js 가 사용된다면 뛰어난 효율성을 달성 할 수 있습니다.
- 입출력이 잦은 어플리케이션
- 데이터 스트리밍 어플리케이션
- 데이터를 실시간으로 다루는 어플리케이션
- JSON API 기반 어플리케이션
- 싱글페이지 어플리케이션
https://velopert.com/133 참조
'프로그래밍 > JavaScript' 카테고리의 다른 글
JavaScript The Definitive Guide 5/E (자바스크립트 완벽가이드) (0) | 2018.08.06 |
---|---|
JavaScript 기초 문법 정리 (3) (0) | 2018.06.26 |
JavaScript 기초 문법 정리 (2) (0) | 2018.06.26 |
JavaScript 기초 문법 정리 (1) (0) | 2018.06.25 |