총 72개 서포트 유틸리티
100% 브라우저 자체 연산 (서버 전송 없음)
Zero Latency 실시간 결과
완전 프라이빗 개인정보 보호
개발자 및 데이터 Client Local

CRON 표현식 생성기/해석기

초, 분, 시, 일, 월, 요일 단위를 탭 인터페이스로 손쉽게 설정하여 완벽한 CRON 스케줄 문자열을 생성합니다. 리눅스 표준 5필드와 Spring/Quartz 6필드를 모두 지원하며, 입력한 표현식의 자연어 해석과 다음 5회 실행 예정 일시를 브라우저에서 100% 로컬로 즉시 계산합니다.

CRON 형식 선택
생성된 CRON 표현식
0/5 * * * *

매 5분마다 반복 실행

자주 사용하는 CRON 템플릿

100% 브라우저 로컬 비공개 연산

설정한 CRON 규칙과 스케줄 데이터는 외부 서버로 전송되지 않습니다. 모든 파싱과 다음 실행 일시 계산은 브라우저 내부 JavaScript 엔진에서 실시간으로 안전하게 처리됩니다.

향후 실행 예정 일시 (Next 5 Runs)

  • 2026-08-21 16:10:004분 후
  • 2026-08-21 16:15:009분 후
  • 2026-08-21 16:20:0014분 후
  • 2026-08-21 16:25:0019분 후
  • 2026-08-21 16:30:0024분 후

* 현재 브라우저 기준 로컬 타임존

CRON 특수 기호 치트시트

* (모든 값): 해당 필드의 모든 시점에 실행

, (목록 구분): 여러 특정 시점을 나열 (예: 1,15,30)

- (범위): 연속된 구간을 지정 (예: 9-17)

/ (주기/스텝): 시작값과 간격 지정 (예: */10)

? (설정 안 함): 일(Day) 또는 요일 중 하나만 지정할 때 사용 (Quartz)

CRON 스케줄러 & Crontab 실무 기술 가이드

리눅스 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)

리눅스 표준 Crontab은 분(Minute)부터 시작하는 5개 필드를 사용하며, Spring 프레임워크나 Quartz 스케줄러는 초(Second) 단위 제어가 가능한 6개 또는 7개(연도 포함) 필드를 지원합니다.

각 필드의 허용 범위와 배치 순서는 아래 표와 같습니다.

필드 순서필드명허용 범위 (Range)허용 특수 문자지원 표준
1번째 (선택)초 (Seconds)0 - 59* , - /Quartz / Spring (6필드)
1 또는 2번째분 (Minutes)0 - 59* , - /모든 표준 공통
2 또는 3번째시 (Hours)0 - 23* , - /모든 표준 공통
3 또는 4번째일 (Day of Month)1 - 31* , - / ? L W모든 표준 공통
4 또는 5번째월 (Month)1 - 12 (JAN - DEC)* , - /모든 표준 공통
5 또는 6번째요일 (Day of Week)0 - 7 (SUN - SAT)* , - / ? L #0과 7은 일요일

2. CRON 핵심 특수 문자 문법 및 사용 예제

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 스케줄러 구현 예제

Node.js, Python, Java(Spring Boot), Go 언어에서 CRON 표현식을 기반으로 자동화 작업을 등록하는 실무 코드 예제입니다.

Node.js (node-cron)
1const cron = require('node-cron');
2 
3// 매 5분마다 실행 (0분, 5분, 10분 ...)
4cron.schedule('*/5 * * * *', () => {
5 console.log('5분마다 배치 작업 실행: ' + new Date().toISOString());
6});
7 
8// 매주 월요일 오전 9시 정각에 주간 리포트 발송
9cron.schedule('0 9 * * 1', () => {
10 console.log('주간 리포트 이메일 발송 완료');
11});
Python (APScheduler / CronTrigger)
1from apscheduler.schedulers.blocking import BlockingScheduler
2from apscheduler.triggers.cron import CronTrigger
3 
4scheduler = BlockingScheduler()
5 
6# 매일 자정 00:00 데이터베이스 백업
7@scheduler.scheduled_job(CronTrigger.from_crontab('0 0 * * *'))
8def daily_backup():
9 print("일일 데이터베이스 백업 수행")
10 
11# 평일(월~금) 오전 9시 알림 발송
12@scheduler.scheduled_job(CronTrigger.from_crontab('0 9 * * 1-5'))
13def weekday_alert():
14 print("업무 시작 알림 발송")
15 
16scheduler.start()
Java / Spring Boot (@Scheduled)
1import org.springframework.scheduling.annotation.Scheduled;
2import org.springframework.stereotype.Component;
3 
4@Component
5public class ScheduledTasks {
6 
7 // Spring은 6필드 (초 분 시 일 월 요일) 형식을 사용합니다.
8 // 매시 정각 0초에 실행
9 @Scheduled(cron = "0 0 * * * *")
10 public void hourlyCleanup() {
11 System.out.println("매 시간 캐시 정리 작업 수행");
12 }
13 
14 // 매월 1일 오전 4시 30분 0초에 실행
15 @Scheduled(cron = "0 30 4 1 * *")
16 public void monthlySettlement() {
17 System.out.println("월간 정산 배치 처리 완료");
18 }
19}
Linux Crontab Terminal
1# 현재 사용자의 crontab 편집
2crontab -e
3 
4# [예제 1] 10분마다 파이썬 스크립트 실행 및 로그 저장
5*/10 * * * * /usr/bin/python3 /opt/scripts/collector.py >> /var/log/collector.log 2>&1
6 
7# [예제 2] 매주 일요일 새벽 3시 시스템 로그 백업
80 3 * * 0 /opt/scripts/backup.sh
9 
10# crontab 등록 내용 조회
11crontab -l

자주 묻는 질문 (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 표현식을 검증하기 위해 외부 서버로 데이터가 전송되나요?

Toolbase의 모든 유틸리티와 마찬가지로, CRON 파싱 및 실행 시간 계산은 100% 사용자의 웹 브라우저 로컬 JavaScript 메모리에서 실행되므로 데이터 전송이 일절 발생하지 않습니다.