<aside> 📌 요약: 지금처럼 모듈화가 없었을때는 IIF을 사용해서 스코프를 분리해서 함수, 변수, 객체를 사용했다. 노드JS에서는 commonJS를 사용해서 모듈관리를 했고 이후에 브라우저 자바스크립트에서 ESModule이 생겨서 모듈화가 쉬워졌다. ESModule은 비동기고 commonJS는 동기적이다.
npm은 node pakage manager로 npm registry에 업로드된 모듈들을 npm install을 사용해 다운로드 받을 수 있다.
pakage.jon 파일은 현재 프로젝트에 대한 메타데이터와 의존 모듈들을 정리한 파일이다. pakage-lock.json은 npm install이 발생할 때 마다 pkage.json에 기록된 내용을 snpashot 형태로 생성하는 파일이다.
서버의 성능을 향상시켜서 확장하는것을 수직 확장(Scale up)이라고 하고 서버를 증설 하는것을 (Scale out) 이라고 한다. 클라우드 서비스를 사용하면 피크때 증설하고 바지면 해제하는 등 유연하게 수평확장이 가능하다.
웹에는 웹서버와 웹애플리케이션 서버가 있다. 클라이언트 ↔ 웹 서버 ↔ 웹 애플리케이션 서버. 노드는 둘 다 가지고 있어 구분이 힘들다.
프로토콜은 인프라에 있는 통신 규약 느낌이고 API는 코드 구현 부분에 있는 통신 규약 느낌이다.
REST API는 HTTP 프로토콜 상에서 서버와 클라이언트 간에 데이터를 주고 받기 위한 하나의 방식이다.
dotenv는 환경변수를 파일에 저장할 수 있도록 해주는 라이브러리다.
Express에서 미들웨어 없이 req.body에 접근하는 경우 기본적으로 undefined가 설정되어 있다. 이를 꺼내기 위해 body-parser라는 모듈을 사용한다.
</aside>