본문 바로가기

Spring Boot

운영 yaml과 개발 yaml을 구분하기

운영을 위한 yml과 개발 yml을 구분하는 방법을 알아보자!

물론 해당 내용은 properties에도 동일하게 적용된다!

 

 

application.yml

spring:

  # 환경설정(개발: dev, 운영: prod)
  profiles:
    active: dev

  #DB
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    tomcat:
      test-on-borrow: true
      validation-query: SELECT 1

 

application.yml에는 공통속성을 정의해놓으면 된다.

여기서 주의할 속성은 spring.profiles.active이다. 해당 부분에 dev라고 명시되어있다.

이런 경우 spring이 application.yml을 load하고 application-dev.yml을 load하게 된다.

 

application-dev.yml

spring:
  #DB
  datasource:
    url: jdbc:mysql://test-db-url:3306/refillStation_db
    username: testId
    password: testPw

  #JPA
  jpa:
    show-sql: true

 

application-prod.yml

spring:
  #DB
  datasource:
    url: jdbc:mysql://prod-db-url/refillStation_db
    username: dbId
    password: dbPw

  #JPA
  jpa:
    show-sql: false

 


dev를 load하고싶으면, spring.profile.active를 dev로, prod를 load하고싶으면 prod로 설정해준다.

또한 동시에 여러 개의 yml 파일을 load할 수도 있다.

spring.profile.active에 dev, prod와 같이 설정해주면 된다.

이럴 경우 dev의 option은 prod의 option으로 덮어씌워질 수 있으며,

application.yml을 load 후 추가적인 yml을 load할 때도 겹치는 옵션은 덮어쓰는 방식으로 작동하게 된다.