[java] Spring Framework의 스케줄링 기능 활용하기
스프링 프레임워크는 많은 개발자들에게 사랑받고 있는 자바 기반의 오픈 소스 프레임워크입니다. 스프링은 다양한 모듈을 제공하며, 이 중 하나인 스프링 스케줄링을 사용하여 자동으로 작업을 예약하고 실행할 수 있습니다.
스프링 스케줄링 설정하기
-
의존성 추가하기
먼저 스프링 스케줄링을 사용하기 위해 필요한 의존성을 추가해야 합니다.
pom.xml
파일에 다음 의존성을 추가합니다.<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
-
스케줄러 빈 등록하기
스프링 부트에서 스케줄링을 사용하기 위해서는
@EnableScheduling
애노테이션을 사용하여 스케줄링 기능을 활성화해야 합니다. 이를 위해서는@Configuration
애노테이션이 부여된 설정 클래스에@EnableScheduling
애노테이션을 추가합니다.@Configuration @EnableScheduling public class SchedulingConfig { }
-
스케줄링 메서드 작성하기
스케줄링을 사용할 메서드에는
@Scheduled
애노테이션을 추가하여 작업의 스케줄을 설정할 수 있습니다. 이 애노테이션의 속성으로는fixedDelay
,fixedRate
,cron
등이 있으며, 각각 다른 방식으로 스케줄링 작업을 수행할 수 있습니다.@Component public class MyScheduler { @Scheduled(fixedDelay = 5000) public void doSomething() { // 스케줄링 작업을 수행할 코드 작성 } }
스케줄링 타입에 대한 설명
fixedDelay
: 이전 작업이 끝난 후 지정된 시간만큼 지연된 후 작업을 실행합니다.fixedRate
: 이전 작업과 상관없이 지정된 시간마다 작업을 실행합니다.cron
: Cron 표현식을 사용하여 작업의 스케줄을 설정합니다. Cron 표현식은 일반적으로 “* * * * * *” 형식으로 표현되며, 초, 분, 시간, 일, 월, 요일 순서로 필드를 나타냅니다.
마무리
이제 스프링 스케줄링을 활용하여 자동으로 작업을 예약하고 실행할 수 있는 방법을 알아보았습니다. 스프링을 사용하는 개발자라면 스케줄링을 통해 작업을 자동화할 수 있으므로, 이를 적절히 활용하여 개발 생산성을 높여보세요.
참고 문서: https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#scheduling