TIL

스프링 @ActiveProfiles (22.11.23 TIL)

winteringg 2022. 11. 23. 23:13

개발을 하다보면 여러 개의 환경을 관리해야 한다. 실제 서비스가 운영되는 환경이 있다면, 테스트 코드를 위한 테스트 환경이 있고, 실제 운영 환경과 동일하게 맞춰두고 QA 를 진행하는 스테이지 환경 등이 있다. 그렇기 때문에 각각의 환경들에 맞게 서로 다르게 빈을 정의해주어야 한다. 예를 들어 개발을 위해서 로컬 또는 내장 캐시를 이용할 수 있지만, 실제 운영을 위해서는 외부 캐시를 이용하는 상황처럼 말이다.

스프링은 환경에 따라 서로 다르게 빈을 정의할 수 있도록 환경을 분리하는 기술을 제공하는데, 이와 관련된 어노테이션이 @ActiveProfiles 이다.

@ActiveProfiles

이 어노테이션은 활성 프로파일을 지정하기 위해 사용한다. 활성 프로파일이란 스프링 컨테이너를 실행할 때 실행 환경을 지정해주는 속성으로, 환경을 구분하기 위해 사용된다. 프로파일은 JVM 의 옵션으로도 설정할 수 있고 스프링에서도 설정할 수 있다.

이번 강의에서는 application.properties 파일에 아래 설정 옵션을 넣어주었다.

spring.config.activate.on-profile=test


그리고 테스트 환경에서 이 프로파일을 지정하도록 @ActiveProfiles("test") 어노테이션을 선언해주었는데, 이렇게 되면 해당 "test" 프로파일로 스프링 컨테이너가 실행된다.

test 프로파일이 아닌 다른 프로파일을 위해 등록된 빈들이나 설정 파일들은 모두 비활성화 된다.

 

 

참고 :

 

[Spring] 활성 프로파일(Profile)의 관리를 위한 @Profile과 @ActiveProfiles

개발을 하다 보면 서로 다른 환경을 운영해야 한다. 이번에는 이와 관련되어 Spring이 지원해주는 기술들에 대해 알아보도록 하자. 1. 활성 프로파일과 @Profile, @ActiveProfiles [ 환경의 분리 ] 개발을

mangkyu.tistory.com