Node.js 에서 디버깅할 때 nodemon 으로 실행하면 코드 변경이 발생할 때 서버를 다시 시작해준다.
이런것이 개발환경 구축할 때 매우 편리하다.
PyCharm + Nodemon 공식문서 내용
그런 의미에서 nodemon 으로 코드 모니터링과 pycharm 의 디버깅의 조합을 구성하고 싶었다.
PyCharm 의 공식문서에 나와있는 사용법이다.
Running and debugging Node.js | PyCharm (jetbrains.com)
Running and debugging Node.js | PyCharm
www.jetbrains.com
간략하게 정리하면
- package.json 의 script에서 nodemon 실행문을 넣는다.
- terminal에서 npm script-command 를 수행한다.
- pycharm의 attatch process 기능을 이용해서 retmoe debugging 을 구성한다.
위의 방법으로도 당연히 가능하니 문제는 없지만 조금이라도 편하게 하고 싶기도하고 미니코드를 작성할때에 package.json 을 매번 만드는 수고를 없애고 싶었다.
그래서 나의 방법은 그냥 script 실행대신에 pycharm에서 실행환경을 nodemon으로 설정한 뒤 run 모드로 실행하고 attatch process 를 디버거로 연결해서 사용하는 것이다.
Nodemon 실행환경 custom 하기
PyCharm interpreter 설정
우선 nodemon 을 project 범위에 상관없이 사용하기 위해서 모듈을 global 로 설치한다.
>> npm i -global nodemon
File | Settings | Languages & Frameworks | Node.js 에서 nodemon 을 interpreter로 추가한다.
여기에서 만약 프로젝트 단위에서 모두 nodemon으로 실행하려면 Setting 에서 nodemon을 기본 interpreter로 설정한다.
그리고 실행할 js 파일의 configuration 을 확인한다.
Parameter '--inspect' 는 node 을 실행할 때 외부 디버거 연결 정보를 출력해주는 옵션이다.
그리고 공식문서에 나온것처럼 Attach Process 를 위한 환경설정을 추가한다.
Remote 옵션을 꼭 체크해야 한다. 그렇지 않으면 nodemon 이 재실행하게 되면 연결이 분리가 된다. 이유는 nodemon 이 재실행 할 때마다 debugger 접속 포인트가 변경되기 때문이다.
그럼 이제 설정은 완료되었다. 실행해보자.
Nodemon 실행하기
실행할 js 파일을 nodemon을 interpreter로 해서 run 모드로 실행한 뒤에 Attach Process 를 debug 모드로 실행하면 아래와 같이 nodemon 이 실행되고 debugger가 접속되었다는 메시지를 확인할 수 있다.
마무리
간단한 설정을 변경이지만 개인적으로는 훨씬 편한 방법인 것 같다. terminal 에서 실행하는 것을 모두 pycharm 의 ide 환경에서 실행 할 수 있도록 한다.
이렇게 또 하나의 개발환경 구축을 하였다.