비밀 설정 정보 관리

holang-i·2021년 5월 29일
0

Node & React

목록 보기
7/11
post-thumbnail

소스, 코드 안에 있는 비밀정보 보호

소스 안에 id, password와 같은 비밀정보가 있으면 github에 소스를 올릴 때, 다른 사람들이 볼 수 있기 때문에 .gitignore 파일에 처리를 할 것이다.


환경 변수

process.env.NODE_ENV

개발할 때 두 가지의 환경에서 작업 할 수 있다.

Local 환경 - local development
Deploy 환경 (배포 한 후) - prodection

위의 두 가지 경우를 따로 생각해야 된다.
development에서는 mongoURI를 바로 가져갈 수 있지만,
배포를 한 뒤에는 HEROKU에서 직접 정한 키가 있기 때문에 (MONGO_URI)

로컬 환경과 배포 된 후에는 해당 HEROKU 웹 사이트에서 가져갈 수 있도록 분기처리를 해줘야 된다.


환경 변수에서 development에 있을 때는 process.env.NODE_ENV가 development라고 나온다.

만약 deploy한 이후이면 process.env.NODE_ENV가 production이라고 나온다.


config 폴더를 하나 만들어서 dev, prod 환경일 때 각각 mongoURI 처리를 해주었다.

key.js

여기서 process.env.NODE_ENV가 development, prodection 인지를 판별해서 모듈을 내보낸다.

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

dev.js

module.exports = {
  mongoURI: 'mongodb+srv://[id]:[password]@[db name].hfxjq.mongodb.net/myFirstDatabase?retryWrites=true&w=majority'
}

prod.js

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

index.js

config 파일 밑에 key.js파일에 분기처리 해 놓은 것을 가져와서 MongoDB와 cpplication을 연결할 수 있도록 코드를 수정한다.

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

mongoose.connect(config.mongoURI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true,
  useFindAndModify: false
})
.then()...






따라하며 배우는 노드, 리액트 시리즈를 통해 개념을 익히면서 실습하고 있습니다.
https://bit.ly/3wGxKGC

profile
🌿 주니어 프론트엔드 개발자입니다! 부족하거나 잘못된 정보가 있다면 알려주세요:)

0개의 댓글