[스프링] 프로파일마다 다른 스케줄링 설정
스프링 애플리케이션을 개발하다보면, 다양한 환경에서 동일한 애플리케이션을 실행해야할 때가 있습니다. 이때 스프링 프로파일을 사용하여 각각의 환경에 맞는 설정을 구성할 수 있습니다. 이번 포스트에서는 프로파일마다 다른 스케줄링 설정을 하는 방법에 대해 알아보겠습니다.
1. 프로파일을 정의하기
먼저, application.yml 파일에 각각의 프로파일을 정의합니다. 이때 spring.profiles.active 속성을 사용하여 활성화할 프로파일을 지정할 수 있습니다.
예를 들어, dev와 prod 프로파일을 정의할 때:
spring:
profiles:
active: dev
2. 프로파일별 설정 구성하기
이제 각각의 프로파일에 해당하는 설정을 구성합니다. 예를 들어, SchedulerConfig 클래스를 생성하여 스케줄링을 설정하고, 각각의 프로파일에 맞게 설정을 오버라이딩합니다.
@Configuration
@Profile("dev")
public class DevSchedulerConfig {
// dev 프로파일에 대한 스케줄링 설정
}
@Configuration
@Profile("prod")
public class ProdSchedulerConfig {
// prod 프로파일에 대한 스케줄링 설정
}
3. 프로파일에 따른 빈 구성하기
마지막으로, 스케줄링 빈을 정의할 때 프로파일을 지정하여 각각의 환경에 맞는 빈을 설정할 수 있습니다.
@Bean
@Profile("dev")
public TaskScheduler devTaskScheduler() {
// dev 프로파일에 대한 TaskScheduler 빈 설정
}
@Bean
@Profile("prod")
public TaskScheduler prodTaskScheduler() {
// prod 프로파일에 대한 TaskScheduler 빈 설정
}
위와 같이 프로파일별로 다른 스케줄링 설정을 구성할 수 있습니다.
흔히 사용되는 프로파일 외에도 다른 방법으로도 스케줄링을 설정할 수 있습니다. 하지만, 스프링 프로파일을 활용하면 간단하게 다양한 환경에 맞춰 스케줄링 설정을 관리할 수 있습니다.