이번에는 Spring Boot 애플리케이션에서 프로파일을 외부에서 활성화하는 다양한 방법을 다룹니다. 이를 통해 환경 간에 애플리케이션을 이동할 때 코드베이스를 변경하거나 Docker 이미지를 다시 생성할 필요 없이 환경에 따라 적절한 프로파일을 활성화할 수 있습니다. 이는 15 Factor Methodology에서 강조한 원칙을 준수하면서도 애플리케이션의 유연성과 보안성을 향상시키는 방법입니다.
애플리케이션을 실행할 때 커맨드 라인 인수를 통해 프로파일을 활성화하거나 속성 값을 설정할 수 있습니다.
이 방법은 Spring Boot에서 가장 높은 우선순위를 가지며, application.yml 파일이나 다른 프로파일 파일에 정의된 값을 덮어씁니다.
사용 예:
java -jar myapp.jar --spring.profiles.active=prod --build.version=1.0
JVM 시스템 속성을 사용하여 속성을 외부에서 설정할 수 있습니다.
커맨드 라인 인수보다는 낮지만, application.yml 파일보다는 높은 우선순위를 가집니다.
사용 예
java -Dspring.profiles.active=prod -Dbuild.version=1.0 -jar myapp.jar
-D 옵션을 사용하여 시스템 속성을 지정합니다.
운영 체제의 환경 변수를 사용하여 속성을 설정할 수 있습니다.
이 방법은 플랫폼 독립적이며, Java나 Spring Boot를 사용하는 모든 애플리케이션에서 사용할 수 있습니다.
환경 변수를 설정할 때는 속성 이름을 대문자로 변환하고, 점(.)을 밑줄(_)로 변경해야 합니다.
사용 예
Windows: set SPRING_PROFILES_ACTIVE=prod && java -jar myapp.jar
Linux/Mac: SPRING_PROFILES_ACTIVE=prod java -jar myapp.jar