cron 표현식을 작성하는 방법
cron 표현식은 Linux, 클라우드 플랫폼, CI/CD 파이프라인 및 작업 스케줄러에서 반복 일정을 정의하는 표준 방법입니다. 구문은 컴팩트하지만 직관적이지 않습니다 — 시각적 생성기는 작업이 정확히 언제 실행될지 보여줍니다.
cron 구문
cron 표현식에는 5개의 필드가 있습니다:
┌───────────── 분 (0-59)
│ ┌───────────── 시 (0-23)
│ │ ┌───────────── 일 (1-31)
│ │ │ ┌───────────── 월 (1-12)
│ │ │ │ ┌───────────── 요일 (0-6, 일요일=0)
│ │ │ │ │
* * * * *
일반적인 cron 일정
| 일정 | 표현식 | 의미 |
|---|---|---|
| 매분 | * * * * * |
60초마다 실행 |
| 5분마다 | */5 * * * * |
:00, :05, :10, :15...에 |
| 매시간 | 0 * * * * |
매시간 시작 시 |
| 매일 자정 | 0 0 * * * |
00:00에 하루에 한 번 |
| 매일 오전 9시 | 0 9 * * * |
09:00에 하루에 한 번 |
| 매주 월요일 오전 8시 | 0 8 * * 1 |
월요일 매주 |
| 매월 1일 | 0 0 1 * * |
1일 자정 매월 |
| 평일 오후 6시 | 0 18 * * 1-5 |
월요일에서 금요일까지 |
cron 표현식을 작성하는 방법
- 일정 정의 — 분, 시, 일, 월 및 요일 값을 선택하기 위해 시각적 컨트롤을 사용하세요. 또는 « 매시간 » 또는 « 매일 자정 »과 같은 프리셋에서 시작하세요.
- 실행 미리보기 — 생성기가 일정이 올바른지 확인하기 위해 다음 5회 실행을 표시합니다.
- 표현식 복사 — crontab, CI/CD 구성 또는 클라우드 스케줄러에 붙여넣으세요.
특수 문자
| 문자 | 의미 | 예제 |
|---|---|---|
* |
모든 값 | * * * * * = 매분 |
*/n |
n마다 | */15 * * * * = 15분마다 |
, |
여러 값 | 0 8,12,18 * * * = 오전 8시, 정오, 오후 6시 |
- |
범위 | 0 9-17 * * * = 9시에서 17시까지 매시간 |
팁
- 항상 다음 실행 확인 — cron 표현식은 잘못 이해하기 쉽습니다. 미리보기는 작업이 정확히 언제 실행될지 보여줍니다, 배포 전에 확인하세요.
- 프리셋에서 시작 — « 매일 » 또는 « 매시간 »과 같은 일반적인 일정으로 시작하고 처음부터 작성하는 대신 조정하세요.
- 시간대 주의 — cron 시간은 시스템 시간대에 있습니다(서버에서는 일반적으로 UTC). 파리 9시를 원한다면 일광 절약 시간 동안 UTC로
0 7 * * *입니다. - 짧은 간격으로 테스트 — 새 cron을 설정할 때 작동을 확인하기 위해
*/5 * * * *(5분마다)로 테스트한 다음 최종 일정으로 전환하세요.
자주 묻는 질문
cron 표현식의 형식은 무엇입니까?
표준 cron 표현식에는 분(0-59), 시(0-23), 일(1-31), 월(1-12) 및 요일(0-6, 0은 일요일)을 나타내는 공백으로 구분된 5개의 필드가 있습니다. 별표(*)는 해당 필드의 « 모든 » 값을 의미합니다.
cron에서 */5는 무엇을 의미합니까?
*/5 구문은 « 5마다 »를 의미합니다. 분 필드에서 */5는 5분마다(0, 5, 10, 15...)를 의미합니다. 시 필드에서 */5는 5시간마다를 의미합니다. 어떤 필드에서도 작동합니다.
cron 표현식이 모든 플랫폼에서 동일합니까?
5필드 형식은 Linux cron, AWS EventBridge, GitHub Actions 및 대부분의 일정 관리 시스템에서 표준입니다. 일부 플랫폼은 초나 연도에 대한 6번째 필드를 추가합니다. 플랫폼 문서를 확인하세요.
매월 마지막 날에 일정을 잡는 방법은?
표준 cron에는 « 마지막 날 » 키워드가 없습니다. 스크립트에 날짜 확인이 있는 매일 실행과 같은 우회를 사용하거나 플랫폼별 확장(AWS EventBridge는 « last »에 대해 L을 지원함)을 사용하세요.