깃허브에 public으로 코드를 올려야 하는상황인데 만약 password나 보안유지가 필요한 정보까지 올라간다면 난감해지는 상황이 있겠죠.
그래서 그런 정보들을 따로 관리하는 방법이 있는데요.
앞선 포스팅처럼 몽고디비에 관련된 정보들또한 저는 테스트용으로 만들었지만 실제로 사용되는 계정일 경우에는 문제가 될수 있습니다.
module.exports = {
mongoURI: 'mongodb+srv://cine:cine@cluster0.7sr4t.mongodb.net/myFirstDatabase'
}
우선 dev.js라는 파일을 만들어서 몽고디비에 대한 URI정보를 따로 저장해서 exports까지 해두겠습니다.
여기서 한가지만 짚고 넘어가자면 개발할때 두가지 환경에서 개발을 할수 있습니다.
한가지는 local환경에서 다른 한가지는 배포한후 개발을 하는 환경이 있습니다.
두가지 경우를 따로 생각을 해야합니다.
위의 코드는 개발용으로서 development의 경우 변수를 가져갈수 있지만 만약 production 모드일 경우에는 사용할수 없습니다.
production 모드의 경우에는 헤로쿠 서비스를 사용한다고 가정하면 헤로쿠 사이트에서 따로 몽고디비 URI를 관리해줍니다.
module.exports = {
mongoURI: process.env.MONGO_URI
}
그래서 production 모드의 경우 이런식으로 prod.js파일을 만들어서 따로 관리를 해주어야합니다.
if(process.env.Node_ENV === 'production') {
module.exports = require('./prod');
} else {
module.exports = require('./dev');
}
그래서 key.js파일을 따로 만들어서 개발용인지 배포용인지 구분을 해주는 모듈을 만들었습니다.
만약 개발용이라면 앞서 dev.js로 만들었던 모듈을 가져다 쓰고 배포용이라면 prod.js로 만들었던 모듈을 사용하게 되는 것입니다.
이렇게 따로 모듈을 만들어놓고 저장해놓은 경로를 잘 설정해서 모듈을 가져오면 이런식으로 관리를 할수 있습니다.
그런데 이렇게 올리더라도 그냥 깃허브에 올리게 되며 코드를 볼수가 있겠죠!
node_modules/
dev.js
.gitignore파일에 dev.js를 추가하여 계정이나 패스워드등 보안정보가 올라가지 않도록 설정해줍니다!
'따라하며 배우는 시리즈 > NodeJS & ReactJS Basic' 카테고리의 다른 글
[NodeJS] 노드 리액트 기초 - bcrypt를 이용한 로그인 기능 만들기 (0) | 2022.09.06 |
---|---|
[NodeJS] 노드 리액트 기초 - Bcrypt로 비밀번호 암호화 하기 (0) | 2022.09.05 |
[NodeJS] 노드 리액트 기초 - Nodemon(노드몬) 설치 (0) | 2022.09.01 |
[NodeJS] 노드 리액트 기초 - BodyParser를 이용한 회원가입 기능(with.PostMan) (0) | 2022.08.31 |
[NodeJS] 노드 리액트 기초 - MongoDB Model & Schema(몽고디비 모델, 스키마) (0) | 2022.08.29 |