이벤트 루프를 활용해 오래 걸리는 I/O 작업을 하는 동안 다른 처리를 할 수 있다.(Non-Blocking)
장점 : I/O 처리를 잘하는 노드를 서버로 사용한다. (네트워크, 데이터베이스, 디스크 작업 등)
단점 : CPU부하가 큰 작업에는 부적합. (이미지, 비디오 처리 등)
=> 개수는 많지만 크기는 작은 데이터를 실시간으로 주고 받는 작업에 적합, 짧은 시간에 대량의 클라이언트 요청에 대응하는 웹 어플리케이션에 적합
Node Package Manager, Node.js의 패키지/모듈을 관리한다. 다운받은 패키지는 package.json에서 버전이나 의존성 등을 관리한다. package.json을 미리 준비해두면 npm install만으로 package.json에 있는 모듈들을 한 번에 설치할 수 있다.
npm 명령어
package.json
static : 특정 폴더의 파일을 특정 패스로 접근 morgan : 클라이언트의 요청 로그 확인 body-parser : body에 포함한 데이터를 JSON 형태로 파싱 cookie-parser : 헤더에 포함한 쿠키를 JSON 형태로 파싱 multer : 파일 업로드 express.static : 정적 파일 제공 passport : 사용자 인증