비밀 설정 정보 관리

소스 내부 비밀 정보 보호를 보호한다

소스 코드 내 비밀 정보 보호


mongo DB에 연결시 URI에 데이터베이스 접근 비밀번호가 포함되어 있기에 이 부분을 보호해야 함

  1. config 폴더 생성

  2. config 폴더 내에 dev.js, key.js, prod.js 생성

  3. 개발 환경이 Local(develoment) 환경이냐 배포(production) 환경이냐에 따라 처리를 다르게 함

  4. key.js

    //개발 환경이 배포 환경이면 
    if(process.env.NODE_ENV==='production'){ 
        module.exports=require('./prod'); //prod.js에서 mongoURI를 읽어오고
    }else{
        module.exports=require('./dev'); //로컬 환경이면 dev.js에서 mongoURI를 읽										  어온다
    }
  5. Local 환경일 때, dev.js에서 mongoURI를 읽어오게 설정

    module.exports={
        mongoURI='mongodb+srv://alwayslee<password>~'
    }
  6. 배포 환경일 때, prod.js에서 mongoURI를 읽어오게 설정

    module.exports={
        mongoURI:process.env.MONGO_URI // MONGO_URI= 배포 서버에 명시되어 있는 환경 변수 이름과 같아야 함 (HEROKU에 경우)
    }
  7. .gitignore에 dev.js 추가(dev.js에는 mongoURI가 명시되어 있기 때문에 깃허브에 업로드 시 해당 파일을 같이 올리면 안된다)

  8. index.js변경

    const config=requires('./config/key'); 코드 추가

    //명시해줬던 mongoURI를 config.mongoURI로 수정
    mongoose.connect(config.mongoURI,{
      useNewUrlParser:true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false
    
    }).then(()=>console.log('MongoDB Connected'))
    
     .catch(err=>console.log(err));

참고

www.inflearn.com/course/따라하며-배우는-노드-리액트-기본

좋은 웹페이지 즐겨찾기