🧰도구상자

⏱️ Cron 표현식 해석기

Cron 표현식을 사람이 읽을 수 있는 한국어 설명으로 풀어줍니다.

월~금요일에 9시 정각에 실행

필드 순서: 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6, 0=일). `*` 전체, `*/n` n마다, `a-b` 범위, `a,b` 목록.

Cron 표현식 해석기는 `0 9 * * 1-5` 같은 크론 스케줄 문자열을 입력하면 '평일 오전 9시에 실행'처럼 사람이 읽을 수 있는 한국어 설명으로 풀어 주는 개발자 도구입니다. 크론 표현식은 다섯 개의 필드가 공백으로 구분된 짧은 문자열이지만, `*`·`/`·`,`·`-` 같은 특수문자가 섞이면 정확히 언제 실행되는지 눈으로 읽기 어렵습니다. 이 도구는 표현식을 필드별로 해석해 실행 시점을 문장으로 보여 줍니다.

Cron은 유닉스 계열 시스템에서 특정 시각마다 명령을 자동 실행하는 스케줄러이자, 그 스케줄을 적는 표기법의 이름입니다. 오늘날에는 리눅스 crontab뿐 아니라 Kubernetes CronJob, GitHub Actions의 schedule 트리거, AWS EventBridge, 각종 백엔드 배치 잡 등 거의 모든 예약 실행 환경이 이 표기법을 그대로 또는 살짝 변형해 사용합니다. 그래서 크론 표현식을 읽고 쓰는 능력은 서버·인프라·자동화 작업의 기본기입니다.

아래에서는 크론의 다섯 필드 구조와 각 필드의 허용 범위, `*`·`,`·`-`·`/` 특수문자의 의미, 그리고 현업에서 자주 쓰는 표현식 예시를 표로 정리했습니다. 값을 하나 바꿀 때마다 실행 시점이 어떻게 달라지는지 도구 상단 입력창에서 직접 확인하면서 읽어 보세요.

사용 방법

  1. 상단 입력창에 크론 표현식을 '분 시 일 월 요일' 순서로 다섯 필드, 공백으로 구분해 입력합니다. 예: `0 9 * * 1-5`.
  2. 입력 즉시 아래 결과 카드에 '평일 오전 9시에 실행'처럼 한국어 해석이 나타납니다. 필드 개수가 5개가 아니면 오류 메시지로 알려 줍니다.
  3. 무엇을 넣을지 막막하면 입력창 아래 프리셋 버튼('5분마다', '평일 오전 9시' 등)을 눌러 표현식을 채운 뒤, 필드 값을 하나씩 바꿔 가며 결과가 어떻게 변하는지 실험합니다.
  4. 완성한 표현식을 crontab, CronJob의 schedule, GitHub Actions의 cron 필드 등 실제 스케줄러 설정에 그대로 붙여 넣어 사용합니다.

크론 표현식의 5개 필드 구조

표준 크론 표현식은 공백으로 구분된 다섯 개의 필드로 이뤄집니다. 왼쪽부터 순서대로 분, 시, 일(날짜), 월, 요일이며, 이 순서는 절대 바뀌지 않습니다. 각 필드는 정해진 숫자 범위를 가지며, 모든 필드가 조건을 동시에 만족하는 시각에 작업이 실행됩니다.

왼쪽부터 순서대로: 분 시 일 월 요일
순서필드허용 범위설명
1분 (minute)0 – 59매시 몇 분에 실행할지
2시 (hour)0 – 23하루 중 몇 시에 (24시간제)
3일 (day of month)1 – 31매월 며칠에
4월 (month)1 – 12몇 월에 (1=1월)
5요일 (day of week)0 – 7무슨 요일에 (0·7=일요일, 1=월요일)

요일은 0과 7이 모두 일요일

요일 필드는 0부터 6까지 쓰는 것이 기본이지만(0=일요일, 6=토요일), 많은 크론 구현이 7도 일요일로 함께 허용합니다. 즉 일요일은 0 또는 7 어느 쪽으로 적어도 됩니다. 참고로 '일' 필드와 '요일' 필드를 둘 다 지정하면 대부분의 크론은 둘 중 하나라도 맞으면 실행하는 OR 조건으로 동작하니 주의하세요.

특수문자 (* / , -) 의 의미

크론이 강력한 이유는 각 필드에 네 가지 특수문자를 써서 '언제'를 유연하게 표현할 수 있기 때문입니다. 아래 네 기호만 이해하면 대부분의 스케줄을 읽고 쓸 수 있습니다.

필드 안에서 쓰는 특수문자
기호이름의미예시
*전체(에스터리스크)해당 필드의 모든 값시 필드의 `*` = 매시간
/간격(슬래시)n 단위마다 반복분 필드의 `*/15` = 15분마다
,목록(콤마)나열한 값들에 각각시 필드의 `9,12,18` = 9시·12시·18시
-범위(하이픈)시작~끝 연속 구간요일 필드의 `1-5` = 월요일부터 금요일

조합해서 쓰기

