DB 정보 분리

뚜우웅이·2025년 1월 21일

DB 정보 분리

yml 설정

DB 정보를 분리하기 위해서 yml 설정을 해준다.
application.yml

spring:
  profiles:
    include: secret # 파일 인식
#    active: dev # 파일 적용
  datasource:
    url: ${spring.datasource.url}
    username: ${spring.datasource.username}
    password:

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true
    defer-datasource-initialization: true
  sql:
    init:
      mode: always
logging:
  level:
    org.hibernate.SQL: debug
  • spring.profiles.active: 현재 실행 중인 애플리케이션에서 활성화할 프로파일을 지정한다. 지정된 프로파일의 설정만 활성화되며, 이를 통해 특정 환경(예: dev, prod, test)에 맞는 설정을 로드할 수 있다.

  • spring.profiles.include: s현재 활성화된 프로파일 외에 추가로 포함할 프로파일을 지정한다. 주로 여러 환경에서 공통으로 사용되는 설정을 로드하기 위해 사용된다.

application-secret.yml

spring:
  datasource:
    url: DB_url입력
    username: DB_username 입력
    password: DB_password 입력

Secret 파일 내에서는 DB URL, Username, Password, AWS KEYS와 같은 민감한 정보를 담아준다.

운영(Prod) 환경에서 민감한 정보의 설정이 달라진다면, 아래와 같은 방법을 사용한다.

  1. application-secret-prod.yml 파일을 새로 생성하고 운영 환경에 필요한 민감한 정보를 작성한다. prod 상태라면 application.yml 파일의 profiles.includesecret-prod로 변경한다.

  2. application-prod.yml에 운영 환경에 필요한 민감한 정보를 적는다. dev, prod 프로필(profiles.active)은 secret 프로필의 설정들(profiles.include) 보다 우선순위가 높기 때문에 prod에 적은값이 우선 적용된다.. 이때, .ignore 파일에 application-prod.yml을 추가해서 민감 정보가 github에 올라가지 않도록 해준다.

ignore 파일 설정

### secret 파일 ###
/src/main/resources/application-secret.yml

만약 CI/CD를 사용한다면, Github의 Secrets을 이용해서 민감한 정보를 관리할 수 있다.

profile
공부하는 초보 개발자

0개의 댓글