⏰ 크론 표현식 해석기
크론 표현식을 넣으면 언제 실행되는지 한국어 문장과 다음 실행 시각 10개로 보여 줘요. 아래 표에서 필드를 하나씩 고쳐 직접 만들 수도 있어요.
사용법
- 맨 위 칸에 크론 표현식을 붙여넣으세요. 바로 아래에 "평일(월~금) 오전 9시 0분"처럼 한국어 설명이 나와요.
- 다음 실행 10회가 한국 시간(KST)으로 보여요. GitHub Actions·AWS처럼 서버가 UTC 기준이면 시간대를 UTC로 바꿔 확인하세요.
- 직접 만들려면 fields 표에서 분·시·일·월·요일 칸을 하나씩 고치거나 칸 아래 버튼(
*/15,1-5…)을 누르세요. 위 표현식이 함께 바뀌어요. - Spring
@Scheduled·Quartz처럼 초까지 쓰는 6자리 표현식은 그대로 넣으면 자동으로 인식해요. 초 필드 사용을 켜면 표에 초 칸이 생겨요. - 잘못된 값은 빨간 글씨로 어느 필드가 왜 틀렸는지 알려 줘요.
크론 표현식 구조
크론(cron)은 리눅스·유닉스에서 정해진 시각에 명령을 자동 실행하는 스케줄러예요. crontab -e로 등록하는 한 줄은 공백으로 나눈 다섯 칸과 실행할 명령으로 이루어져요.
| 순서 | 필드 | 허용 값 | 이름 |
|---|---|---|---|
| (0) | 초 — 6자리일 때만 | 0-59 | |
| 1 | 분 | 0-59 | |
| 2 | 시 (24시간) | 0-23 | |
| 3 | 일 | 1-31 | |
| 4 | 월 | 1-12 | JAN-DEC |
| 5 | 요일 | 0-7 (0과 7은 일요일) | SUN-SAT |
특수 문자
| 기호 | 뜻 | 예시 | 의미 |
|---|---|---|---|
| * | 모든 값 | * * * * * | 매분 |
| , | 여러 값 | 0 9,18 * * * | 오전 9시, 오후 6시 |
| - | 범위 | 0 9 * * 1-5 | 평일 오전 9시 |
| / | 간격 | */15 * * * * | 15분마다 (0, 15, 30, 45분) |
| a-b/n | 범위 안 간격 | 0 9-18/3 * * * | 9시, 12시, 15시, 18시 |
| ? | 지정 안 함 (Quartz) | 0 0 12 ? * MON | * 와 같게 처리 |
@yearly(=0 0 1 1 *), @monthly(=0 0 1 * *), @weekly(=0 0 * * 0), @daily(=0 0 * * *), @hourly(=0 * * * *) 같은 매크로도 해석해요. Quartz 전용인 L(마지막 날), W(가장 가까운 평일), #(n번째 요일)과 7번째 연도 필드는 표준 크론에 없어서 오류로 알려 줘요.
일과 요일을 둘 다 쓰면? (OR 규칙)
헷갈리기 쉬운 규칙이에요. 리눅스 기본 크론(Vixie cron, cronie)은 일 필드와 요일 필드를 둘 다 지정하면 둘 중 하나만 맞아도 실행해요. 0 0 13 * 5는 "13일의 금요일"이 아니라 매월 13일 그리고 매주 금요일마다 실행돼요. 둘 중 하나가 *로 시작하면 다른 쪽 조건만 적용돼요. 이 도구도 같은 규칙으로 다음 실행 시각을 계산해요.
자주 쓰는 예시
| 표현식 | 의미 |
|---|---|
| */5 * * * * | 5분마다 |
| 0 * * * * | 매시 정각 |
| 0 0 * * * | 매일 자정 |
| 30 6 * * * | 매일 오전 6시 30분 |
| 0 9 * * 1-5 | 평일 오전 9시 |
| */10 9-18 * * 1-5 | 평일 오전 9시~오후 6시 사이 10분마다 |
| 0 0 1 * * | 매월 1일 자정 |
| 0 3 * * 0 | 매주 일요일 오전 3시 (백업) |
| 0 0 1 1 * | 매년 1월 1일 자정 |
시간대 주의 — GitHub Actions·AWS는 UTC
서버의 크론은 그 서버의 시간대를 따라요. 한국 서버는 보통 KST지만 GitHub Actions의 schedule, AWS EventBridge, Google Cloud Scheduler 기본값, 대부분의 도커 컨테이너는 UTC예요. KST는 UTC보다 9시간 빠르니, 한국 시간 오전 9시에 돌리려면 UTC로 0 0 * * *(자정)을 써야 해요. 시간대를 UTC로 바꿔 놓고 실행 시각을 확인해 보세요. 한국은 서머타임이 없어서 KST는 1년 내내 UTC+9로 일정해요.
요일 번호는 표준 크론 기준(0·7=일, 1=월)이에요. Quartz는 1=일요일, 7=토요일로 달라서 요일을 숫자 대신 MON·FRI 같은 영어 이름으로 쓰면 어느 쪽에서도 안전해요. 다음 실행 시각은 브라우저의 현재 시각을 기준으로 계산하며 서버로 아무것도 보내지 않아요.