Cron 표현식 파서
표준 5필드 cron 표현식을 검증하고 사람이 읽는 설명으로 해석하세요. `*`, `,`, `-`, `/`, 월·요일 이름, `@daily` 같은 매크로를 지원합니다.
이 도구는 표준 5필드 crontab(`minute hour day-of-month month day-of-week`) 기준입니다. Quartz 스타일의 초/연도 필드는 지원하지 않습니다.
day-of-month와 day-of-week를 동시에 제한하면 구현체에 따라 해석 차이가 생길 수 있습니다. 일반적인 Vixie cron 계열 동작을 염두에 두고 명확한 표현식을 쓰는 것이 안전합니다.
표현식이 유효합니다. 각 필드 해석과 요약을 아래에서 확인하세요.
자주 쓰는 예시
해석 요약
*/15 * * * *필드별 해석
*/15****지원 문법
Cron 표현식 파서 가이드
Cron 표현식은 서버 작업, 배치 스크립트, 백업, 캐시 정리, 이메일 발송, 모니터링 작업을 예약할 때 가장 널리 쓰이는 일정 표기법입니다. 하지만 `*/15`, `1-5`, `MON-FRI`, `@daily` 같은 문법이 한 줄에 압축돼 있어, 나중에 다시 읽을 때 의미를 헷갈리기 쉽습니다. 이 도구는 표현식이 유효한지 먼저 점검하고, 각 필드를 사람이 읽는 설명으로 바꿔주는 데 초점을 맞췄습니다.
이럴 때 특히 유용합니다
- 운영 서버 crontab에 들어갈 표현식을 배포 전에 다시 검토할 때
- 팀원이 작성한 cron이 실제로 어떤 간격으로 도는지 빠르게 읽고 싶을 때
- CI, 백업, 리포트 발송, 정기 정산 배치의 실행 시점을 문서화할 때
- day-of-month와 day-of-week가 동시에 들어간 표현식의 위험성을 점검할 때
자주 하는 실수
- Quartz의 6필드/7필드 표현식을 일반 cron 5필드로 착각하는 실수
- `*/2`와 `1-31/2`처럼 step 문법 차이로 예상과 다른 날짜에 실행되는 실수
- 요일 숫자에서 `0`과 `7`이 모두 일요일일 수 있다는 점을 놓치는 실수
- 서버 시간대와 애플리케이션 시간대가 다른데 표현식만 보고 로컬 기준으로 해석하는 실수
day-of-month와 day-of-week 주의점
Cron 구현체는 `day-of-month`와 `day-of-week`를 동시에 제한했을 때 OR처럼 동작하는 경우가 많습니다. 예를 들어 `0 12 1 * 1-5`는 단순히 '매월 1일이면서 평일'이 아니라, '매월 1일 또는 평일'처럼 더 자주 실행될 수 있습니다. 이런 구간은 운영 장애로 이어지기 쉬워서, 가능하면 한쪽 조건만 제한하거나 표현식을 두 개로 분리하는 편이 안전합니다.
자주 묻는 질문
표준 5필드 crontab 형식(minute, hour, day-of-month, month, day-of-week)을 지원합니다. Quartz 스타일의 초(second)나 연도(year) 필드는 지원하지 않습니다.
네. `@hourly`, `@daily`, `@weekly`, `@monthly`, `@yearly` 같은 기본 매크로를 지원하고, 내부적으로 5필드 표현식으로 확장해서 보여줍니다.
일반적인 cron 구현에서는 0과 7을 모두 일요일로 취급하는 경우가 많습니다. 이 도구도 그 관례를 반영해 해석합니다.
현재 버전은 표현식 검증과 사람이 읽는 해석에 집중합니다. 다음 실행 시간을 계산하는 기능은 이후 확장 후보입니다.