리눅스 Crontab부터 Spring/Quartz까지 완벽하게 정복하는 CRON 문법 가이드
CRON은 유닉스/리눅스 계열 운영체제 및 엔터프라이즈 백엔드 시스템에서 주기적인 배치 작업, 데이터베이스 백업, 이메일 발송, API 폴링 등을 자동화하기 위해 널리 사용되는 시간 기반 작업 스케줄러 표준입니다.
CRON 표현식은 각 필드가 공백으로 구분된 문자열로 구성되며, 초/분/시/일/월/요일 단위의 실행 주기를 극도로 간결하게 표현할 수 있는 강력한 문법 구조를 갖추고 있습니다.
본 도구는 5필드 표준 리눅스 Crontab과 6필드 Quartz/Spring 스케줄러를 완벽하게 지원하여, 복잡한 반복 주기를 시각적으로 구성하고 휴먼 에러를 방지할 수 있도록 돕습니다.
5필드 & 6필드 완벽 지원
리눅스 Crontab 5필드와 초 단위 제어가 필요한 Spring Boot / Quartz 6필드를 자유롭게 전환할 수 있습니다.
자연어 해석 & 다음 실행 일시 계산
작성된 표현식이 실제 언제 실행되는지 사람이 읽기 쉬운 문장과 직관적인 타임라인으로 검증합니다.
다양한 실무 템플릿 원클릭 적용
매 5분, 매일 자정, 평일 업무 시간 등 실무에서 가장 자주 사용되는 패턴을 즉시 로드할 수 있습니다.
1. CRON 표현식 필드 구성 및 규격 비교 (Linux vs Quartz)
| 필드 순서 | 필드명 | 허용 범위 (Range) | 허용 특수 문자 | 지원 표준 |
|---|---|---|---|---|
2. CRON 핵심 특수 문자 문법 및 사용 예제
*): 해당 필드의 모든 유효 값을 의미합니다. 예를 들어 시(Hour) 필드에 *가 들어가면 매 시간마다 실행됩니다.,): 여러 개의 특정 값을 열거할 때 사용합니다. 예를 들어 1,15,30은 1분, 15분, 30분에 각각 실행됩니다.-): 연속된 값의 범위를 지정합니다. 9-18은 오전 9시부터 오후 6시까지 매 시간마다 실행됩니다./): 시작 값과 증가 간격(Step)을 정의합니다. */5는 0분부터 시작하여 5분마다 실행(0, 5, 10, 15...)됨을 뜻합니다.?): 일(Day of Month)과 요일(Day of Week) 중 한쪽에만 조건을 걸고 다른 쪽은 무시할 때 Quartz에서 사용합니다.3. 주요 프로그래밍 언어 및 프레임워크별 CRON 스케줄러 구현 예제
자주 묻는 질문 (FAQ)
Q.리눅스 Crontab 5필드와 Spring/Quartz 6필드의 가장 큰 차이점은 무엇인가요?
리눅스 표준 Crontab은 [분 시 일 월 요일]의 5개 필드로 구성되어 최소 단위가 1분입니다. 반면 Spring Boot와 Quartz는 맨 앞에 [초] 필드가 추가된 [초 분 시 일 월 요일] 6개 필드를 사용하여 초 단위의 정밀한 스케줄링을 지원합니다.
Q.물음표(?) 기호는 언제 사용해야 하나요?
Quartz 및 Spring 스케줄러에서 일(Day of Month)과 요일(Day of Week) 필드 간의 충돌을 방지하기 위해 사용됩니다. 예를 들어 "매월 15일"에 실행하려면 일 필드에 15를 넣고 요일 필드에는 ?를 넣어 요일 조건에 구애받지 않도록 지정합니다.
Q.요일 필드에서 0과 7은 각각 어떤 요일을 뜻하나요?
대부분의 유닉스/리눅스 Crontab 시스템에서 0과 7은 모두 일요일(Sunday)을 가리킵니다. 1은 월요일, 2는 화요일, ..., 6은 토요일입니다.
Q.서버 시간(UTC)과 사용자의 로컬 시간이 다를 때 어떻게 계산되나요?
본 웹 도구의 [실행 예정 일시]는 접속하신 사용자 브라우저의 로컬 타임존(예: KST Asia/Seoul)을 기준으로 계산됩니다. 실제 운영 서버에 Crontab을 등록할 때는 서버의 시스템 타임존(예: UTC) 설정을 반드시 확인하시기 바랍니다.
Q.작성한 CRON 표현식을 검증하기 위해 외부 서버로 데이터가 전송되나요?
ToolsYouWant의 모든 유틸리티와 마찬가지로, CRON 파싱 및 실행 시간 계산은 100% 사용자의 웹 브라우저 로컬 JavaScript 메모리에서 실행되므로 데이터 전송이 일절 발생하지 않습니다.