개발을 하다보면 여러 개의 환경을 관리해야 한다. 실제 서비스가 운영되는 환경이 있다면, 테스트 코드를 위한 테스트 환경이 있고, 실제 운영 환경과 동일하게 맞춰두고 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
'TIL' 카테고리의 다른 글
Spring Boot - @Embeddable, @Embedded, @AttributeOverride, @AttributeOverrides (22.11.25 TIL) (0) | 2022.11.25 |
---|---|
SQL 기본 문법 정리해보기 (22.11.24 TIL) (0) | 2022.11.24 |
애매한 완벽주의 버리기 (22.11.22 TIL) (0) | 2022.11.22 |
Java - enum 타입 (22.11.21 TIL) (0) | 2022.11.21 |
Web Storage (22.11.20 TIL) (0) | 2022.11.20 |
댓글