# Quartz Cron, Cron

배치 개발 후 스케줄을 거는데... 크론 표현식을 그냥 무지성으로 GPT 한테 물어본대로 적고 커밋 했었다... 근데 Moon매니저님이 크론 표현식은 두번째가 이라고 하는게 아닌가? 지피티한테 속은줄 알고 수정했으나... Quartz Cron은 여섯자리로 결론은... 내가 맞았다... Quartz Cron에 대해 확실히 알았으면 이런일이 없었을터인데.... 그동안 AI한테 많이 데여서 사람을 믿어야지 했다가 ... 그만.... ㅋㅋ Quartz Cron에 대해 확실히 알고 가자...

# 1. 필드 개수 차이

# ✔ 일반 Cron (Linux)

일반 Cron은 5개의 필드를 사용함:

분 시 일 월 요일

예시:

21 * * * *

→ 매 시 21분에 실행됨

# ✔ Quartz Cron

Quartz Cron은 6~7개의 필드를 사용함:

초 분 시 일 월 요일 [년도]

예시:

0 21 * * * ?

→ 매 시 21분 0초에 실행됨

# 2. 초 단위 지원 여부

# ✔ 일반 Cron

초 단위 스케줄링을 지원하지 않음

# ✔ Quartz Cron

초 단위까지 지원함
예시:

5 * * * * ?

→ 매 분 5초에 실행됨

# 3. 특수 문자 기능

# ✔ Quartz Cron만 제공하는 특수 문자

  • ? : 특정하지 않음을 의미함
  • L : 마지막 일 또는 마지막 요일을 의미함
  • # : 몇 번째 요일을 의미함 (예: 2#1 = 매월 첫 번째 월요일)
  • W : 가장 가까운 평일을 의미함

예시:

0 0 8 ? * MON-FRI

→ 매주 월~금 08시에 실행됨

# 4. 요일 표현 방식 차이

# ✔ 일반 Cron

숫자 또는 약어로 요일을 표현함

0 = 일요일
1 = 월요일
...

# ✔ Quartz Cron

MON, TUE 같은 문자열 표현을 지원함
또는 1=SUN 같은 방식도 사용 가능함
또한 ? 사용 가능함

# 5. 사용 목적의 차이

구분 Quartz Cron 일반 Cron
실행 위치 자바 애플리케이션 내부 스케줄러 서버 OS의 Cron
필드 개수 6~7개 5개
초 단위 지원 O X
특수 문자 매우 다양함 제한적임
복잡한 스케줄 쉽게 가능함 어려움
TimeZone 설정 쉽게 설정 가능함 별도 설정 필요함