본문으로 바로가기

Cron 표현식 해설기베타

Cron 표현식을 사람이 읽는 문장으로 바꾸고, 다음 실행 시각을 원하는 타임존으로 미리 보여주는 도구입니다. 필드 문법과 매크로 치트시트도 함께 제공합니다.

5개 필드

설명

오전 09:00, 월요일부터 금요일까지

다음 실행 시각

브라우저 타임존: UTC

유효한 표현식을 입력하면 다음 실행 시각을 보여줍니다.

필드 요약·치트시트

필드 요약·치트시트
필드의미값
초초 (6필드일 때만)0 ~ 59
분분0 ~ 59
시시0 ~ 23
일일(날짜)1 ~ 31
월월1 ~ 12 또는 JAN ~ DEC
요일요일0 ~ 7 (0과 7 모두 일요일) 또는 SUN ~ SAT

L·W·#·?처럼 Quartz(자바 스케줄러) 전용 기호는 지원하지 않습니다. 표준 5·6필드 문법만 다룹니다.

자주 쓰는 매크로

예시

Cron 표현식은 짧지만 한눈에 읽기 어렵습니다. */15 9-17 * * 1-5가 정확히 언제 실행되는지 확인하려고 문서를 뒤지는 대신, 이 도구에 붙여넣으면 문장으로 풀어 보여주고 실제 다음 실행 시각까지 계산해 줍니다.

필드 문법

표준 cron은 왼쪽부터 분·시·일(날짜)·월·요일 순서로 5개 필드를 씁니다. 이 도구는 맨 앞에 초 필드를 더한 6필드 형식도 인식합니다(초·분·시·일·월·요일).

  • 분: 0 ~ 59
  • 시: 0 ~ 23
  • 일(날짜): 1 ~ 31
  • 월: 1 ~ 12 또는 JAN ~ DEC
  • 요일: 0 ~ 7 (0과 7 모두 일요일) 또는 SUN ~ SAT
  • 초 (6필드일 때만): 0 ~ 59

각 필드에는 다음 문법을 쓸 수 있습니다.

  • * — 모든 값 (“매 분”, “매 시”)
  • 5 — 정확히 그 값
  • 1-5 — 범위 (월요일부터 금요일)
  • */15 — 간격 (0부터 시작해 15씩 증가: 0, 15, 30, 45)
  • 1,15,30 — 쉼표로 나열한 목록

자주 쓰는 매크로도 지원합니다: @yearly(0 0 1 1 *), @monthly(0 0 1 * *), @weekly(0 0 * * 0), @daily(0 0 * * *), @hourly(0 * * * *). @reboot은 정해진 시각이 없어 지원하지 않습니다.

Unix cron · Quartz · 클라우드 스케줄러의 문법 차이

“cron 표현식”이라고 불러도 시스템마다 문법이 조금씩 다릅니다.

  • Unix cron (crontab): 표준 5필드. 요일은 0 ~ 7(0과 7 모두 일요일)이고, 필드는 값·범위·목록·간격(*/n)만 지원합니다.
  • Quartz (Java 스케줄러): 6 ~ 7필드로 맨 앞에 초, 맨 뒤에 연도(선택)가 붙습니다. 요일 값이 1 ~ 7(1=일요일)로 Unix cron과 다르고, L(그 달·주의 마지막), W(가장 가까운 평일), #(예: 6#3 = 셋째 주 금요일), ?(day-of-month·day-of-week 중 하나를 비워둘 때) 같은 Unix cron에 없는 기호를 씁니다. 또한 day-of-month와 day-of-week에 동시에 *를 쓸 수 없습니다.
  • 클라우드 스케줄러(AWS EventBridge, Google Cloud Scheduler 등): 대체로 Unix cron과 비슷하지만 세부 규칙이 다른 경우가 있습니다. 예를 들어 AWS EventBridge는 Quartz처럼 6필드(초 없이 분부터 시작해 연도가 붙는 방식)를 쓰고 day-of-month와 day-of-week 중 하나에는 반드시 ?를 넣어야 합니다.