특수문자는 한 필드 안에서 함께 쓸 수 있습니다. 예를 들어 분 필드의 `0-30/10`은 '0분부터 30분 사이를 10분 간격으로', 즉 0·10·20·30분에 실행하라는 뜻입니다. `1-5`(월~금)와 `0`(일)을 섞어 `0,6`처럼 쓰면 주말만 실행하는 스케줄이 됩니다.

자주 쓰는 크론 표현식 예시

실무에서 반복적으로 등장하는 대표 스케줄을 표현식과 함께 정리했습니다. 이 값들을 그대로 복사해 쓰거나, 상단 입력창에 넣어 해석 결과를 확인해 보세요.

표현식과 실행 시점
표현식실행 시점
* * * * *매 분마다
*/5 * * * *5분마다
0 * * * *매시 정각(0분)마다
0 0 * * *매일 자정(00:00)에
30 9 * * *매일 오전 9시 30분에
0 9 * * 1매주 월요일 오전 9시에
0 9 * * 1-5평일(월~금) 오전 9시에
0 0 * * 0매주 일요일 자정에
0 0 1 * *매월 1일 자정에
0 0 1 1 *매년 1월 1일 자정에
0 9,18 * * *매일 오전 9시와 오후 6시에

크론을 쓸 때 주의할 점

크론 표현식 자체는 간단하지만, 실제 스케줄러에 넣을 때 자주 실수하는 지점이 있습니다. 아래 사항을 확인하면 '왜 안 도는지' 헤매는 시간을 줄일 수 있습니다.

  • 시간대(타임존): 크론은 대개 서버의 로컬 타임존을 따릅니다. 서버가 UTC라면 `0 0 * * *`는 한국 시간 오전 9시에 실행됩니다. 배포 환경의 타임존을 반드시 확인하세요.
  • 필드 5개 vs 6개: 표준 유닉스 크론은 5개 필드지만, 일부 스케줄러(예: 스프링 @Scheduled, Quartz)는 맨 앞에 '초' 필드를 더한 6~7개 필드를 씁니다. 이 도구는 표준 5필드 기준입니다.
  • 일·요일 동시 지정: 앞서 설명했듯 일 필드와 요일 필드를 둘 다 특정 값으로 지정하면 대부분 OR로 동작해, 의도보다 더 자주 실행될 수 있습니다.
  • 30·31일과 2월: `0 0 31 * *`처럼 31일을 지정하면 31일이 없는 달에는 그달 실행이 건너뛰어집니다. '매월 말일'은 크론만으로 정확히 표현하기 어렵습니다.

자주 묻는 질문

크론 표현식의 필드 순서가 헷갈립니다.
왼쪽부터 '분 → 시 → 일 → 월 → 요일' 순서입니다. 즉 작은 시간 단위(분)에서 큰 단위(월)로 가다가 마지막에 요일이 붙는 구조로 기억하면 됩니다. 예를 들어 `30 14 * * *`는 분=30, 시=14이므로 '매일 오후 2시 30분'을 뜻합니다.
매일 자정에 실행하려면 어떻게 쓰나요?
`0 0 * * *`입니다. 분=0, 시=0(자정), 나머지 일·월·요일은 `*`(모든 값)이므로 '매일 00시 00분'에 실행됩니다. 만약 매일 오전 9시라면 `0 9 * * *`처럼 시 필드만 9로 바꾸면 됩니다.
평일에만 실행하려면 요일 필드를 어떻게 쓰나요?
요일 필드에 `1-5`를 넣습니다. 1이 월요일, 5가 금요일이므로 `1-5`는 월요일부터 금요일까지를 뜻합니다. 예를 들어 평일 오전 9시는 `0 9 * * 1-5`입니다. 주말만 실행하려면 일요일과 토요일을 뜻하는 `0,6`을 씁니다.
`*`와 `*/5`는 무엇이 다른가요?
`*`는 해당 필드의 모든 값을 뜻합니다. 분 필드가 `*`이면 매 분 실행됩니다. `*/5`는 '5 단위마다'라는 뜻으로, 분 필드에 쓰면 0·5·10·15…분처럼 5분 간격으로 실행됩니다. 슬래시 뒤 숫자가 반복 간격입니다.
`0 0 31 2 *`처럼 존재하지 않는 날짜를 넣으면 어떻게 되나요?
2월은 31일이 없으므로 그 조건은 영원히 성립하지 않아 실행되지 않습니다. 크론은 지정한 모든 필드가 맞아떨어질 때만 실행하므로, 존재하지 않는 날짜·요일 조합은 조용히 건너뜁니다. '매월 말일'처럼 달마다 날짜가 달라지는 규칙은 크론만으로는 정확히 표현하기 어렵습니다.
이 도구는 다음 실행 시각도 알려 주나요?
이 도구는 표현식을 한국어 설명으로 해석하는 데 초점을 둡니다. 즉 '언제 실행되는지'를 문장으로 풀어 주지만, 구체적인 다음 실행 날짜·시각 목록을 계산해 주지는 않습니다. 정확한 다음 실행 시각은 실제 스케줄러의 타임존 설정에 따라 달라지므로, 서버 환경에서 확인하는 것이 안전합니다.

관련 도구