DevToolPal
한국어

Cron 표현식

업무 시간 중 15분마다

평일 09:00부터 17:45까지 15분마다 실행합니다.

*/15 9-17 * * 1-5 Cron 표현식 파서에서 열기

필드별 설명

필드 값 해당 값
분 */15 0, 15, 30, 45
시 9-17 9, 10, 11, 12, …, 17
일 * 모든 값
월 * 모든 값
요일 1-5 월요일 화요일 수요일 목요일 금요일

다음 실행 시간

예시: 2026년 1월 1일 이후 처음 6회 실행(UTC).

  1. 2026년 1월 1일 (목) 09:00
  2. 2026년 1월 1일 (목) 09:15
  3. 2026년 1월 1일 (목) 09:30
  4. 2026년 1월 1일 (목) 09:45
  5. 2026년 1월 1일 (목) 10:00
  6. 2026년 1월 1일 (목) 10:15

바로 쓰는 버전

crontab
*/15 9-17 * * 1-5 /path/to/command

crontab -e로 이 줄을 추가하세요. CRON_TZ나 TZ를 설정하지 않으면 서버 시간대로 실행됩니다.

Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
  name: every-15-minutes-during-business-hours
spec:
  schedule: "*/15 9-17 * * 1-5"
  timeZone: "Etc/UTC"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: job
              image: busybox:1.36
              command: ["/bin/sh", "-c", "date; echo run"]

spec.timeZone을 설정하세요(Kubernetes 1.27+). 없으면 controller manager의 시간대(보통 UTC)를 따릅니다.

GitHub Actions
on:
  schedule:
    - cron: '*/15 9-17 * * 1-5'
  workflow_dispatch:

GitHub Actions는 항상 UTC를 쓰고 최소 간격은 5분이며, 부하가 크면 예약 실행이 늦게 시작될 수 있습니다.

Quartz
0 */15 9-17 ? * MON-FRI

Quartz는 맨 앞에 초를 두고, 일 또는 요일 중 하나에 ?가 필요합니다. 요일은 일요일부터 1–7이므로 영문 약어가 더 안전합니다.

Spring
@Scheduled(cron = "0 */15 9-17 * * MON-FRI")

Spring @Scheduled(cron = …)는 초와 일반 다섯 필드, 모두 여섯 필드를 씁니다.

자주 묻는 질문

› 정확히 17:00에 멈추려면?

cron 한 줄로는 시간 중간에 끝낼 수 없습니다. */15 9-16 * * 1-5에 0 17 * * 1-5 한 줄을 더하세요.

› */15 9-17 * * 1-5는 어느 시간대로 실행되나요?

Cron은 실행하는 머신이나 서비스의 시간대를 씁니다. Linux에서는 CRON_TZ나 TZ를 설정하지 않으면 시스템 시간대, Kubernetes CronJob은 spec.timeZone을 지원하고, GitHub Actions는 항상 UTC입니다.

› 배포 전에 일정을 확인하려면 어떻게 하나요?

이 사이트의 Cron 표현식 파서에서 */15 9-17 * * 1-5를 여세요. 각 필드를 설명하고 앞으로의 실행 시간을 현지 시간 또는 UTC로 보여 줍니다. 모두 브라우저에서 처리됩니다.