환경 변수의 값을 확인하고 값에 따라 작업을 수행할 수 있게 합니다. NODE_ENV를 통해 환경 변수에 직접 접근하거나 검사 및 논리를 수행합니다.
(GET, POST, HEAD, DELETE)
- GET: 서버로부터 데이터를 취득합니다.
- POST: 서버에 데이터를 추가, 작성합니다.
- HEAD: 서버 리소스의 헤더(메타 데이터를 취득합니다.)
- DELETE: 서버 데이터를 삭제합니다.
미들웨어란 클라이언트 요청이 오면 그 요청에 대한 응답을 하기 위해 중간에서 목적에 맞게 처리 하는 일을 하며, 거쳐가는 함수입니다. 요청 - 미들웨어 - 응답 으로 표현할 수 있고, 미들웨어를 통해 순차적으로 처리할 수 있습니다.
구글에서 만든 고성능 자바스크립트 엔진입니다. ECMAScript 표준에 맞게 구현됐고, ES2016부터는 Node 기능 대부분을 구현해놨습니다. 특히 Node.js는 V8엔진과 호환성이 좋고, 리스크를 줄이기 위해 V8엔진을 사용합니다.
자바스크립트 비동기 처리 패턴 중 가장 최근에 나온 문법입니다. Promise 보다 편리하게 사용할 수 있고, 코드 작성이 직관적입니다. try, catch를 통해 err 또한 쉽게 찾아볼 수 있습니다.
await은 async내에서만 사용할 수 있으며, await을 통해 작업 완료를 기다리는 동안 엔진은 다른 일을 처리합니다.
Express란 Node.js 프레임워크 중 하나로 웹 어플리케이션, API개발을 위해 설계됐습니다.
(사실상 Node.js의 표준 서버 프레임워크입니다.)
Package란 Node.js에서 사용할 수 있는 모듈을 저장해 둔 곳이고, NPM을 통해 쉽게 사용할 수 있습니다.
자바스크립트는 싱글 스레드로 한 번에 하나씩 일 처리를 합니다.
이벤트 루프를 통해 비동기 방식으로 동시성을 지원합니다.
이벤트 루프에 작업이 들어간 경우 작업이 완료 될 때 까지 다른 작업을 진행 할 수 있고, 다른 작업 완료했더라도 이벤트 루프에 큐에 들어간 작업의 완료까지 대기합니다.
Microservices Architecture란?
작은 서비스가 여러개 모여 하나의 시스템을 제공하는 아키텍처를 뜻합니다.
각 서비스는 독립적이고 느슨하게 연결되어있습니다. 따라서 프로그램 전체를 빌드 후 재배치하지 않고도 기존 서비스에 대한 업데이트가 가능합니다. (하지만 통신방법이 복잡하고 테스트 과정이 복잡합니다.)