프로젝트를 하다보면 api키들을 사용하는 일이 있을 것인데 이런 개인정보와 같은 key들은 다른사람들에게 공유가 되어서는 안되고, 깃헙 같은 코드 저장소에도 숨겨서 관리해야 한다.
config 폴더 생성
key들을 관리 할 config 폴더를 생성한다. config 폴더에 3 가지의 파일을 생성한다.
dev.js
key.js
production.js
config > key.js
key.js에 배포상태, 개발상태에 따른 값을 처리해주는 코드 작성
<script>
if (process.env.NODE_ENV === "production") {
//배포상태
module.exports = require("./production.js")
} else {
//개발상태
module.exports = require("./dev.js")
}
</script>
config > dev.js
사용하고 있는 key를 exports 해준다.
<script>
module.exports = {
mongoURI : "URI주소"
}
</script>
server > index.js
이제 key를 사용하고 있는 파일에서 config/key.js import 해준다.
개발상태인지 배포상태인지에 따라 dev.js를 넣어줄지 production.js를 넣어줄지 결정한다.
<script>
const config = require("./config/key.js");
app.listen(port, () => {
mongoose
// config.mongoURI를 key 값으로 넣어준다.
.connect(config.mongoURI)
.then(() => {
console.log(`Example app listening on port ${port}`);
console.log("Connecting MogoDB...");
})
.catch((err) => {
console.log(err);
});
});
</script>
이제 깃헙같은 코드 저장소에 올릴 때 dev.js에 key값들이 들어있으니까 dev.js를 빼고 올려주면 된다.
특정 파일을 깃 저장소에 올리지 않게 해줄 수 있는 .gitignore
root 디렉토리 > .gitignore
server/config/dev.js
server/node_modules
server/package-lock.json
client/node_modules
client/package-lock.json