2023-02-11 node.js_11

2023. 2. 11. 21:40공부 중/Node.js


 

 

WEB2 - Node.js - 생활코딩

수업소개 이 수업은 JavaScript를 이용해서 Node.js를 제어해 동적으로 HTML 코드를 생성하는 웹애플리케이션을 만드는 방법에 대한 수업입니다.  수업대상 예를들어 1억개의 페이지로 이루어진 웹사

opentutorials.org

생활코딩 node.js 강의 정리

 


1. npm

 

npm은 node.js를 설치할 때 같이 설치되는 기본 패키지 매니저다.

 

패키지를 설치, 업데이트, 삭제, 관리하는 것을 편하게 도와준다.

 

npm install pm2 -g

설치는 install 명령을 입력하면 된다.

 

-g 옵션에 대해선 아래에서 설명한다.

 

#For project dependencies use
npm list --depth=0

#For global dependencies use
npm list -g --depth=0

npm을 통해서 설치한 패키지의 목록을 보고 싶다면 아래와 같은 명령을 터미널에 입력한다.

 

npm outdated -g --depth=0 # check outdate
npm update -g

업데이트는 이렇게 하면 된다.

 


2. PM2

 

PM2는 node.js로 만든 프로세스를 관리하는 프로그램이다.

 

PM2는 프로그램을 주시하고 있다가 의도하지 않은 사건이 발생했을 때 서비스를 안정적으로 유지하도록 돕는다.

 

우리가 main.js를 통해서 웹서버를 동작시킬 때 PM2에게 이를 관리감독시킬 수 있다.

 

main.js가 의도하지 않게 종료 거나 코드를 수정한다면 PM2에서 스스로 main.js를 재부팅시켜준다.

 

더 이상 코드를 수정했다고 해서 main.js를 껐다가 켜야 하는 수고를 덜 수 있다.

 


가. 설치

 

npm을 설치해 보자.

 

우리가 npm에서 패키지를 설치할 때 주의점이 있다.

 

npm은 새로 패키지를 설치할 때 프로젝트 파일에 종속된 패키지를 설치할 것을 기본으로 가정한다.

 

하지만 우리가 설치할 PM2는 프로잭트 파일에서 독립되어 수많은 프로그램들을 감시하고 관리해야 하는 입장에 있다.

 

이렇게 특정한 프로젝트와는 관계없이 독립적으로 컴퓨터 어느 위치에서든지 실행할 수 있게 하려면 npm의 global옵션을 설정해야 한다.

 

npm install pm2 -g

안되면 sudo를 붙여서 최고 관리자 권한으로 실행하면 된다.

 


나. 실행

 

설치한 PM2를 실행해 보자.

 

#pm2 strat [file]

pm2 start main.js

 

실행하고 있는 프로그램의 id, 이름, mode, 상태, cpu 점유율, 메모리 사용량을 알 수 있다.

 

PM2 list

현재 실행 중인 프로세스를 확인한다.

 


다. 종료

 

pm2에서 프로세를 중단하고 싶을 때가 있다.

 

#pm2 stop [name]

pm2 stop main

 

pm2 kill

pm2로 실행한 모든 프로세스를 종료합니다.

 


감시

 

pm2 main.js --no-daemon

계속해서 로그를 찍도록 할 수 있다.

 

pm2 monit

실시간으로 pm2로 실행한 프로세스를 감시할 수 있다.

 

 

npm start main.js만 한 상태라면 강제로 main.js를 종료시킨다면 pm2에서 재시동한다.

 

만약 우리가 main.js와 관련된 소스코드를 수정했을 때 pm2가 스스로 알아서 main.js를 재시동하게 만들려면 아래와 같이 —watch 옵션을 사용해야 한다.

 

pm2 start main.js --watch --no-daemon

하지만 이 경우에 발생되는 문제가 있다.

 

우리는 main.js의 내용이 변경되면 이를 재시동하는 것은 원하지만 data 디렉터리 아래에 위치한 파일들이 수정되면 main.js를 재시동하고 싶지는 않다.

 

왜냐하면 이미 main.js에서 동적으로 페이지를 생성하기에 data 디렉터리 하위의 파일들이 수정된다고 하더라도 재시동할 이유가 없기 때문이다.

 

이 경우 감시하는 파일의 범위에서 data 디렉터리를 제외해야 한다.

 

pm2 start main.js --watch --ignore-watch="data/*" --no-daemon
# 2개 이상의 경로는 띄어쓰기 한다. ex) --ignore-watch="data/* session/*" --no-daemon

 


설정 파일로 pm2 관리하기

 

ecosystem.config.js라는 파일로 pm2가 수행할 작업을 자세하게 설정할 수 있다.

 

 

PM2 - Ecosystem File

Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance.

pm2.keymetrics.io

 

 

PM2 - Watch & Restart | Features | PM2 Documentation

Build Battle-Hardened Node.js Applications.

pm2.io

 

'공부 중 > Node.js' 카테고리의 다른 글

2023-02-12 node.js_13  (0) 2023.02.12
2023-02-12 node.js_12  (0) 2023.02.12
2023-02-11 node.js_10  (0) 2023.02.11
2023-02-11 node.js_9  (0) 2023.02.11
2023-01-31 node.js_8  (0) 2023.01.31