⏰ Cron Expression Parser

Cron 표현식을 해석하고 다음 실행 시간을 확인합니다

Format: minute hour day month weekday
Cron Format Guide
* * * * * → minute hour day month weekday
* → every
*/5 → every 5
1,2,3 → at 1, 2, and 3
1-5 → from 1 to 5

Cron 표현식이란?

왜 필요한가요?

Cron은 Unix 계열 시스템에서 작업을 주기적으로 실행하기 위한 스케줄러입니다. Cron 표현식은 5개 또는 6개의 필드로 구성되어 분, 시, 일, 월, 요일 등을 지정합니다.

예시: 0 2 * * *는 매일 새벽 2시에 실행됩니다. 복잡한 반복 일정을 간단한 문자열로 표현할 수 있어 백업, 로그 정리, 보고서 생성 등 자동화에 필수적입니다.

언제 사용하나요?

  • 자동 백업: 매일 새벽 데이터베이스 백업 실행
  • 로그 정리: 주 단위로 오래된 로그 파일 삭제
  • 보고서 생성: 매월 1일 자동 리포트 생성 및 전송
  • 캐시 정리: 매시간 만료된 캐시 데이터 삭제
  • 헬스체크: 5분마다 서버 상태 모니터링
  • 배치 작업: 대량 데이터 처리를 야간에 실행

Cron 표현식 구조

* * * * * *
│ │ │ │ │ │
│ │ │ │ │ └─ 요일 (0-7, 0과 7은 일요일)
│ │ │ │ └─── 월 (1-12)
│ │ │ └───── 일 (1-31)
│ │ └─────── 시 (0-23)
│ └───────── 분 (0-59)
└─────────── 초 (0-59, 선택적)

특수 문자

  • * : 모든 값 (every)
  • , : 복수 값 (예: 1,3,5)
  • - : 범위 (예: 1-5)
  • / : 간격 (예: */5 = 5분마다)
  • ? : 무시 (일/요일 중 하나만 지정 시)

자주 사용하는 Cron 표현식

표현식설명
* * * * *매분마다
*/5 * * * *5분마다
0 * * * *매시간 정각
0 0 * * *매일 자정
0 2 * * *매일 새벽 2시
0 0 * * 0매주 일요일 자정
0 0 1 * *매월 1일 자정
0 9-17 * * 1-5평일 9시~17시 매시간
0 0 1 1 *매년 1월 1일 자정

실무 사용 예시

예시 1: Linux crontab

# 매일 새벽 3시에 데이터베이스 백업
0 3 * * * /usr/local/bin/backup.sh

# 매주 일요일 자정에 로그 정리
0 0 * * 0 /usr/local/bin/clean_logs.sh

예시 2: Node.js (node-cron)

const cron = require('node-cron'); // 매 5분마다 실행 cron.schedule('*/5 * * * *', () => { console.log('Running task every 5 minutes'); });

예시 3: Spring Boot (@Scheduled)

@Scheduled(cron = "0 0 2 * * ?") public void backupDatabase() { // 매일 새벽 2시 백업 }

주의사항

  • 시간대: Cron은 서버의 시간대를 따릅니다. UTC와 로컬 시간 차이를 확인하세요.
  • 중복 실행: 작업이 완료되기 전에 다음 실행 시간이 되면 중복 실행될 수 있습니다.
  • 리소스 사용: 너무 짧은 간격은 시스템 부하를 일으킬 수 있습니다.
  • 일/요일 혼용: 일과 요일을 동시에 지정하면 OR 조건으로 작동합니다.
  • 초 필드: 표준 Cron은 5개 필드이지만, 일부 시스템(Quartz)은 6개 필드(초 포함)를 사용합니다.

더 알아보기

Developer Tools

개발자를 위한 18가지 이상의 무료 온라인 도구를 제공합니다. Base64, JSON, JWT, 정규식 등 필수 개발 도구를 한 곳에서.

Developer Tools © 2025. All rights reserved.

모든 도구는 클라이언트 사이드에서만 작동하며, 입력 데이터는 서버로 전송되지 않습니다.