본문 바로가기

boilerplate/Jhon-Ahn boilerplate backend

NodeMon 설치 & 비밀 설정 정보 관리

서버 코드를 변경할 때마다 서버를 재시작해야 하는 번거로움이 있는데 이것을 해결해주는 것이 nodemon이다. 이 도구를 사용하면 자동으로 위 작업을 해준다. 

 

위에 보면 -dev가 붙어있는데 이것은 development 모드의 약자다.

development 모드(local에서 할 때랑), production 모드(배포를 한 다음의 모드)가 있고,  우리가 로컬에서 할 때만 사용하겠다는 의미이다.

 

이렇게 다운로드하면 dependencies가 아니라 devdependencies에 버전이 들어가 있는 걸 확인할 수 있다. 

 

nodemon으로 시작해야 되기 때문에 scripts를 수정해주자. 

 

다음으로는 소스 안에있는 비밀정보를 보호하는 작업이다.

지금까지 게시글에는 가렸지만 소스 안에는 mongoDB 내 정보가 들어있기 때문에 이걸 보호하는 작업을 해야 한다.

config 폴더를 만들어서 dev.js, prod.js, key.js 파일을 만들자. 

 

여기서 생각해야 될 점이 development 모드에서 개발을 할 때랑 production 모드에서 개발을 할 때가 있다는 점이다.

 

 

 

dev모드 일 때는 dev.js 안에 있는 mongoURI변수를 가져올 수 있다. 그리고 배포를 한 후에는 웹 사이트에서 갖고 올 수 있다. 

후자의 경우, 헤로쿠 사이트에 따로 Config vars란에 prod.js 파일에서 설정해주었던 MONGO_URI 변수 이름과 정보를 넣어줘야 한다. 이것은 헤로쿠 사이트에서 따로 관리를 해준다.

key.js 내용에서 나오는 process.env.NODE_ENV는 환경변수를 의미하는데 이 환경변수가 dev모드인지 prod모드인지에 따라 다르다. 현재 나는 local에서 개발을 하고 있으므로 dev모드이다. 

 

그리고 index.js 파일에 mongoDB를 연결하는 부분에서 자신의 mongoDB 정보를 없애고 다음과 같이 바꿔주자.

key에서 우리가 local 환경일 땐 dev.js에서 변수를 갖고 오고, prod 환경일 땐 웹사이트에서 갖고 온다.

그리고 github에 해당 소스코드들을 올릴 땐, .gitignore 파일에 dev.js 파일을 넣어서 사람들이 내 github를 봤을 때 mongoDB 정보를 볼 수 없도록 해주자.