Skip to content
On this page

서버로서의 노드

node.js는 libuv 라이브러리를 사용해 IO 작업을 논블로킹 방식으로 처리합니다.

메인 스레드 하나가 많은 수의 IO를 혼자서(?) 감당할 수도 있겠지만 cpu 부하가 큰 작업에는 적합하지 않습니다.

이에 node.js는 실시간 채팅 서비스나 주식 차트, JSON 데이터를 제공하는 API 서버에 많이 활용됩니다.

멀티스레드 프로그래밍을 하는 것은 싱글 스레드에 비해 난이도가 높고 하더라도 C/C++, Rust, Go와 같은 언어에 비해 느립니다.

그래서 멀티스레딩을 구현한다고 해도 이미지나 비디오 처리, 대규모 데이터 처리와 같이 CPU를 많이 사용하는 작업을 위한 서버로는 권장되지 않습니다.

싱글 스레드 방식으로 서버를 운영할 때는 하나뿐인 스레드가 에러로 인해 멈추지 않도록 잘 관리해야 합니다.

node.js는 웹 서버가 내장되어 있어서 입문이 쉽고(물론 규모가 커진다면 Nginx, Apache 등으로 갈아타야하지만) 자바스크립트 언어를 사용하기 때문에 생산성이 중요한 기업이 흔히 채택됩니다.