desktools.run
35 명 접속 중|5.4천 회 이용
블로그 목록으로 돌아가기
DevOps & BackendSeptember 10, 2026

Cron 표현식 완벽 가이드: 5자리 문법 구조와 실무 스케줄링 예제 모음

Official desktools.run Article

Cron 표현식 완벽 가이드: 5자리 문법 구조와 실무 스케줄링 예제 모음

서버 백엔드 엔지니어링, 클라우드 자동화(AWS Lambda, Cloudflare Cron Triggers, GitHub Actions), 데이터베이스 정기 백업 등 주기적인 반복 작업(Scheduled Batch Jobs)을 정의할 때 가장 널리 쓰이는 표준 문법이 바로 Cron 표현식(Cron Expression)입니다.

간단해 보이지만 특수문자(`*`, `/`, `-`, `,`)의 조합 방식에 따라 의도치 않은 시간에 스크립트가 실행되는 실수가 잦습니다. 이번 가이드에서는 표준 5자리 Cron 표현식의 문법과 실무 필수 패턴을 완벽히 정리해 드립니다.


⏰ 1. 표준 5자리 Cron 표현식의 구조

표준 UNIX 및 Linux cron 표현식은 공백으로 구분된 5개의 필드로 구성됩니다:

```text ┌───────────── 분 (0 - 59) │ ┌─────────── 시 (0 - 23) │ │ ┌───────── 일 (1 - 31) │ │ │ ┌─────── 월 (1 - 12 또는 JAN-DEC) │ │ │ │ ┌───── 요일 (0 - 6 또는 SUN-SAT, 0과 7은 일요일) │ │ │ │ │ * * * * * ```

| 필드 번호 | 필드명 | 허용 범위 | 설명 | | :---: | :--- | :--- | :--- | | 1 | Minute (분) | 0 ~ 59 | 매 시 몇 분에 실행할지 지정 | | 2 | Hour (시) | 0 ~ 23 | 24시간 표기법 기준 시(Hour) 지정 | | 3 | Day of Month (일) | 1 ~ 31 | 해당 월의 며칠에 실행할지 지정 | | 4 | Month (월) | 1 ~ 12 | 실행할 월(Month) 지정 | | 5 | Day of Week (요일)| 0 ~ 6 | 0=일, 1=월, 2=화, 3=수, 4=목, 5=금, 6=토 |


🔣 2. 핵심 특수문자 완벽 정리

1.
**별표 (`*`) - Any Value**: 모든 가능한 값을 의미합니다. (예: 분 자리에 `*` = 매 분마다)
2.
슬래시 (`/`) - Step Values: 증분 간격을 설정합니다. (예: `*/15` = 15분마다, `10-30/5` = 10분부터 30분까지 5분마다)
3.
하이픈 (`-`) - Range: 연속된 값의 범위를 지정합니다. (예: `1-5` 요일 = 월요일부터 금요일까지)
4.
쉼표 (`,`) - Value List: 개별적인 특정 값들을 나열합니다. (예: `1,15,30` 분 = 1분, 15분, 30분에 각각 실행)

🚀 3. 실무에서 가장 자주 쓰는 Cron 패턴 10선

실제 운영 환경에서 즉시 복사하여 사용할 수 있는 대표 예제 모음입니다:

1.
매 5분마다 실행:
`*/5 * * * *`
2.
매 시간 정각에 실행:
`0 * * * *`
3.
매일 새벽 3시 정각 (일일 배치 작업 / 백업):
`0 3 * * *`
4.
평일(월~금) 오전 9시 정각 (업무 시작 알림):
`0 9 * * 1-5`
5.
매주 월요일 자정 00:00 (주간 리포트 생성):
`0 0 * * 1`
6.
매월 1일 자정 00:00 (월간 정산 배치):
`0 0 1 * *`
7.
매일 오전 9시부터 오후 6시까지 매시 30분마다 (업무 시간 주기적 동기화):
`30 9-18 * * 1-5`
8.
주말(토, 일) 자정 00:00 (주말 데이터베이스 인덱스 재정렬):
`0 0 * * 6,0`
9.
매 6시간마다 정각 (0시, 6시, 12시, 18시):
`0 */6 * * *`
10.
분기별 첫날 자정 (1월 1일, 4월 1일, 7월 1일, 10월 1일):
`0 0 1 1,4,7,10 *`

🔍 Cron 설정 시 주의해야 할 점 (주의사항)

서버 타임존(Timezone) 확인: 클라우드 서버는 기본적으로 UTC 기준인 경우가 많습니다. 한국 시간(KST = UTC+9) 오전 9시에 맞추려면 서버 시간 기준 0시(`0 0 * * *`)로 설정해야 합니다.
작업 수행 시간 고려: 이전 배치가 아직 끝나지 않았는데 다음 주기의 cron이 실행되어 충돌하지 않도록 락(Locking) 메커니즘을 적용하세요.

복잡한 Cron 문법을 사람이 읽기 쉬운 언어와 다음 실행 일시로 확인하고 싶다면 desktools.run의 [Cron Expression Parser](file:///tools/cron-parser)를 활용해 보세요!