이 도구는 표준 5·6필드(초가 맨 앞) 문법만 검증하고 설명합니다. Quartz나 특정 클라우드 서비스 전용 기호(L·W·#·?, 연도 필드 등)는 지원하지 않으므로, 그 서비스에 실제로 등록하기 전에는 해당 서비스 문서로 다시 한번 확인하세요.

서머타임(DST)에서 주의할 점

타임존을 정해 다음 실행 시각을 계산할 때, 서머타임이 있는 지역이라면 다음 두 가지를 알아 두면 좋습니다.

  1. 시작일의 빈 시각: 서머타임이 시작하는 날은 시계가 한 시간 앞으로 건너뛰어 특정 시각(흔히 오전 2시대)이 아예 존재하지 않습니다. 이 도구가 계산에 쓰는 날짜 라이브러리는 이런 시각을 서머타임 적용 전 오프셋으로 해석해 보여줍니다.
  2. 종료일의 중복 시각: 서머타임이 끝나는 날은 시계를 한 시간 되돌리면서 같은 시각이 두 번 나타납니다. 이 도구는 그 시각을 한 번만 보여줍니다.

새벽 1시 ~ 3시 사이에 실행되도록 예약한 작업이 있다면, 서머타임이 바뀌는 날짜 근처의 실행 시각을 이 도구로 한 번 확인해 보는 것을 권합니다.

참고 자료

자주 묻는 질문

5필드와 6필드(초 포함) 표현식은 뭐가 다른가요?

표준 cron은 분·시·일·월·요일 5개 필드만 씁니다. 이 도구는 맨 앞에 초 필드를 추가한 6필드도 지원합니다(예: 30 0 9 * * 1-5 = 매 평일 9시 0분 30초). 6필드 지원 여부는 스케줄러마다 다르므로, 실제로 등록할 시스템의 문서를 확인하세요.

@reboot이 왜 지원되지 않나요?

@reboot은 '시스템이 부팅될 때'라는 뜻이라 정해진 시각이 없습니다. 이 도구는 다음 실행 시각을 계산하는 도구라서, 시각을 계산할 수 없는 @reboot은 지원 목록에서 뺐습니다.

Quartz의 L·W·#·? 같은 기호도 쓸 수 있나요?

쓸 수 없습니다. 이 도구는 Unix cron 계열의 표준 5·6필드 문법만 다룹니다. L(그 달의 마지막 날)·W(가장 가까운 평일)·#(N번째 요일) 같은 Quartz 전용 확장 문법은 아래 '문법 차이' 항목을 참고하세요.

서머타임 기간에는 왜 실행 시각이 예상과 다를 수 있나요?

서머타임이 시작하는 날은 시계가 한 시간 앞으로 건너뛰어 존재하지 않는 시각(예: 오전 2시)이 생기고, 끝나는 날은 한 시간을 되돌려 같은 시각이 두 번 있습니다. 이 도구가 쓰는 날짜 라이브러리는 존재하지 않는 시각을 서머타임 적용 전 오프셋 기준으로 계산하고, 두 번 있는 시각은 한 번만 보여줍니다. 새벽 1 ~ 3시 사이에 실행되는 일정은 서머타임을 쓰는 타임존에서 특히 확인이 필요합니다.

'다음 실행 시각'은 어느 타임존 기준인가요?

타임존을 직접 골라 계산합니다. 기본값은 이 브라우저가 보고하는 타임존이고, 화면에 어떤 타임존인지 항상 표시됩니다. 서버에 등록할 cron 작업이 다른 타임존에서 돈다면 그 타임존으로 바꿔서 확인하세요.

사용한 오픈소스: cronstrue (MIT), cron-parser (MIT), Luxon (MIT)