본문 바로가기
TIL

스프링 @ActiveProfiles (22.11.23 TIL)

by winteringg 2022. 11. 23.

개발을 하다보면 여러 개의 환경을 관리해야 한다. 실제 서비스가 운영되는 환경이 있다면, 테스트 코드를 위한 테스트 환경이 있고, 실제 운영 환경과 동일하게 맞춰두고 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

 

댓글