개발자

크론 표현식 파서

5개 필드로 된 크론 표현식을 붙여넣으면 그 의미를 즉시 쉬운 말로 확인할 수 있습니다 — 작업이 언제 실행되는지 알아내려고 별표와 슬래시를 뚫어지게 볼 필요가 없습니다.

이 계산기가 도움이 되었나요?

크론 표현식 파서이란?

크론은 유닉스/리눅스 크론 작업, CI/CD 파이프라인, 쿠버네티스 CronJob, 그리고 수많은 작업 스케줄러에서 사용되는 표준 예약 문법입니다. 크론 표현식은 반복 일정 전체를 5개의 간결한 필드에 압축해 담지만, 그만큼 한눈에 읽기 어렵기로 악명 높습니다 — "0 */4 * * 1-5"가 평일마다 4시간 간격인지, 아니면 전혀 다른 의미인지 알기 어렵습니다. 이 파서는 크론 표현식을 필드별로 분해해 쉬운 말로 번역해주므로, 배포하기 전에 일정이 올바른지 확인하거나 다른 사람이 작성한 일정을 크론 문법표를 대조하지 않고도 빠르게 이해할 수 있습니다.

이 계산기를 사용해야 할 때

  • 스케줄된 작업이나 CI/CD 파이프라인을 배포하기 전에 Cron 스케줄을 확인할 때
  • 스케줄된 작업이 예상하지 못한 시간에 실행되었거나(실행되지 않았거나) 실행된 이유를 디버깅할 때
  • 팀원이 작성한 Kubernetes CronJob 또는 GitHub Actions 스케줄을 검토할 때
  • 시스템 관리자 또는 DevOps 인증 과정을 위해 Cron 구문을 배울 때
  • 서버 마이그레이션 중에 기존 crontab 항목을 감사할 때
  • 여러 시간 제약 조건을 결합하는 복잡한 스케줄링 패턴을 설계할 때

단계:

  1. 5필드 크론 표현식을 입력창에 붙여넣거나 직접 입력하세요.
  2. 각 필드가 개별적으로 분해되어 의미와 함께 표시됩니다.
  3. 전체 일정을 쉬운 말로 번역한 내용을 읽어보세요.
  4. "매시간"이나 "평일 오전 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: 크론 예약 작업을 실행하기 위한 쿠버네티스의 네이티브 리소스

관련 개념

예시

표현식 "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일에 해당하는 금요일만 실행되는 것이 아닙니다.

자주 묻는 질문

크론 표현식의 5개 필드는 무엇인가요?
순서대로 분(0-59), 시(0-23), 일(1-31), 월(1-12), 요일(0-6, 0은 일요일)입니다. 다섯 필드가 모두 현재 시간과 일치할 때 작업이 실행됩니다.
크론 문법에서 별표(*)는 무엇을 의미하나요?
별표는 해당 필드에 "모든 값이 허용됨"을 의미합니다. 예를 들어 시 필드의 *는 작업이 어느 시간에나 실행될 수 있다는 뜻으로, 사실상 그 필드가 일정을 제한하지 않음을 의미합니다.
*/5는 무엇을 의미하나요?
슬래시는 간격 값을 나타냅니다. 분 필드의 */5는 "5분마다"를 의미합니다 — 해당 필드의 최솟값부터 시작해 5단위마다 반복됩니다.
평일에만 작업을 예약하려면 어떻게 하나요?
요일 필드에 범위를 사용하세요: 1-5는 월요일부터 금요일을 나타냅니다. 특정 시각과 결합하면, 예를 들어 "0 9 * * 1-5"는 평일마다 오전 9시에 실행됩니다.
Cron 구문에서 쉼표는 무엇을 의미합니까?
쉼표는 하나의 필드에서 여러 값을 구분합니다. 예를 들어, 분 필드의 0,15,30,45는 작업이 0분, 15분, 30분, 45분에 실행됨을 의미합니다. 쉼표는 단순한 OR입니다: 작업은 나열된 값 중 하나에서 실행됩니다.
Cron 구문의 하이픈(범위)은 무엇입니까?
하이픈은 값의 범위를 정의합니다. 예를 들어, 요일 필드의 1-5는 월요일부터 금요일까지(일 1부터 5)를 의미합니다. 범위는 양쪽 끝을 포함합니다. 범위를 다른 구문과 결합할 수 있습니다: 1-5,0은 월요일부터 금요일까지와 일요일을 의미합니다.
작업을 2주마다 실행하도록 스케줄하려면 어떻게 합니까?
표준 Cron은 기본적으로 격주 스케줄링을 지원하지 않습니다. 두 가지 옵션이 있습니다: (1) 날짜를 확인하고 2주에 한 번만 실행되는 래퍼 스크립트를 사용하거나, (2) AWS EventBridge 또는 캘린더 기반 트리거가 있는 시스템 타이머와 같은 더 복잡한 표현식을 지원하는 작업 스케줄러를 사용합니다.
Cron은 어떤 시간대를 사용합니까?
표준 Cron은 서버의 로컬 시간대를 사용합니다. 서버가 UTC로 구성된 경우, 모든 Cron 작업은 로컬 시간대에 관계없이 UTC로 실행됩니다. 항상 서버 시간대 설정을 확인하십시오. 특히 클라우드 환경에서는 기본 시간대가 예상 시간대와 다를 수 있습니다.
Cron과 Crontab의 차이점은 무엇입니까?
Cron은 예약된 작업을 실행하는 데몬(백그라운드 서비스)입니다. Crontab은 Cron 작업 목록을 정의하는 구성 파일(또는 명령)입니다. Crontab을 편집할 때, Cron 데몬이 읽고 실행하는 스케줄 정의를 작성하고 있습니다.
Cron으로 일광 절약 시간을 어떻게 처리합니까?
대부분의 Cron 구현은 DST에 자동으로 조정되지 않습니다. 시계가 앞서면 오전 2:00에 예약된 작업이 완전히 건너뛸 수 있습니다. 시계가 뒤로 가면 작업이 두 번 실행될 수 있습니다. DST 문제를 피하려면 전환 시간(오전 2:00–3:00) 외에 작업을 스케줄하거나 UTC 기반 스케줄링을 사용하십시오.
Cron을 서브분 간격에 사용할 수 있습니까?
표준 Cron은 분 수준의 세분도를 가지며 1분에 한 번 이상 작업을 예약할 수 없습니다. 서브분 간격에는 systemd 타이머, 더 짧은 간격의 Kubernetes CronJobs 또는 애플리케이션 수준 스케줄러(밀리초 지원 node-cron)와 같은 대안을 사용하십시오.

더 많은 도구 살펴보기

전체 도구 라이브러리에서 엄선한 새로운 추천입니다.