홈 › 개발·웹 도구

Cron 표현식 해석·다음 실행 시각

GitHub Actions와 대부분의 클라우드 스케줄러는 UTC 기준이라 한국 시간보다 9시간 늦어요. 아래 ‘시간대’를 UTC로 바꿔 실제로 언제 도는지 꼭 확인해 보세요.

입력한 내용은 서버로 보내지 않고 이 기기에서만 처리돼요
뜻

다음 실행 시각

    칸을 골라 만들기

    각 칸에 *(모두), */10(10마다), 1-5(범위), 0,30(목록)을 넣을 수 있어요. 고치면 위 표현식이 바로 바뀌어요.

    cron 표현식 읽는 법

    cron은 리눅스·맥의 예약 작업 프로그램이고, 그 일정은 띄어쓰기로 나뉜 다섯 칸 분 시 일 월 요일으로 적어요. 예를 들어 30 9 * * 1-5는 ‘평일(월~금) 9시 30분’이에요. 같은 형식을 GitHub Actions의 schedule, 쿠버네티스 CronJob, 여러 클라우드 예약 기능에서도 그대로 써요. 표현식을 넣으면 위쪽에 한국어 뜻을, 아래 표에 칸마다 실제로 실행되는 값을 펼쳐 보여 줘요.

    기호 정리

    헷갈리기 쉬운 ‘일’과 ‘요일’

    표준 cron(Vixie cron)은 일 칸과 요일 칸이 둘 다 *가 아닌 값이면 ‘둘 중 하나라도 맞으면’ 실행해요. 그래서 0 0 13 * 5는 ‘13일의 금요일’이 아니라 ‘매월 13일과 매주 금요일’이에요. 둘 중 하나가 *(또는 */2처럼 *로 시작)이면 두 조건을 함께 만족해야 해요. 다음 실행 시각 계산도 이 규칙(리눅스 cronie와 같음)을 따르고, 여러 표현식을 파이썬 croniter 라이브러리의 계산과 맞춰 시험했어요. 다만 쿠버네티스가 쓰는 robfig/cron이나 croniter는 */2처럼 간격이 붙은 경우를 *로 보지 않아서, 일과 요일을 함께 쓰면서 *로 시작하는 간격을 넣으면 결과가 다를 수 있어요.

    시간대

    서버의 cron은 그 서버의 시간대로, GitHub Actions·AWS EventBridge 같은 서비스는 대부분 UTC로 돌아요. ‘시간대’를 UTC로 바꾸면 UTC 기준 실행 시각과 함께 그 첫 실행이 한국 시간으로 몇 시인지 알려 줘요. 서머타임이 있는 시간대에서 건너뛰는 시각은 목록에서 빠지는데, 실제 cron 프로그램마다 처리 방식이 조금씩 달라요. GitHub Actions는 부하가 많을 때 몇 분 늦게 실행되기도 해요.

    참고한 자료

    자주 묻는 질문

    매일 한국 시간 오전 9시에 GitHub Actions를 돌리려면?

    GitHub Actions는 UTC 기준이라 9시간을 빼서 0 0 * * *(UTC 0시 = 한국 9시)로 적어요. 시간대를 UTC로 두고 확인해 보세요.

    5분마다 실행은 어떻게 쓰나요?

    */5 * * * *예요. 매시 0, 5, 10 … 55분에 실행돼요. 3분 뒤부터 5분마다 같은 식으로 시작점을 바꾸려면 3-59/5 * * * *처럼 써요.

    매월 마지막 날은 어떻게 하나요?

    일반 cron에는 ‘마지막 날’ 기호가 없어요. 0 0 28-31 * *로 실행한 뒤 스크립트 안에서 내일이 1일인지 확인하는 방법을 많이 써요.

    함께 쓰면 좋은 도구