-
[Spring] yml 파일 dev, prod, local 환경으로 간단하게 분리하기Server/Spring Boot 2021. 6. 16. 17:52728x90반응형
application.yml dev, prod, local 환경 분리하는 법
이번에 프로젝트를 진행하면서 마무리가 되었을 쯤에
개발
,운영
,로컬
환경으로 분리시키는 작업이 필요했습니다.
그래서 이번 글에서application.yml
을 사용할 때prod
,dev
,local
로 나눠서 작업하는 법에 대해서 간단하게 알아보겠습니다.하나의 yml 파일 내에서
---
을 통해서 구분하는 것도 가능하지만 yml 파일이 거대해지다 보니.. 위 처럼 환경마다 파일을 만들어서 총 4개의yml
파일을 생성하였습니다.application.yml
을 보면 위와 같이 맨 위에 공통으로 쓰이는 설정 값들을 놓고, ---을 구분 후에 아래의prod
,dev
,local
환경을 분리했습니다.
profile 값에 맞는 설정 값을 주고 실행하면 해당 값에 해당하는 파일이 실행되는 것입니다. (예를들어prod
설정 값을 주어 실행하면application-prod.yml
파일이 실행됩니다.) 그러면prod
,dev
,local
yml 파일에는 어떤 것들이 있는지 알아보겠습니다.dev
,local
,prod
파일 모두 형식은 위와 같습니다. 위와 같이 사용하고자 하는 RDS 주소만 모두 다르게 세팅을 해놓았습니다. 환경마다 다르게 쓰이는 값들이라면 공통 파일에 넣지 말고 이처럼 각각 파일에 넣으면 될 거 같습니다. (Redis는 application-prod.yml에는 ElastiCache를 사용하고 있고 나머지에는 local Redis를 사용하고 있습니다.)하지만 저는 아직은 데이터베이스만 분리하면 될 거 같아서 위와 같이 해놓았습니다. 현재 가볍게 yml을 분리한 것은 이게 전부입니다. 그러면 이 상태에서 아무 것도 없이 그냥 실행 시키면 어떤 파일이 실행될까요?
위와 같이
default
로local
파일이 실행되는 것을 볼 수 있습니다. 그러면 다른prod
,local
파일을 실행시키려면 어떻게 해야 할까요?./gradlew clean build
위의 명령어를 통해서 먼저
jar
파일을 생성해줍니다.그러면 위와 같이 jar 파일이 생겼을 것입니다.
java -jar -Dspring.profiles.active=prod *.jar
위와 같이 jar를 실행할 때 prod 값을 주어 실행하면 됩니다. profiles에 prod를 주면
application-prod.yml
파일이 실행될 것입니다.그러면 위와 같이
prod
가 실행되고 있는 것을 볼 수 있습니다.이번 글에서는 아주 단순한 예시를 들었지만, Spring에서 yml 파일로
dev
,prod
,local
환경을 분리하는 것에 대해서 알아보았습니다.반응형'Server > Spring Boot' 카테고리의 다른 글
[Spring] Kotlin 으로 AWS S3 파일 업로드 하는 법 (0) 2021.10.18 [Spring] Spring Security와 Swagger 같이 사용하는 법 (0) 2021.06.27 [Spring] Spring Boot로 MongoDB Atlas 사용하는 법 (0) 2021.05.23 [Spring] Spring Boot AWS S3 사진 업로드 하는 법 (17) 2021.05.03 [Spring Boot] AWS S3를 이용하여 파일 업로드 (2) 2020.09.08