Cron표현식이 뭐길래

신규로 맡은 프로젝트의 코드분석 중 크론표현식을 만났다.
크론표현식을 한 번 공부한 적이 있어서 당연히 술술 읽힐 줄 알았는데 웬걸… 기억이 나질않았다.
역시 안다고 생각하는 것과 아는 것은 다르다.

이참에 포스팅을 통해 확실히 내 것으로 만들어야겠다.

개념

Cron 표현식은 스케줄러 시간을 세팅할 때 주로 사용되는 표현식으로 7개의 필드를 띄어쓰기로 구분한다.
연도는 생략가능하다!




형태

시간을 나타내는 표현식인만큼 필드를 외우기는 참 쉽다!

1
<초> <분> <시> <일> <월> <요일> <년>

각 필드마다 허용되는 값과 허용되는 특수문자가 다르다. 각 특수문자의 의미도 알아둬야한다!

필드 필수여부 허용되는 값 허용되는 특수문자
Y 0-59 , - * /
Y 0-59 , - * /
시간 Y 0-23 , - * /
Y 1-31 , - * ? / L W C
Y 0-11 or JAN-DEC , - * /
요일 Y 1-7 or SUN-SAT or sun-sat , - * ? / L C #
N empty or 1970-2099 , - * /




특수문자의 의미

특수문자 의미
* 모든 값
? 특정한 값이 없음
- 범위 지정
, 여러 값을 지정
/ 증가하는 값을 지정(초기값/증가값)
L 마지막 값 지
W 가장 가까운 평일
# 몇 번째 무슨 요일인지 지정




예시

1
2
3
4
5
6
7
8
0 30 13 * * ?
// 매일 오후 1시 30분마다

0 30 10 ? * MON-FRI
//평일 오전 10시 30분마다

0 15 15 L * ?
// 매월 말일 3시 15분마다

사실 가장 쉬운 방법은 cronmaker사이트를 이용하면된다.




참고