Cron Expression 정리

러블리소피·2025년 1월 2일

CronScheduleBuilder.cronSchedule()는 Java에서 Quartz Scheduler 라이브러리를 사용할 때 특정 시간 간격에 작업을 실행하도록 예약할 수 있게 해주는 강력한 도구입니다. 이 메서드는 Cron Expression을 사용하여 스케줄을 정의합니다. 이 포스팅에서는 Cron Expression의 형식, 각 필드의 의미, 작성 방법 및 예제에 대해 설명하겠습니다.

1. Cron Expression의 기본 형식

Cron Expression은 공백으로 구분된 6개의 필드로 구성됩니다.

초(Seconds) 분(Minutes) 시간(Hours) 일(Day of Month) 월(Month) 요일(Day of Week)

각 필드의 유효 범위는 다음과 같습니다.

2. 각 필드의 상세 설명

초(Seconds)

  • 범위: 0-59

  • 0 : 정확히 0초에 실행

  • */15 : 15초마다 실행

  • 10,30,50 : 10초, 30초, 50초에 실행

분(Minutes)

  • 범위: 0-59

  • 0 : 작업이 매 시간 0분에 실행

  • */15 : 15분마다 실행

  • 10,30,50 : 10분, 30분, 50분에 실행

시간(Hours)

시간 필드는 작업이 실행될 특정 시간을 정의합니다.

  • 범위: 0-23

  • 0 : 자정에 실행

  • 9-17 : 오전 9시부터 오후 5시까지 매시간 실행

  • */4 : 4시간 간격으로 실행

일(Day of Month)

  • 범위: 1-31

  • 15 : 매월 15일에 실행

  • */5 : 매 5일마다 실행

  • L : 해당 월의 마지막 날에 실행

  • W : 가장 가까운 평일(월-금)에 실행 (예: 15W는 15일이 주말이면 가장 가까운 평일로 이동)

월(Month)

  • 범위: 1-12 또는 JAN-DEC

  • 1 또는 JAN : 1월에 실행

  • 6-8 : 6월부터 8월까지 실행

  • */2: 매 두 달마다 실행됩니다.

요일(Day of Week)

  • 범위: 1-7 또는 SUN-SAT

  • 1 또는 SUN : 일요일에 실행

  • MON-FRI : 월요일부터 금요일까지 실행

  • 5L : 해당 월의 마지막 금요일에 실행

  • 2#1 : 매월 첫 번째 월요일에 실행

특수 문자

3. Cron Expression 예제

매일 자정에 실행

0 0 0 * * ?

매시간 15분마다 실행

0 15 * * * ?

매주 월요일 오전 9시에 실행

0 0 9 ? * MON

매월 마지막 날 오후 11시 30분에 실행

0 30 23 L * ?

주말 제외 매일 오전 8시부터 오후 6시까지 30분 간격으로 실행

0 0/30 8-18 ? * MON-FRI

4. Cron Expression 테스트 도구

복잡한 Cron Expression을 작성할 때, 테스트 도구를 사용하면 매우 유용합니다. 다음 도구를 추천합니다:

5. 결론

Cron Expression은 Quartz Scheduler에서 작업의 실행 주기를 세부적으로 제어할 수 있는 강력한 도구입니다. 이 문서를 참고하여 자신만의 Cron Expression을 작성하고, 효율적인 작업 스케줄링을 구현해보세요!

profile
발전하는 개발자가 되고싶어요

0개의 댓글