서버 코드를 수정 후 저장을 하면 알아서 서버를 재시작
서버 코드를 개발할 때 가장 불편한 점은 코드를 수정 후 구동되는 서버를 중지 후 다시 재시작해야 하는 점이 아닐까 싶다.
바로 이런 불편함을 줄여주기 위해 나타난 npm 패키지가 Nodemon
이다.
npm install nodemon --save-dev
위처럼 입력 후 Nodemon을 설치해준다. (만약 --save-dev 옵션 쓸거면 붙여 써야 함. 사진은 오타)
위처럼 package.json에 nodemon이 추가된 걸 확인할 수 있다.
dependencies
가 아니라 devDependencies
에 추가된 이유는 내가 --save-dev
옵션을 줘서 그렇다.
--save-dev
옵션을 추가했을 때를 간단하게 설명하면 패키지를 ./node_modules 디렉터리에 설치하고 ./package.json 파일의 devDependencies 항목에 패키지 정보가 저장된다. --production 빌드 시 해당 패키지는 포함되지 않는다.
보통 배포 용도로 사용하지 않고 개발 용도로만 사용할 때 추가하는 옵션이라고 한다.
"scripts": {
"dev": "nodemon ./app.js"
}
아무튼 위와 같이 설치한 후 package.json
파일에 위 코드를 추가해준다.
우리가 서버를 실행할 때 node app.js
로 실행하지 않고 npm run start
로 실행할 수 있게 옵션을 추가하는 것과 동일하다. 실행할 수 있는 이름인 dev
부분은 원하는 대로 바꿔도 된다.
npm run dev
npm run dev
를 터미널에 입력해주면 위와 같이 서버가 구동된다.
그렇다면 내가 파일을 수정했을 때 정말 바로 서버가 재실행되는지 확인해보자!
서버를 실행 후 회원가입 기능을 간단하게 테스트 해보았다. 정상적으로 회원가입이 되면 이름 님 가입을 환영합니다.
같은 메시지가 온다.
여기서 메시지 부분에 조금 더 추가를 하고 파일을 저장해보자.
그러면 터미널에 restarting due to changes...
하면서 서버가 재실행되는 것을 볼 수 있다. 수동으로 서버를 중지 후 새로 실행한 게 아니라 나는 파일 저장만 했다.
다시 API 테스트를 해보면 수정 사항이 잘 반영된 걸 확인할 수 있다!