본문 바로가기
Develop/Spring

Spring Boot 프로젝트에서 환경에 따라 다른 Profile 등록하기

by 코딩의성지 2021. 7. 9.

하이... 오늘은 실무에서 일하시는 분들이라면 알면 좋은 내용에 대해 작성해보려고 한다.

 

혼자 개발하는 개발자라면 상관없겠지만, 실무에서는 보통

로컬 환경, 개발 환경, 테스트 환경 , 운영 환경 다양한 환경에서 프로젝트를 수행한다.

 

Spring Boot 를 이용하는 개발자들이라면 다들 아시겠지만

application.yml 파일에 설정을 별도로 해주어 이런 환경 구분이 가능하다.

 

 

일단 test 전용으로 yml 파일도 하나 복사해서 만들어주자.

 

그리고 내부에 test > resources 디렉토리에 있는 yml 에는

`````

spring:
  profiles:
    active: test
   

`````

를 추가해주고,  main > resources 에는

`````

spring:
  profiles:
    active: local
   

`````

이렇게 추가해주자.  보통 local, dev, test, onl 이런식으로 나눠준다.

 

그리고 이제 @Profile 어노테이션을 이용해서 특정한 환경에서만 구동되는 로직을 작성할 수 있다.

 

예를 들어서 내가 local 환경에서 테스트를 위해서 임시 데이터를 넣는 로직이 필요하다고 가정하자.

@Profile("local")
@Component
@RequiredArgsConstructor
public class InitData {
    private final InitDataService initDataService;

    @PostConstruct
    public void init() {
        initDataService.init();
    }
    
    @Component
    static class InitDataService{

       ````
        @Transactional
        public void init() {
			//임시 데이터 입력 
        }
        `````
    }
}

이제 이런식으로 클래스를 하나 만들고 , Spring Boot를 실행 하면 local 환경에서는 저 데이터 초기화 하는 로직이 돌게 되는 것이다.

 

끝.

반응형

댓글