상세 컨텐츠

본문 제목

cron 표현식

JAVA Tip

by cookieangelo 2024. 3. 13. 10:00

본문

Cron 표현식은  시간 기반의 작업을 스케줄링하기 위해 사용되는 표현식이다. 이 표현식은 주로 백업, 시스템 유지 관리 작업 등을 자동화하는 데 사용된다. Cron 표현식은 6개 또는 7개의 필드로 구성되며, 각 필드는 특정 시점 또는 시간 간격을 나타낸다. 

필드 필수값 여부 허용되는 값 허용되는 특수문자
초 (Seconds) Y 0~59 ,  -  * /
분 (Minutes) Y 0~59 ,  -  * /
시 (Hours) Y 0~23 ,  -  * /
일 (Day of month) Y 1~31 ,  -  * / L W ?
월 (Month) Y 1~12 또는 JAN ~ DEC ,  -  * /
요일 (Day of week) Y 0 ~ 6 또는 SUN ~ SAT ,  -  * / L # ?
년 (Year) N 1970 ~ 2099 ,  -  * /

 

특수문자
  • *: 모든 값
  • ? : 특정한 값이 없음
  • -: 범위 지정
  • , : 여러 값을 지정
  • / : 증가하는 값을 지정 (초기값/증가값)
  • L : 마지막 값 지정
  • W : 가장 가까운 평일
  • # : 몇 번째 무슨 요일인지 지정
참고사항
  • **와일드카드(*) 문자는 '매 번'**을 의미한다.
  • **물음표(?) 는 '설정값 없음'**을 나타낸다. 이는 일(DOM)과 요일(DOW)에만 사용할 수 있다.
  • 슬래쉬(/) 는 값 증가 표현에 사용된다. 분(Minutes) 항목에 "10/15" 라고 쓴다면, "10분부터 시작해서 매 15분마다" 를 의미한다.
  • 샾(#)은 k#N으로 사용되며, 이 달의 N번째 K요일을 의미한다. 요일(DOW) 항목에 "5#1" 라고 적는다면, "이 달의 첫번째 목요일"을 뜻한다.
  • 문자 "L" 은 마지막(Last)를 의미한다. L은 일(DOM)과 요일(DOW)에만 사용할 수 있다. 예를 들어 일(DOM)항목에 L이 사용된다면 단순하게 해당 월의 마지막 날을 의미한다. 조금 다른 방법으로도 사용되는데, 특정 값 뒤에 사용된다면 "이 달의 마지막 날"을 의미하게 된다. 예를들어 요일에 "6L"을 준다면, "이 달의 마지막 금요일" 을 의미하게 된다.
  • **문자 "W"는 해당 날로부터 가장 가까운 평일(Weekday)**을 의미한다. 예를 들어 일(DOM) 항목에 "10W"라고 준다면, "이 달의 10째 날로부터 가장 가까운 평일"을 의미한다.
예제

매일 오후 12시

0 0 12 * * ?

 

매일 오후 2시부터 2시 55분까지 5분마다

0 0/5 14 * * ?

 

매일 오후 2시부터 2시 55분까지 5분마다,매일 오후 6시부터 6시 55분까지 5분마다

0 0/5 14, 18 * * ?

 

매월 셋째주 금요일 오전 10시 15분

0 15 10 ? * 6#3

 

매월 말일 오전 10시 15분

0 15 10 L * ?

 

크론 표현식 검증

 

CronMaker

 

www.cronmaker.com

 

'JAVA Tip' 카테고리의 다른 글

Spring Boot 에서 LogBack 설정  (0) 2024.03.08
frontend-maven-plugin 사용 빌드  (0) 2024.03.07
Jasypt 이용한 properties DB 암호화  (0) 2024.03.06
hikari 를 이용한 DB Connection  (0) 2024.03.05
Quartz를 이용한 스케쥴링  (0) 2024.03.05

관련글 더보기