Spring/Spring Boot

application.yml을 개발 환경마다 다르게 사용하기

60jong 2023. 4. 2. 02:53

Velog에서도 포스팅 중입니다:)

 

Springboot) application.yml 환경마다 다르게 사용하기

개발을 하다보면 개발 옵션을 적용할 수 있는 applicaion.yml을 사용하게 되는데, 배포 환경에 따라 다르게 적용할 필요를 느낄 때가 있다. Develop 환경 / Release 환경 / Test 환경 등에서는 DB, server port

velog.io

여러 개의 applicaion.yml

개발을 하다보면 개발 옵션을 적용할 수 있는 applicaion.yml을 사용하게 되는데, 배포 환경에 따라 다르게 적용할 필요를 느낄 때가 있다.

Develop 환경 / Release 환경 / Test 환경 등에서는 DB, server port 등이 다르게 쓰이는 경우에 Build시에 매번 applicaion.yml을 수정하기에는 번거롭고 실수를 할 가능성이 있다.

(수정하기에는 번거롭고 실수를 할 가능성이 있다. 이 말은 개발을 할 때 새로운 방법을 찾게하는 이유인 것 같다.)

환경마다 다른 application.yml (Deprecated)

applicaion.yml

spring:
    profiles:
        active: xxxx # local / develop / release / test 등 원하는 환경으로 변경하면 된다.

applicaion-local.yml

spring:
    profiles: local

    ~~~

applicaion-develop.yml

spring:
    profiles: develop

    ~~~

applicaion-release.yml

spring:
    profiles: release

    ~~~

위와 같이 applicaion.ymlactive 옵션을 환경에 맞게 바꾸면서 빌드하면 된다. 하지만, Springboot 2.7.6 버전 기준, Deprecated 된 방식이다. 찾아보니 Springboot 2.4 버전 이후로 바뀌었다.

환경마다 다른 application.yml (Revised)

개정된 방식은

applicaion-develop.yml

spring:
    profiles:
        active:
            on-profile: develop

이렇게 특정 환경에 맞는 yml의 옵션 계층을 수정하면 된다.

개발 환경에서 확인

applicaion.yml에 active 옵션에 따라 다른 profile이 적용됨을 확인할 수 있다.

참고

https://baeji77.github.io/spring/dev/Java-application-yaml/
https://kor.pngtree.com/freepng/yaml-file-document-icon_4177017.html