RunToolz iconRunToolz
Welcome to RunToolz!
크론자동화데브옵스

Cron 표현식: 추측 없이 뭐든 스케줄링

그 암호 같은 스케줄링 문자열 드디어 설명됨. 첫 번째에 작동하는 cron 표현식 작성.

RunToolz Team2026년 1월 25일5 min read

0 0 * * * — 이게 무슨 뜻이야?

AWS Lambda, GitHub Actions, 아니면 어떤 작업 스케줄러든 써봤으면 cron 표현식을 봤을 거야. 어떻게든 작업을 스케줄링하는 5개나 6개의 암호 같은 필드.

보이는 것만큼 복잡하지 않아.

다섯 필드

┌───────────── 분 (0 - 59)
│ ┌───────────── 시 (0 - 23)
│ │ ┌───────────── 일 (1 - 31)
│ │ │ ┌───────────── 월 (1 - 12)
│ │ │ │ ┌───────────── 요일 (0 - 6, 일요일 = 0)
│ │ │ │ │
* * * * *

각 필드는 작업이 실행되는 시점을 제한해. *는 "모든"이야. 숫자는 "그 값만"이야.

직접 사용해 보시겠어요?Cron 표현식 파싱

예제 읽기

0 0 * * * — 0분, 0시, 모든 일, 모든 월, 모든 요일 = 매일 자정

30 8 * * 1-5 — 오전 8:30, 월요일부터 금요일 = 평일 아침

0 */2 * * * — 2시간마다 = 오전 2시, 4시, 6시...

0 9 1 * * — 매월 1일 오전 9시 = 월간 보고서 시간

특수 문자

* — 모든 값 (모든 분, 모든 시간 등)

, — 여러 값. 1,15는 1일과 15일을 의미.

- — 범위. 1-5는 1부터 5까지.

/ — 단계. */15는 15마다. 분 필드의 */15 = 15분마다.

흔한 패턴

5분마다: */5 * * * *

매 시간 30분에: 30 * * * *

매일 오전 3시: 0 3 * * *

일요일 자정마다: 0 0 * * 0

매월 1일 오전 9시: 0 9 1 * *

평일 오후 6시: 0 18 * * 1-5

함정들

요일 vs 일. 둘 다 설정하면 대부분의 시스템이 OR로 결합해. 0 0 1 * 1은 1일 AND 모든 월요일에 실행돼, 1일인 월요일만이 아니야.

타임존이 중요해. 대부분의 cron 시스템은 서버 시간이나 UTC를 써. 어느 걸 다루고 있는지 알아.

6필드 vs 5필드. 어떤 시스템은 초 필드를 처음에 추가해. 0 0 0 * * *는 초 필드가 있으면 자정이 돼.

일요일 = 0 또는 7. 시스템에 따라 달라. 보통 둘 다 일요일로 작동해.

배포 전 테스트

0 0 */2 * *가 2일마다 실행되는지 2시간마다인지 추측하지 마. cron 파서를 써.

몇 개의 예상 트리거 시간을 확인해. 네 의도와 일치하는지 확인해.

중요한 작업은 모니터링을 설정해. 한 필드가 틀린 cron 표현식은 일일 작업을 시간마다 실행할 수 있어—또는 시간마다 작업을 연간으로.

Cron의 대안

영어 문법. 어떤 스케줄러는 0 15 * * * 대신 "every day at 3pm"을 받아. 더 명확하지만 이식성이 낮아.

Rate 표현식. AWS는 cron 표현식과 함께 rate(5 minutes)를 써. 단순한 간격에 더 쉬워.

Systemd 타이머. Linux의 cron 대안으로 더 나은 로깅과 의존성 관리.


Cron 표현식은 빽빽하지만 배울 수 있어. 다섯 필드, 각각 작업이 실행되는 시점을 제한해. 표현식을 테스트하고, 타임존을 주시하면 뭐든 확실하게 스케줄링할 수 있어.