Cron 표현식 해석·다음 실행 시각
GitHub Actions와 대부분의 클라우드 스케줄러는 UTC 기준이라 한국 시간보다 9시간 늦어요. 아래 ‘시간대’를 UTC로 바꿔 실제로 언제 도는지 꼭 확인해 보세요.
다음 실행 시각
칸을 골라 만들기
각 칸에 *(모두), */10(10마다), 1-5(범위), 0,30(목록)을 넣을 수 있어요. 고치면 위 표현식이 바로 바뀌어요.
cron 표현식 읽는 법
cron은 리눅스·맥의 예약 작업 프로그램이고, 그 일정은 띄어쓰기로 나뉜 다섯 칸 분 시 일 월 요일으로 적어요. 예를 들어 30 9 * * 1-5는 ‘평일(월~금) 9시 30분’이에요. 같은 형식을 GitHub Actions의 schedule, 쿠버네티스 CronJob, 여러 클라우드 예약 기능에서도 그대로 써요. 표현식을 넣으면 위쪽에 한국어 뜻을, 아래 표에 칸마다 실제로 실행되는 값을 펼쳐 보여 줘요.
기호 정리
*모든 값 ·*/10처음부터 10마다(분 칸이면 0, 10, 20…분) ·1-5범위 ·0,30목록 ·10-40/10범위 안에서 간격- 요일은 0과 7이 모두 일요일이고
MON~SUN, 월은JAN~DEC이름도 쓸 수 있어요. @hourly@daily@weekly@monthly@yearly단축어도 풀어 줘요.@reboot는 시각이 아니라 켜질 때 한 번이에요.- 칸이 6개면 맨 앞을 ‘초’로 읽어요(Spring·node-cron 방식). Quartz 전용 기호(L, W, #)와 7번째 연도 칸은 지원하지 않는다고 알려 줘요.
헷갈리기 쉬운 ‘일’과 ‘요일’
표준 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일인지 확인하는 방법을 많이 써요.
함께 쓰면 좋은 도구
- 유닉스 시간 변환 (타임스탬프 ↔ 한국 시간 날짜)1700000000 같은 타임스탬프를 한국 시간·UTC 날짜로, 날짜를 타임스탬프로. 초·밀리초·마이크로초 자동 인식, 여러 줄 한꺼번에
- 시차 계산 (세계 시간·나라별 현재 시각)서울 기준 나라별 현재 시각과 시차, 회의 시간 맞추기 표, 서머타임 자동 반영
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴
- 시간 계산기 (시간 더하기·빼기·합계)시:분:초 더하기·빼기, 여러 시간 합계, 두 시각 사이 간격(자정 넘김), 시간 ↔ 분·초 변환
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- Base64 인코딩·디코딩 (글자·파일 ↔ Base64)글자(한글 UTF-8)를 Base64로, Base64를 글자로, 파일·이미지를 data URI로, Base64를 파일로 저장