쓰는 방법
- 크론 표현식을 입력하거나 위의 예시 단추를 누릅니다.
- 앞으로 실행될 시각이 한국 시간(UTC+9)으로 최대 50개까지 나옵니다. 기본은 20개입니다.
- 각 줄에는 앞 실행과의 간격과 지금부터 얼마 뒤인지가 함께 붙습니다.
- 표현식이 무슨 뜻인지는 결과 위에 한국어 문장과 칸별 풀이 표로 보여 줍니다.
크론 표현식의 칸
크론 표현식은 공백으로 나뉜 다섯 칸이 기본입니다. 왼쪽부터 분, 시, 일, 월, 요일이고, 맨 앞에 초를 더해 여섯 칸으로 쓰는 형식도 있습니다. 이 계산기는 두 형식을 모두 받으며, 칸이 여섯 개면 맨 앞을 초로 봅니다. 다섯 칸으로 쓰면 초는 0으로 보므로 항상 정각(0초)에 실행됩니다.
| 칸 | 범위 | 예 | 설명 |
|---|---|---|---|
| 초 | 0-59 | */30 (30초마다) | 여섯 칸으로 쓸 때만 있는 칸입니다. 다섯 칸이면 0초로 봅니다. |
| 분 | 0-59 | 0,30 (정각과 30분) | 한 시간 안에서 몇 분에 실행할지 정합니다. |
| 시 | 0-23 | 9-18 (9시부터 18시까지) | 0이 자정, 12가 정오입니다. 오전·오후를 쓰지 않습니다. |
| 일 | 1-31 | 1,15 (1일과 15일) | 그 달에 없는 날짜(2월 30일 등)는 그냥 건너뜁니다. |
| 월 | 1-12 | 3,6,9,12 (분기 첫 달) | JAN부터 DEC까지 영어 약어도 씁니다. |
| 요일 | 0-7 | 1-5 (월요일부터 금요일) | 0과 7이 모두 일요일입니다. SUN부터 SAT까지 약어도 씁니다. |
쓸 수 있는 기호
한 칸 안에서는 별표와 쉼표, 붙임표, 사선을 섞어 쓸 수 있습니다. 예를 들어 분 칸에 0-30/10이라고 쓰면 0분부터 30분까지에서 10분 간격이므로 0·10·20·30분에 실행되고, 5,25,45처럼 값을 직접 나열해도 됩니다. 범위의 시작이 끝보다 클 수는 없으므로 밤 10시부터 새벽 2시까지는 22-23,0-2처럼 둘로 나눠 씁니다.
| 기호 | 뜻 | 예 |
|---|---|---|
* | 그 칸의 모든 값 | * * * * * — 매분 |
a,b | 값 여러 개를 나열 | 0 9,18 * * * — 9시와 18시 |
a-b | a부터 b까지 연속된 값 | 0 9 * * 1-5 — 평일 9시 |
*/n | 처음부터 n칸씩 | */15 * * * * — 15분마다 |
a-b/n | 범위 안에서 n칸씩 | 0-30/10 * * * * — 0·10·20·30분 |
@daily | 자주 쓰는 주기의 줄임말 | @daily = 0 0 * * * |
흔히 쓰는 표현식
아래 표의 첫 실행 시각과 간격은 기준 시각을 2026-01-01 00:00:00로 두고 이 페이지를 만들 때 계산한 값입니다. 계산기에 같은 표현식을 넣으면 지금 시각을 기준으로 다시 계산해 보여 줍니다.
| 표현식 | 뜻 | 첫 실행 | 다음 실행까지 |
|---|---|---|---|
* * * * * | 매분 | 2026-01-01 00:01:00 | 1분 |
*/10 * * * * | 10분마다 | 2026-01-01 00:10:00 | 10분 |
0 * * * * | 매시 정각 | 2026-01-01 01:00:00 | 1시간 |
0 */6 * * * | 6시간마다 | 2026-01-01 06:00:00 | 6시간 |
0 0 * * * | 매일 자정 | 2026-01-02 00:00:00 | 1일 |
0 9 * * 1-5 | 평일 오전 9시 | 2026-01-01 09:00:00 | 1일 |
30 18 * * 5 | 금요일 저녁 6시 30분 | 2026-01-02 18:30:00 | 7일 |
0 3 * * 0 | 일요일 새벽 3시 | 2026-01-04 03:00:00 | 7일 |
0 0,12 * * * | 매일 0시와 12시 | 2026-01-01 12:00:00 | 12시간 |
0 9 1,15 * * | 매월 1일과 15일 오전 9시 | 2026-01-01 09:00:00 | 14일 |
0 0 1 * * | 매월 1일 자정 | 2026-02-01 00:00:00 | 28일 |
0 0 28-31 * * | 매월 말일 무렵(28~31일) | 2026-01-28 00:00:00 | 1일 |
0 0 1 1 * | 매년 1월 1일 | 2027-01-01 00:00:00 | 1년 |
0 0 1 * 1 | 매월 1일 또는 월요일 (OR 규칙) | 2026-01-05 00:00:00 | 7일 |
*/30 * * * * * | 30초마다 (6칸) | 2026-01-01 00:00:30 | 30초 |
일과 요일을 함께 쓰면 "또는"이 된다
크론에서 가장 많이 틀리는 곳입니다. 일(day-of-month)과 요일(day-of-week) 두 칸이 모두 지정되어 있으면 두 조건은 그리고가 아니라 또는으로 묶입니다. 즉 둘 중 하나만 맞아도 실행됩니다.0 0 1 * 1은 "매월 1일이면서 월요일"이 아니라 "매월 1일과 모든 월요일"이라는 뜻입니다. 기준 시각 이후 실행 시각을 뽑아 보면 1일이 아닌 월요일도, 월요일이 아닌 1일도 함께 들어 있습니다.
| 실행 시각 | 요일 | 걸린 조건 |
|---|---|---|
| 2026-01-05 00:00:00 | 월 | 월요일 |
| 2026-01-12 00:00:00 | 월 | 월요일 |
| 2026-01-19 00:00:00 | 월 | 월요일 |
| 2026-01-26 00:00:00 | 월 | 월요일 |
| 2026-02-01 00:00:00 | 일 | 매월 1일 |
| 2026-02-02 00:00:00 | 월 | 월요일 |
반대로 두 칸 중 하나가 별표로 시작하면 두 조건을 모두 만족해야 실행됩니다.0 0 */2 * 1은 홀수 일이면서 월요일인 날만 골라 2026-01-05, 2026-01-19, 2026-02-09 처럼 드물게 실행됩니다. 이 계산기는 리눅스 crontab(Vixie cron·cronie)의 이 규칙대로 계산하고, 결과 위에 어느 규칙이 쓰였는지 문장으로 알려 줍니다. "13일의 금요일에만 실행"처럼 두 조건을 정말 함께 걸고 싶다면 크론만으로는 표현할 수 없으므로, 매월 13일에 실행하고 스크립트 안에서 요일을 한 번 더 확인하는 방법을 씁니다.
계산 기준
- 시각은 한국 표준시(UTC+9)로 보여 줍니다. 서머타임이 없으므로 건너뛰거나 두 번 실행되는 시각이 없습니다. 서버 시간대가 UTC라면 여기 나온 시각에서 9시간을 빼세요.
- 기준 시각과 똑같은 순간은 목록에 넣지 않고 그 뒤부터 셉니다. 초 칸이 없으면 항상 0초에 실행됩니다.
- 요일 0과 7은 둘 다 일요일로 봅니다. 월과 요일은 JAN·MON 같은 영어 약어로 써도 됩니다.
- 앞으로 100년까지 찾아보고, 그 안에 실행이 없으면 실행되지 않는 표현식으로 알려 줍니다. 2월 30일처럼 존재할 수 없는 조합을 찾느라 멈추는 일이 없습니다.
- Quartz 전용 문법(L, W, #)과 연도까지 일곱 칸을 쓰는 형식은 지원하지 않습니다. 잘못된 표현식은 몇 번째 칸이 왜 잘못됐는지 알려 줍니다.
- 입력한 표현식은 이 브라우저 안에서만 계산하며 서버로 전송되지 않습니다.