본문 바로가기
쿤즈 Dev/Spring Boot

[Spring Boot] 앱 배포시 profile 설정 방법

by :)Koon 2023. 1. 30.

스프링 부트를 통해서 웹 프로그래밍을 완료하고 Build를 하면 로컬에서는 쉽게 테스트가 가능하다. 그리고 배포할 때에는 이 프로젝트를 jar 파일로 만들어서 배포하면 Tomcat까지 포함되어 만들어지기 때문에 배포 과정도 굉장히 편리하다. 이것이 스프링 부트를 사용하여 웹 서비스를 만들면 쉬운 부분 중 하나인 것 같다.

하지만 로컬에서 테스트할 때와 실제 운영에 배포하여 서비스할 때에는 환경 구성이 다르다. 그래서 profile 설정을 다르게 만들어 주어야 한다. 어떻게 하는 것인지 알아보자.


application.yml 설정

대부분의 중요한 설정들은 application.properties 혹은 application.yml을 이용해서 만든다. 이 파일 내부에는 디비에 접근하는 url이나 jwt에 사용되는 키가 들어있는 경우가 많다. 물론 중요 값들은 배포 시에 다시 암호화를 한다.

 

이때, 로컬에서 테스트할 때의 속성들과 배포 시에 속성들은 다르기 때문에 이 파일들도 여러 개를 만든다.

application.yml
appliication-stage.yml
application-prod.yml

이렇게 상황에 맞는 배포 버전에 따라서 여러 개를 만들어서 사용하고 스프링 부트를 동작시킬 때 프로파일 설정을 통해서 여러 개의 yml 중 맞는 속성을 가져와서 구동하게 된다.

 

그렇다면 스프링 부트를 어떻게 동작시켜야 맞는 값을 가져오게 되는 것인가.


스프링 부트 동작시 profile 설정

스프링 부트를 실행하는 명령어부터 알아보자. 스프링 부트를 실행하는 방법은 생각보다 간단하다. 바로 java 명령어를 이용하는 방법이다.

$ java -jar [application 파일명]

명령에서 -jar 옵션만 주면 .jar 파일을 손쉽게 실행할 수 있다. 하지만 원하는 것은 profile 옵션이고 이는 역시 java 옵션을 추가해 주면 된다.

java -jar -Dspring.profiles.active=prod [application 파일명]

 

따라서 배포 스크립트에 프로파일로 설정할 이름을 옵션으로 지정해서 실행하면 된다. 이 이름은 application-[name].yml 파일에 따라 다르게 만들고 동작시키면 된다.


요즘 느끼는 것이지만 만드는 것도 힘들도 어려운 과정이지만 인프라와 같은 것들도 알아둬야 할 것들이 많다. CI/CD를 개발자가 직접 하는 일이 많아지고 AWS와 같은 인프라 구성도 직접 손댈 일이 많아지는 게 사실이다. 하지만 이렇게 알아가는 재미가 있고 매번 새로운 것들을 접하고 배우면서 성장하는 게 아닐까. 작은 것들이라도 기록하면 도움이 되기에 이 글을 보는 다른 분들에게도 도움이 되었으면 한다.

댓글