Cron 표현식 생성기

0-59

0-23

1-31

1-12

0-7 (0,7=일)

다음

Cron 문법은 간결한 만큼 실수하기 쉽습니다. 0 */6 * * *는 6시간마다 실행되지만, */6 0 * * *는 자정 직후 첫 1시간 동안에만 10번 실행됩니다. 이 생성기는 스케줄을 시각적으로 선택(15분마다, 평일 오전 9시, 매월 1일)하게 해주고, 정확한 표현식과 함께 그 의미를 알기 쉬운 말로 설명해 줍니다.

cron 표현식 만드는 방법

  1. 1

    프리셋을 선택하거나 직접 입력

    매분, 매시간, 매일 자정, 매주 일요일, 매월 1일은 클릭 한 번이면 됩니다. 그 외의 스케줄은 다섯 개 필드에 값을 직접 입력하세요.

  2. 2

    스케줄 세분화

    특정 분, 시, 일, 월, 요일. 범위(9-17), 목록(1,15), 스텝(*/6)을 모두 지원합니다.

  3. 3

    표현식 읽기

    생성기는 항상 표준 5필드 cron 형식을 출력하며, 일정을 알기 쉬운 말로 설명해 줍니다.

  4. 4

    방언 확인

    방언마다 규칙이 다릅니다(Quartz, AWS EventBridge, Kubernetes). 표현식이 스케줄러가 기대하는 형식과 맞는지 확인하세요.

다섯 개의 필드

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── 요일 (0-6, 일요일=0, 또는 SUN-SAT)
│  │  │  └───── 월 (1-12, 또는 JAN-DEC)
│  │  └──────── 일 (1-31)
│  └─────────── 시 (0-23)
└────────────── 분 (0-59)

각 필드는 다음을 허용합니다:

  • 특정 숫자: 5
  • 목록: 1,15,30
  • 범위: 9-17
  • 스텝: */10 (10마다) 또는 0-30/5 (0부터 30까지 5마다)
  • 와일드카드: * (모든 값)

자주 쓰는 표현식

스케줄 Cron 표현식
매분 * * * * *
15분마다 */15 * * * *
매시 정각 0 * * * *
6시간마다 0 */6 * * *
매일 오전 2:30 30 2 * * *
평일 오전 9시 0 9 * * 1-5
매주 월요일 오전 8시 0 8 * * 1
매월 1일 오전 3시 0 3 1 * *
평일 9-17시 사이 15분마다 */15 9-17 * * 1-5
1일과 15일 정오 0 12 1,15 * *
매주 일요일 자정 0 0 * * 0

일(day-of-month) + 요일(day-of-week) 함정

표준 cron에서는 일과 요일을 둘 다 지정(*가 아님)하면, 둘 중 하나라도 맞을 때 작업이 실행됩니다(AND가 아니라 OR). 0 0 1 * MON은 매월 1일 그리고 매주 월요일에 실행되며, 1일이 월요일인 경우에만 실행되는 것이 아닙니다.

Vixie cron과 대부분의 리눅스 배포판은 이 OR 규칙을 따릅니다. Quartz(Java)와 일부는 AND를 씁니다. 확실하지 않으면 스케줄러에서 dry run이나 테스트 작업으로 표현식을 검증하세요.

방언 차이

  • 표준 cron (Linux): 5필드, 요일 0-6 (일요일 = 0 또는 7).
  • Quartz (Spring, Java 앱): 6-7필드, 첫 번째 필드가 초이고 연도는 선택. 요일 1-7 (일요일 = 1).
  • AWS EventBridge cron: 6필드, 연도 포함. 요일과 일은 상호 배타적이어야 함(하나는 ?여야 함).
  • GitHub Actions: 표준 5필드, 최소 간격 5분, UTC만.
  • Kubernetes CronJob: 표준 5필드, 기본 UTC.

자신의 스케줄러가 어떤 방언을 쓰는지 항상 확인하세요.

타임존

전통적인 cron은 서버의 로컬 타임존으로 실행됩니다. DST 전환 무렵에 큰 문제가 됩니다: 오전 2:30 작업은 전환일에 두 번 실행되거나 아예 실행되지 않을 수 있습니다. 최신 스케줄러(systemd 타이머, Kubernetes, EventBridge)는 타임존을 명시적으로 지정할 수 있으니, 특별한 이유가 없다면 UTC를 사용하세요.

자주 묻는 질문

필드의 5단위마다, 0부터 시작입니다. 분 필드에서 */5는 0, 5, 10, 15, …, 55분에 실행됩니다. 0,5,10,15,20,25,30,35,40,45,50,55의 축약형입니다.

Cron은 60분이나 24시간으로 나누어 떨어지지 않는 임의 간격을 표현할 수 없습니다. 90분의 경우 특정 실행 시각을 나열하거나(0 0,9 * * *에 추가 줄을 조합), 임의 간격을 지원하는 스케줄러(systemd 타이머, anacron)로 전환하세요.

자정입니다. 필드 순서는 분-시이므로 0 0은 “0시 0분”을 뜻합니다. 정오는 0 12 * * *입니다.

표준 cron은 건너뜁니다, 놓친 실행은 재시도되지 않습니다. Anacron은 다음 부팅 시 놓친 일간/주간/월간 작업을 잡아냅니다. Kubernetes CronJob에는 놓친 윈도우를 명시적으로 처리하는 startingDeadlineSecondsconcurrencyPolicy가 있습니다.

관련 도구