본문 바로가기

카테고리 없음

MeanStack 정복하기 1 - Node.JS

[참고 Node.js tutorialspoint]


1. Node.js 특징

1) Asynchronous and Event Driven : 모든 Node.js의 API 라이브러리는 비동기식이다. 즉, Non-Blocking(Node.js 기반의 서버는 API호출 이후 결코 return data를 기다리지 않는다.)

2) Very Fast 

3) Single Threaded but Highly Scalable 이벤트 처리에 있어서 단일 스레드를 사용한다. 이러한 이벤트 메카니즘은 Request를 처리하기 위해 제한된 스레드를 생성하여 처리하는 전통적인 서버에 비해 Scalable(확장성)이 뛰어나 많은 수의 요청에 대한 서비스를 제공할 수 있다. 

4) No Buffering : 어떤 데이터도 버퍼를 두지 않으며 이러한 Application 은 단순히 "Chunks" 단위의 데이터로 Output이 생성된다.


5) MIT License



* 과연 비동기가 동기보다 좋을까? 

비동기로 작동하게 되면 함수가 호출되어 반환될 떄까지 대기시간이 발생하지 않고 콜백의 인자로 넘어오는 것을 처리한다. 하지만 흐름을 제어하기 어렵다는 단점이 분명히 존재한다. 그래서 Promise과 같은 모듈을사용한다. 그 전에 CPU bound와 IO bound에 대해 알아야 한다.!


2. Node.js 사용처

1) I/O bound Applications

2) Data Streaming Applications

3) Data Intensive Real-time Applications(DIRT)

4) JSON APIs Based Applications

5) Single Page Applications


 * 사용되지 말아야할 곳 : CPU Intensive applications