도구상자FREE ONLINE TOOLS
← 가이드 목록

cron 표현식 읽는 법 — 5칸 구조와 예시 모음

백업 스크립트, 배치 작업, GitHub Actions 스케줄 — 주기 실행이 필요한 곳엔 어김없이 0 9 * * 1 같은 cron 표현식이 등장합니다. 다섯 칸의 의미만 알면 바로 읽고 쓸 수 있습니다. 구조와 자주 쓰는 예시, 헷갈리는 함정을 정리합니다.

5칸 구조 — 분·시·일·월·요일

cron 표현식은 공백으로 구분된 다섯 칸입니다. 왼쪽부터:

의미허용 값
10 ~ 59
20 ~ 23
3일(날짜)1 ~ 31
41 ~ 12
5요일0 ~ 6 (0 = 일요일)

0 9 * * 1 = "분이 0, 시가 9, 날짜·월은 아무 때나, 요일이 월요일" → 매주 월요일 오전 9시.

특수문자 4가지 — * , - /

  • *모든 값: 그 칸은 조건 없음.
  • ,나열: 1,15(일 칸) = 1일과 15일.
  • -범위: 1-5(요일 칸) = 월~금.
  • /간격: */5(분 칸) = 5분마다, */2(시 칸) = 2시간마다.

자주 쓰는 표현식 모음

표현식의미
*/5 * * * *5분마다
0 * * * *매시 정각
0 9 * * *매일 오전 9시
30 18 * * 1-5평일(월~금) 오후 6시 30분
0 9 * * 1매주 월요일 오전 9시
0 0 1 * *매월 1일 자정
0 3 * * 0매주 일요일 새벽 3시 (백업 단골)
0 0 1 1 *매년 1월 1일 자정
cron 표현식 변환표현식을 넣으면 한국어 설명과 다음 실행 시각 표시 해석하기 →

헷갈리는 함정 3가지

  • 서버 시간대: 많은 서버·CI가 UTC로 돕니다. 한국 시간 오전 9시에 돌리려면 0 0 * * *(UTC 0시 = KST 9시)처럼 9시간을 빼야 합니다.
  • 요일 숫자: 0이 일요일입니다(7을 일요일로 받는 구현도 있음). "월요일 = 1"만 기억하면 안전합니다.
  • 일 + 요일 동시 지정: 표준 cron에서 날짜와 요일을 둘 다 지정하면 OR 조건이 되어, 둘 중 하나만 맞아도 실행됩니다. "매월 1일이 월요일일 때"처럼 AND를 의도했다면 스크립트 안에서 추가로 확인해야 합니다.
팁: 작성한 표현식은 배포 전에 해석 도구로 "다음 실행 시각"을 확인하는 습관을 들이면, 새벽에 잘못 도는 배치를 미리 잡을 수 있습니다.
자주 묻는 질문
Q. cron 표현식의 다섯 칸은 각각 무엇인가요?

왼쪽부터 분(0~59), 시(0~23), 일(1~31), 월(1~12), 요일(0~6, 0=일요일) 순서입니다. 예를 들어 0 9 * * 1은 '매주 월요일 오전 9시 0분'을 뜻합니다. *는 '모든 값'이라는 의미로, 그 칸의 조건을 따지지 않겠다는 뜻입니다.

Q. */5 같은 슬래시는 무슨 뜻인가요?

간격(step)을 뜻합니다. 분 칸의 */5는 '5분마다'(0, 5, 10…55분), 시 칸의 */2는 '2시간마다'입니다. 쉼표(,)는 나열(1,15 = 1일과 15일), 하이픈(-)은 범위(1-5 = 월~금)를 의미합니다. 세 가지를 조합하면 대부분의 주기를 표현할 수 있습니다.

Q. cron이 예상 시각에 실행되지 않아요. 뭘 확인해야 하나요?

먼저 서버의 시간대를 확인하세요. 많은 서버가 UTC로 동작해 한국 시간보다 9시간 늦게 실행된 것처럼 보입니다. 다음으로 요일 숫자(0=일요일)가 의도와 맞는지, 그리고 일(day)과 요일(weekday)을 동시에 지정했는지 확인하세요. 표준 cron에서 둘을 함께 지정하면 둘 중 하나만 맞아도(OR 조건) 실행되어 예상보다 자주 돌 수 있습니다.

함께 보면 좋은 가이드