Cron 표현식

겔로그·2022년 10월 1일
0

기타

목록 보기
5/12

개요

오늘은 Cron 표현식에 대해 정리를 해보고자 합니다.

주로 cron 표현식은 주기적으로 무언가를 실행하고자 할 때 스케줄러를 사용하는데 이 때 언제 실행할 것인가를 표현하는 것이 cron 표현식입니다.

본래 유닉스 계열의 운영체제에서 시간 기반으로 잡 스케줄링을 하는 후면 프로세스의 명칭이 cron이며 이 때 스케줄링 파라미터로 사용한 식을 cron 표현식이라 부릅니다.

이 cron 표현식은 유닉스, 리눅스 뿐만 아니라 Spring 기반의 Quartz에서도 사용되는 표현식이기 때문에 Spring 개발자로서 스케줄링을 할 경우 어느정도 알아야 하는 개념입니다.

cron 표현식은 어떻게 작성하는지, 각 의미는 어떤지 알아보는 시간을 가져보겠습니다.

cron 표현식

cron 표현식은 다음과 같습니다.

각 자리는 초,분,시,일,월,"요일",년(선택) 을 의미합니다.
이제 각 자리에 어떤 정보들이 들어갈 수 있는지 알아볼까요?

cron 필드 정보

필드 이름허용값
0~59
0~59
0~23
1~31
1~12 or JAN ~ DEC
요일1~7 or SUN ~ SAT
년도빈값, 1970 ~ 2099

cron 표현식의 특수문자

필드 이름설명예시
*모든 수를 나타냄
-값의 사이를 의미1-10 1~10분 사이에 동작
,특정값 지칭1,13,15 분에 동작
/값의 증가 표현0/5 0분부터 시작해 5분마다 동작
?특별한 값 없음
L마지막 날을 의미일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)
W가장 가까운 평일15W는 15일에서 가장 가까운 평일 (월 ~ 금)을 찾음

예시

  1. "* 10-15 * *" : 10시~15시 매분 매초마다 실행
  2. "0 0 10-15 * * *" :10시~15시 매 시각마다 실행
  3. "0,5,10 0 0 * * *" : 자정 0초,5초,10초마다 실행
  4. "0 0/10 * * * *" : 매 시간 0분 0초부터 10분 주기로 실행
  5. "0 0 0 0 0 MON-FRI" : 평일 자정에 실행

결론

오늘은 cron 표현식을 알아봤습니다. 몇가지 안되는 표현식으로 거의 대부분을 표현할 수 있다보니 해당 표현식을 여러 스케줄러에서 사용하는 것 같습니다.

한 번 공부해보신 뒤 직접 표현식을 구현해보시면 이해가 잘 될 것이라고 생각합니다. 감사합니다.

profile
Gelog 나쁜 것만 드려요~

0개의 댓글