Nodemon(Node moniter)
- npm install nodemon
- 노드가 실행하는 파일이 속한 디렉터리를 감시하고 있다가 파일이 수정되면 자동으로 노드 애플리케이션을 재시작하는 확장 모듈 => 애플리케이션을 개발할 때 주로 사용
- 기존에 [node 파일명]으로 실행했던 것과 다르게 [nodemon 파일명]으로 실행
- [node 파일명] 방식 => 서버 구동 중에 코드를 수정하여 반영하려면 서버를 개발자가 수동으로 끈 후 재실행
- [nodemon 파일명] 방식 => 서버 구동 중에 코드를 수정한 후 파일을 저장하면 서버가 자동으로 재실행하면서 변경사항 반영
PM2(Process Manager)
- npm install pm2
- Node.js 서버 운영 패키지 => 애플리케이션 배포에 주로 사용
- node나 nodemon으로 서버 실행 => 에러가 발생하면 서버가 꺼짐 (재실행 X)
- pm2로 서버 실행 => 에러가 발생하면 서버가 꺼진 후 다시 재실행 (재실행 O)
- 멀티 코어 혹은 하피어 스레딩을 사용할 수 있게 해줌 (Node.js는 싱글 스레드 기반)
- 콘솔 창을 닫아도 따로 kill을 하지 않는한 서버가 24시간 계속 실행됨
- 클라이언트 요청을 여러 노드 프로세스에 고르게 분배함 (로드 밸런싱)
- 멀티 스레딩이 아니라 자원을 공유하지 못함
Docker로 배포 시 예시 코드
FROM node:18.15.0
RUN mkdir -p /app
WORKDIR /app
COPY package*.json /app/
ADD . /app
RUN npm install
RUN npm install -g pm2
COPY .env .env
COPY . .
EXPOSE 3000
CMD [ "pm2-runtime", "start", "index.js" ]
※ 개발 => nodemon, 배포 => pm2
'Node.js' 카테고리의 다른 글
Node.js 클러스터 (0) | 2023.08.28 |
---|---|
Node.js 정의 및 장단점 (0) | 2023.06.06 |
Node.js Swagger 적용 (0) | 2023.06.03 |
Socket.io (0) | 2023.05.31 |
Winston (Node.js 로그 관리) (0) | 2023.05.26 |
댓글