크론 표현식 파서이란?
크론은 유닉스/리눅스 크론 작업, CI/CD 파이프라인, 쿠버네티스 CronJob, 그리고 수많은 작업 스케줄러에서 사용되는 표준 예약 문법입니다. 크론 표현식은 반복 일정 전체를 5개의 간결한 필드에 압축해 담지만, 그만큼 한눈에 읽기 어렵기로 악명 높습니다 — "0 */4 * * 1-5"가 평일마다 4시간 간격인지, 아니면 전혀 다른 의미인지 알기 어렵습니다.
이 파서는 크론 표현식을 필드별로 분해해 쉬운 말로 번역해주므로, 배포하기 전에 일정이 올바른지 확인하거나 다른 사람이 작성한 일정을 크론 문법표를 대조하지 않고도 빠르게 이해할 수 있습니다.
이 계산기를 사용해야 할 때
- 스케줄된 작업이나 CI/CD 파이프라인을 배포하기 전에 Cron 스케줄을 확인할 때
- 스케줄된 작업이 예상하지 못한 시간에 실행되었거나(실행되지 않았거나) 실행된 이유를 디버깅할 때
- 팀원이 작성한 Kubernetes CronJob 또는 GitHub Actions 스케줄을 검토할 때
- 시스템 관리자 또는 DevOps 인증 과정을 위해 Cron 구문을 배울 때
- 서버 마이그레이션 중에 기존 crontab 항목을 감사할 때
- 여러 시간 제약 조건을 결합하는 복잡한 스케줄링 패턴을 설계할 때
단계:
- 5필드 크론 표현식을 입력창에 붙여넣거나 직접 입력하세요.
- 각 필드가 개별적으로 분해되어 의미와 함께 표시됩니다.
- 전체 일정을 쉬운 말로 번역한 내용을 읽어보세요.
- "매시간"이나 "평일 오전 9시" 같은 자주 쓰는 일정은 프리셋 버튼으로 바로 사용해 보세요.
공식
┌───────────── 분 (0-59)
│ ┌───────────── 시 (0-23)
│ │ ┌───────────── 일 (1-31)
│ │ │ ┌───────────── 월 (1-12)
│ │ │ │ ┌───────────── 요일 (0-6, 일요일=0)
│ │ │ │ │
* * * * *
사용 사례
- 예약 작업이나 CI/CD 파이프라인을 배포하기 전에 크론 일정 검증
- 동료가 작성한 Kubernetes CronJob이나 서버리스 예약 함수를 이해할 때
- 예약된 작업이 예상치 못한 시간에 실행되었거나 실행되지 않은 이유 디버깅
- 시스템 관리 또는 데브옵스 강의를 위한 크론 문법 학습
- 서버 마이그레이션 중 기존 crontab 항목 감사
주요 이점
- 난해한 크론 문법을 즉시 쉬운 말로 번역
- 5개 필드를 개별적으로 분해해 명확하게 표시
- 가장 흔한 예약 패턴을 원클릭 프리셋으로 제공
- 가입 불필요, 브라우저에서 전적으로 실행
전문가 팁
- 확신이 서지 않으면 아주 가까운 미래 시각으로 먼저 테스트해 예상대로 실행되는지 확인하세요
- 가능하면 모든 값을 쉼표로 나열하는 대신 범위(1-5)를 사용해 가독성을 높이세요
- 서버나 스케줄러의 시간대 설정을 다시 확인하세요 — "엉뚱한 시간" 크론 버그의 가장 흔한 원인입니다
- 단순한 일간/주간 일정보다 복잡한 경우, 배포 전에 쉬운 말 설명을 적어 의도와 비교해 보세요
피해야 할 일반적인 실수
- 일(day-of-month)과 요일(day-of-week)이 AND가 아닌 OR로 결합된다는 사실을 잊는 것
- 0부터 시작하는 요일(0=일요일)을 다른 시스템의 1부터 시작하는 관례와 혼동
- 일 필드의 */7이 "7일마다"를 의미한다고 착각 — 실제로는 매월 1, 8, 15, 22, 29일을 의미하며 매달 다시 시작됨
- 대부분의 크론 구현체가 UTC나 사용자 시간대가 아니라 서버의 로컬 시간대로 실행된다는 사실을 잊음
주요 용어 설명
- 크론(Cron): 유닉스 계열 운영체제에서 사용되는 시간 기반 작업 스케줄러
- 크론탭(Crontab): 크론 작업 목록을 정의하는 데 사용되는 파일 또는 명령어
- 단계 값(Step value): 필드의 최솟값부터 시작해 "N단위마다"를 의미하는 "/N" 문법
- CronJob: 크론 예약 작업을 실행하기 위한 쿠버네티스의 네이티브 리소스
관련 개념
- 시간 차이 계산기: 두 날짜와 시간 사이의 기간을 계산
- 남은 일수 계산기: 특정 날짜까지의 일수를 계산
- Unix 타임스탬프 변환기: Unix 타임스탬프와 날짜를 변환
- 시간대 겹침 계산기: 시간대 간 근무 시간 겹침을 찾기
- JSON 포맷터: JSON 데이터를 포맷하고 검증
예시
표현식 "0 9 * * 1-5"는 분=0, 시=9, 매일(일), 매월, 월요일부터 금요일로 분해됩니다 — 즉 "월요일부터 금요일까지 매일 09:00"를 의미합니다.
결과 해석 방법
파서는 5필드 Cron 표현식을 개별 구성 요소로 분해하고 각각을 쉬운 한국어로 번역합니다. 5개 필드는: 분(0–59), 시(0–23), 일(1–31), 월(1–12), 요일(0–6, 0은 일요일)입니다. 모든 5개 필드가 현재 시간과 일치할 때 작업이 실행됩니다 — 이것은 필드 간의 AND 로직입니다.
일과 요일의 상호 작용에 특별히 주의하십시오. 이는 OR 로직(AND가 아님)을 사용합니다. 일 15와 요일 5로 스케줄된 작업은 매월 15일과 매 금요일에 실행됩니다 — 15일에 해당하는 금요일만 실행되는 것이 아닙니다.

