ENV : 환경 변수로 key 관리

sangyong park·2023년 3월 10일
0

ENV

프로젝트를 하다보면 api키들을 사용하는 일이 있을 것인데 이런 개인정보와 같은 key들은 다른사람들에게 공유가 되어서는 안되고, 깃헙 같은 코드 저장소에도 숨겨서 관리해야 한다.

node의 환경 변수 ENV

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

특정 파일을 깃 저장소에 올리지 않게 해줄 수 있는 .gitignore

root 디렉토리 > .gitignore

server/config/dev.js
server/node_modules
server/package-lock.json
client/node_modules
client/package-lock.json
profile
Dreams don't run away It is always myself who runs away.

0개의 댓글