서버는 기본적으로 I/O 요청이 많이 발생하여, non-blocking 방식을 처리하여 I/O 작업을 수행하는 node가 좋을 수 있다.
CPU 부하가 많이 발생하는 작업에는 적합하지 않다.
개수는 많지만 크기는 작은 데이터를 실시간 주고 받는데 적합하다.
aws lambda 나 google cloud functions 와 같은 서비스에서 노드로 cpu 부하가 많이 필요한 작업을 수행할 수 있다.
에러 관리를 잘 해야한다. thread 하나로 동작하기 때문에 thread가 죽으면 서버전체가 장애가 발생한다.
javascript를 사용하기 때문에 하나의 언어로 웹사이트를 제작할 수 있다.
XML 보다는 JSON 형식의 데이터를 많이 사용하는데 JSON이 Javascript 형식이므로 노드에서 쉽게 처리 할 수 있다.
장점 | 단점 |
---|---|
멀티 스레드 방식에 비해 적은 컴퓨터 지원 사용 | 기본적으로 싱글 스레드라서 CPU 코어 하나만 사용 |
I/O 작업이 많은 서버로 적합 | CPU 작업이 많은 서버로는 부적합 |
멀티 스레드 방식 보다 쉬움 | 하나뿐인 스레드가 멈추지 않도록 관리가 필요함 |
웹 서버가 내장되어 있음 | 서버 규모가 커졌을 때 서버를 관리하기가 어려움 |
자바스크립트를 사용함 | 어중간한 성능 |
JSON형식과 쉽게 호환됨 |