728x90

git action을 이용하여 CI/CD 파이프라인을 구성한 적이 있는데 이 때 민감정보는 git secrets 에 저장하여 사용했다. 로컬에서는 상관없지만 git에 커밋할 때는 주의를 해야했는데 이게 파일을 dev, pord, local 처럼 여러개 만들어서 관리하는 법도 있지만 뭔가 다른 방법을 찾아 적용하고 싶었다. 그래서 찾아보니 인텔리제이에서 application.yml에 사용될 민감 정보들을 외부 환경 변수로 설정할 수 있는 기능이 있어서 공유하고자 한다.


단순 예시로 mysql database 연결을 위한 application.yml 을 설정해보겠습니다.

server:
  port: 8080

spring:
  application:
    name: reservation-service
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: ${DATABASE_USERNAME}
    url: jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_SCHEMA}?useSSL=false&allowPublicKeyRetrieval=true
    password: ${DATABASE_PASSWORD}
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
        format_sql: true
    hibernate:
      ddl-auto: update

실행/디버그 선택 구성을 열어서 프로젝트 구성 편집을 엽니다.

중간에 있는 빌드 및 실행에서 옵션 수정을 클릭합니다.

환경 변수(alt + e)를 클릭합니다.

그러면 구성 설정 편집의 하단에 환경 변수칸이 추가됩니다.

입력칸 오른쪽에 있는 문서 아이콘을 클릭한 뒤 application.yml에 사용할 변수명과 값을 입력하고 확인을 누릅니다.


변수가 제대로 주입되어 프로젝트가 정상적으로 실행되는 것을 확인하실 수 있습니다.

+ Recent posts