Node.js/[챕터1]

[8]#9 비밀 설정 정보 관리

Dev갱이 2021. 4. 30. 00:15
728x90

코드안에 숨겨야할 정보 예) db정보등을 숨기기 위한 작업.

 

1.conf폴더 / dev.js, key.js, prod.js 파일을 만든다

2. dev.js (로컬에서만 쓸때 중요정보 보관하는곳)에서 

module.exports = {
    mongoURI: '몽고dbURL'
}

3.key.js

if(process.env_NODE_ENV ==='production'){
    module.exports = require('./prod');
} else{
    module.exports = require('./dev');
}

local 환경이면 process.env_NODE_ENV가 development로 나오고 배포한 후라면 production이 나와서 그에 따른 config파일을 가져온다.

 

3.prod.js

module.exports = {
    mongoURI: process.env.MONG_URI
}

dev와 prod가 어떻게 들고오는지에 대한 차이는 dev는 내가 입력한 몽고db에서 얻은 url로 로그인하는거고

prod는 배포를 했기 때문에 배포를 관리하는 aws나 그런곳에서 MONG_URI를 입력하는 곳이 있다 그곳에 입력하면 가져옴.

 

4.index.js에서 config를 가져오고 그리고 몽고db connect도 바꿔준다.

const config = require('./config/key');
//추가

mongoose.connect(config.mongoURI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: false
}).then(() => console.log('MongoDB connected!'))
  .catch(err => console.log(err))
  //수정


//index.js

이렇게 처리하게 되면 좋은점이. 내 db정보도 숨길 수 있으면서 conf쪽은 gitignore로 github에 안올릴 수 있다.

 

gitignore에 dev.js 제외시켜주기!

 

이제 설정된것들과 코드들을 다시 github에 올려주자 

 

git add .
git status
git commit -m "비밀 정보 보호"
git push origin main //원래 git push origin master인데 안되서 main으로 하니까 됨

깃푸시 성공!!!!!.

config폴더엔 당연히 dev.js가 없다 왜냐하면 .gitignore에 추가해놓았으니...

728x90