1. 비동기 이벤트 처리 방식(non-blocking 처리)이다.
2. 단일 스레드로 동작한다.
3. 코드를 모듈화하여 구성할 수 있다.
단일 스레드가 장점이 되는 이유
: 다중 스레드로 동작하는 서버와 달리 코드 구조가 간단하고 레이스 컨디션을 고려하지 않아도 되어 디버깅 작업이 좀 더 간편하다. 하지만 대용량 데이터(고화질 이미지, 동영상 처리 등)를 처리 작업이 node.js만으로 적합하지 않을 수 있다.
: CRUD 요청을 간편하게 처리할 수 있어, URL구조를 쉽게 설계할 수 있다.
: 미들웨어를 지원하여 요청과 응답을 처리하는 과정을 쉽게 조작할 수 있다.
미들웨어(middleware)란?
: 말 그대로 가운데에 위치하여 수행되는 작업이며 여기서 가운데는 클라이언트와 서버 간 CRUD 요청, 응답 사이를 말한다. 미들웨어의 역할은 로깅, 요청 파싱(데이터 해석), 인증 및 권한 부여(보안 처리), 캐싱 작업 등을 수행한다.