Nouplo

cron 표현식 해석기

0 */6 * * 1-5가 실제로 언제 실행되는지 날짜 목록으로, 각 칸이 허용하는 값과 함께 보여 줍니다.

출력
위에 붙여넣거나 입력하면 여기에 결과가 표시됩니다.

파일은 내 기기 밖으로 나가지 않습니다

이 도구는 브라우저 안에서만 작동합니다. 붙여넣은 내용은 기기에서 처리되고 서버로 전송되지 않으므로 토큰, 키, 공개 전 문서도 안심하고 사용할 수 있습니다.

사용 예시

예: UTC 서버에서 한국 시간 평일 오전 9시 — 0 9 * * 1-5와 0 0 * * 1-5

사내 알림 배치를 평일 오전 9시(한국 시간)에 돌리려 합니다. 이 페이지는 브라우저 시간대로 계산하므로 한국에서 열면 목록 맨 위에 Asia/Seoul이 표시됩니다. 목록은 항상 지금부터 계산되며, 아래 날짜는 2026년 10월 30일 금요일 정오를 기준으로 실행 횟수 12로 구한 것입니다.

  1. 0 9 * * 1-5를 넣으면 2026년 11월 2일 월요일 오전 9:00부터 6일 금요일까지, 그다음 9일 월요일로 이어집니다. 토요일과 일요일은 목록에 없습니다.
  2. 스프링 @Scheduled에 쓰는 여섯 자리 0 0 9 * * MON-FRI도 첫 칸을 초로 읽어 같은 목록이 나옵니다.
  3. 서버의 cron이 UTC로 돈다면 한국 시간에서 9시간을 빼야 합니다. 오전 9시는 UTC 0시이므로 서버에는 0 0 * * 1-5. 여기에 넣으면 ‘오전 12:00’으로 보이는데, 이것이 서버 시계이고 한국 시간으로는 오전 9시입니다.
  4. UTC로 바꾸면 전날이 되는 시각은 요일도 하루 당깁니다. 한국 시간 월~금 오전 8시는 0 23 * * 0-4(일~목 23시)이고, 목록 첫 줄은 11월 1일 일요일 오후 11:00입니다.
표현식 2026년 10월 30일(금) 정오 이후 실행 뜻
0 9 * * 1-5 11월 2일(월)~6일(금), 9일(월)… 오전 9:00평일 오전 9시
0 0 9 * * MON-FRI 위와 같음초가 맨 앞인 스프링·Quartz 형식
0 10 25 * * 11월 25일(수), 12월 25일(금), 2027년 1월 25일(월) 오전 10:00매월 25일, 주말이어도 실행(2027년 4월 25일은 일요일)
0 9 1-7 * MON 11월 1일(일)~7일(토) 매일, 9·16·23·30일(월), 12월 1일(화)1~7일 ‘또는’ 월요일: 첫째 월요일이 아님
0 9 28-31 * * 10월 31일, 11월 28·29·30일, 12월 28~31일말일 대신 쓰는 범위(아래 참고)
0 9 L * * "L"의 값이 올바르지 않습니다말일 L은 Quartz 확장이라 읽지 않음
0 0 31 2 * // 다음 0회 실행2월 31일은 오지 않음

날짜 목록으로 보면 ‘평일만’, ‘25일만’ 같은 의도가 맞는지 바로 드러납니다. 매월 말일이 필요하면 0 9 28-31 * * 로 두고 명령 앞에 [ "$(date -d tomorrow +\%d)" = 01 ] && 를 붙이세요. 내일이 1일인 날, 곧 말일에만 실행됩니다(리눅스 GNU date 기준, crontab에서는 %를 \%로 적습니다).

사용 방법

  1. 분, 시, 일, 월, 요일 다섯 자리로 된 cron 표현식을 붙여 넣으세요. 예를 들어 30 2 * * 0은 매주 일요일 02시 30분에 실행됩니다.
  2. 앞으로의 실행 시각을 몇 개까지 볼지 1에서 20 사이로 정하세요.
  3. 입력하는 대로 결과가 나옵니다. "2026년 10월 25일 일요일 오전 2:30" 같은 날짜로 실행 시각 목록이 나오고, 그 아래에 각 칸이 허용하는 값이 나옵니다.
  4. 날짜가 의도한 것과 맞는지 비교하세요. 요일이나 간격 값을 하나 잘못 쓴 실수는 목록에서 바로 드러납니다.

자주 묻는 질문

다음 실행 시각은 어느 시간대 기준인가요?
브라우저의 로컬 시간대, 즉 운영체제 설정에 표시된 시간대로 계산합니다. 서버의 cron은 보통 UTC나 서버에 설정된 시간대로 돌기 때문에, 운영 일정과 비교할 때는 그만큼 시간을 옮겨서 보세요.
어떤 문법을 지원하나요?
표준 다섯 자리 형식과 모든 값을 뜻하는 *, 쉼표 목록(1,15), 범위(1-5), 간격(*/10 또는 1-30/5), 월(JAN-DEC)과 요일(SUN-SAT)의 세 글자 이름을 지원합니다. 0과 7은 모두 일요일입니다. @hourly, @daily, @weekly, @monthly, @yearly 같은 특수 문자열은 대응하는 다섯 자리 형식으로 펼쳐집니다.
일(day of month)과 요일(day of week)은 어떻게 조합되나요?
Vixie cron과 동일합니다. 두 칸이 모두 제한되어 있으면(둘 다 *가 아니면) 둘 중 하나만 맞아도 실행됩니다. 그래서 0 0 1 * MON은 매월 1일과 매주 월요일에 모두 실행됩니다. 많은 사람이 놓치는 부분이니 다음 실행 목록을 꼭 확인하세요.
초나 연도 칸도 지원하나요?
여섯 자리 표현식은 Quartz와 스프링처럼 첫 칸을 초로 읽습니다. 초는 버리고 나머지 다섯 칸으로 실행 시각을 계산하므로 0 0 12 * * ?는 매일 12:00에 실행됩니다(?는 *로 읽습니다). 예외는 분이 맨 앞, 연도가 맨 뒤에 오는 AWS EventBridge 형식으로, 일이나 요일 칸에 ?가 있는 것으로 알아봅니다. 0 12 * * ? *도 매일 12:00에 실행되며 연도는 다른 칸 아래에 표시됩니다. Quartz의 여섯 칸 뒤에 오는 일곱 번째 칸은 연도로 읽습니다.
매월 말일에 실행하려면 어떻게 쓰나요?
표준 cron에는 말일 기호가 없고, Quartz의 L을 넣으면 "L"의 값이 올바르지 않습니다라고 나옵니다. 0 9 28-31 * * 로 28~31일에 돌게 한 뒤, 명령 앞에 [ "$(date -d tomorrow +\%d)" = 01 ] && 를 붙여 내일이 1일인 날에만 실제로 실행되게 하는 방법이 흔히 쓰입니다(리눅스 GNU date 기준).
한국 시간 기준 일정을 UTC 서버 crontab에 쓰려면?
한국은 UTC+9이고 서머타임이 없으니 시에서 9를 빼면 됩니다. 오전 9시는 0, 오후 6시는 9입니다. 오전 0~8시처럼 빼면 음수가 되는 시각은 24를 더하고 요일과 날짜를 하루 앞으로 당기세요. 한국 시간 월~금 오전 8시는 UTC 일~목 23시, 곧 0 23 * * 0-4입니다.
표현식이 서버로 전송되나요?
아니요. 해석과 날짜 계산 모두 브라우저 안에서 이루어집니다. 업로드할 것도, 기록될 것도 없습니다.

관련 도구