개발자 마다 DB ID / PW가 다르고 각자의 자리에서만 접속이 가능한 환경

Spring profiles 을 local/dev, stage, prod 로 구분 해 놓았지만, application-xxx.properties 나 application-xxx.yml 에 들어 있는 내용을 커밋 하는 경우 나의 DB 비번이 모두에게 공유됨

첫째로, 보안상 문제

둘때로, 다른 개발자가 매우 귀찮아 함.

 

VM 실행시 커맨드라인에서 필요한 변수를 주입 해보자

1. VM 실행시 -D 옵션으로 주입 하는 방법

application-xxx.propertis 예

spring.datasource.username: ${db.user}
spring.datasource.password: ${db.password}

application.xxx.yml 예

spring:
  datasource:
    username: ${db.user}
    password: ${db.password}

통합개발환경 Run/Debug Configurations 의 VM 옵션에 아래 내용을 추가

-Ddb.user=my_db_userid -Ddb.password=my_db_password

IntelliJ 예시

 

2. 스프링 환경 변수를 이용하는 방법

통합개발환경 Run/Debug Configurations 의 VM 옵션에 아래 내용을 추가

-Dspring.application.json="{\"spring.datasource.username\":\"my_db_userid\",\"spring.datasource.password\":\"my_db_password\"}"

application.properties, application.yml 의 설정 보다 우선 순위 이므로 설정파일에 값이 있건 없건 VM 옵션으로 지정한 값으로 주입됨

끝.

+ Recent posts