크론 표기법은 배치 프로그램이나 스케줄러를 실행할 때, "언제 실행할지"를 컴퓨터에게 알려주는 시간 표기법이다. 스프링(Spring)에서는 리눅스 표준(5자리)과 달리 초(Second)가 포함된 6자리 형식을 사용한다.
형식: 초 분 시 일 월 요일
순서 | 필드명 | 허용 값 | 허용 특수문자 |
1 | 초 (Seconds) | 0 ~ 59 | , - * / |
2 | 분 (Minutes) | 0 ~ 59 | , - * / |
3 | 시 (Hours) | 0 ~ 23 | , - * / |
4 | 일 (Day of Month) | 1 ~ 31 | , - * / ? |
5 | 월 (Month) | 1 ~ 12 (JAN-DEC) | , - * / |
6 | 요일 (Day of Week) | 1 ~ 7 (MON-SUN) | , - * / ? |
기호 | 설명 | 예시 |
* | 모든 값 (All) | 매 초, 매 분, 매 시 등 모든 시점을 의미 |
? | 특정 값 없음 (No Specific) | 일(Day)이나 요일(Week) 필드에서 "상관없음"을 지정할 때 사용 |
- | 범위 (Range) | 10-12 (10시, 11시, 12시) |
, | 목록 (List) | MON,WED,FRI (월, 수, 금) |
/ | 간격 (Step) | 0/10 (0분부터 시작해서 10분마다) |
# 매일 새벽 4시 정각 (우리 프로젝트 정산 시간!) 0 0 4 * * * # 매일 자정 (00:00:00) 0 0 0 * * * # 매월 1일 새벽 2시 0 0 2 1 * * # 매년 12월 25일 자정 (크리스마스) 0 0 0 25 12 *
# 10분마다 실행 0 0/10 * * * * # 1분마다 실행 0 0/1 * * * * # 매일 오후 2시부터 2시 55분까지 5분마다 0 0/5 14 * * *
# 매주 월요일 오전 10시 0 0 10 * * MON # 평일(월~금) 아침 9시 출근 시간 0 0 9 * * MON-FRI # 주말(토, 일) 정오 12시 0 0 12 * * SAT,SUN
@Scheduled 어노테이션 사용 시)@Scheduled(cron = "@daily") : 매일 자정 실행@Scheduled(cron = "@hourly") : 매 시간 정각 실행