콘텐츠로 건너뛰기

스케줄러 사용을 위한 크론 표현식(Cron Expression) 정리

개발을 하다 보면 사용 할 때만 잠깐 찾아서 사용하고 금방 잊어서 다음에 쓸 때 다시 찾아보게 하는 몇 가지가 있습니다. 제 경우엔 정규 표현식(Regular Expression)과 크론 표현식(Cron Expression)이 바로 그것 입니다. 최근에 필요에 의해서 다시 여기저기 찾아보는 일이 있었는데요. 이 참에 블로그에 쭉 정리 해 두려 합니다.

크론 표현식(Cron Expression) 이란?

크론 표현식은 리눅스나 유닉스 기반 운영체제에서 반복 작업의 일정을 지정하는 데 사용됩니다. 그리고 스프링 배치 등의 스케쥴링을 위해 사용 됩니다.

7자리 쿼츠 크론 표현식
7자리 쿼츠 크론 표현식

크론 표현식의 7 자리의 문자가 어떤 것을 표현하는 것인지 간략하게 정리해 그려 보았습니다.

5 자리 크론 표현식
5 자리 크론 표현식

유닉스/리눅스의 Crontab에 사용되는 표현식은 붉은 점선으로 표시된 초, 년에 제외 된 5자리의 크론 표현식이 사용되고 자바의 스프링 배치 등에서는 7 자리 쿼츠 크론 표현식이 사용됩니다. 그리고 ‘년’ 에 해당하는 문자는 생략 가능합니다.

정리하면 Crontab의 크론 표현식은 ‘초(Seconds)’, ‘년(Year)’이 없는 5자리. 그리고 스프링 배치는 7자리 또는 ‘년(Year)’을 생략한 6자리로 표현됩니다.

크론 표현식에서 사용되는 문자

*모든 값. (매 분, 매 시, 매 일 등에 사용)
특정 범위. (예 : 5-10)
,여러 개의 지정 시 사용. (예 : 5,7,10)
/초기 값과 증가 값. (예 */5)
?특정 값이 없음. 날짜와 요일에만 사용
#n번째 특정 요일 지정
W가장 가까운 평일
L지정할 수 있는 범위의 마지막 값, 날짜와 요일에만 사용
크론 표현식에 사용되는 특수문자

각 자리마다 숫자, 특수문자 또는 숫자와 특수문자 조합으로 작성됩니다. 사용할 수 있는 특수 문자는 위의 표와 같습니다.

1월2월3월4월5월6월7월8월9월10월11월12월
123456789101112
JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC
월 표현 숫자와 문자
크론0123456
쿼츠 크론1234567
SUNMONTUEWEDTHUFRISAT
요일 표현 숫자와 문자

월(Month)과 요일은 숫자 또는 문자로 표현할 수 있습니다. 요일은 특이하게 리눅스에 사용되는 크론과 자바 스프링에서 사용하는 쿼츠크론의 숫자 표현이 다릅니다. 주의해야 할 부분입니다.

크론 표현 사용 예시

위의 두 글을 통해서 사용 예시를 참고하시면 됩니다.


참고자료

Cron Trigger Tutorial (quartz-scheduler.org)

cron – 위키백과, 우리 모두의 백과사전 (wikipedia.org)


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다