Vercel 크론(Cron) 설정 완전 정리

> 프로그래밍 문서 >

목차

Vercel의 Cron 기능은 정해진 시간 간격으로 특정 API를 자동 호출하여 정기 작업(예: 데이터 갱신, 광고 입찰 조정 등)을 수행하도록 해주는 강력한 도구입니다.

1️⃣ 기본 구조 및 문법

Vercel은 표준 Cron 표현식(* * * * *)을 그대로 사용합니다.

┌───────────── 분 (minute, 0–59)
│ ┌───────────── 시 (hour, 0–23)
│ │ ┌───────────── 일 (day of month, 1–31)
│ │ │ ┌───────────── 월 (month, 1–12)
│ │ │ │ ┌───────────── 요일 (day of week, 0–6, 일요일=0)
│ │ │ │ │
* * * * *

💡 예시표

표현식 실행 주기
* * * * * 매분 실행
0 * * * * 매시간 정각 실행
0 9 * * * 매일 오전 9시 실행
30 2 * * * 매일 새벽 2시 30분 실행
0 */3 * * * 3시간마다 실행
*/5 * * * * 5분마다 실행
0 9-18 * * 1-5 월~금 9시~18시 매시간 실행
15 14 1 * * 매월 1일 14시 15분 실행

🔹 특수기호 정리

기호 설명 예시
* 모든 값 * * * * * → 매분
, 여러 값 지정 0,15,30,45 * * * *
- 범위 지정 0 9-17 * * *
/ 주기 지정 */10 * * * *

2️⃣ 자주 사용하는 주기별 설정 예시

🕒 3시간 간격으로 실행

{
  "crons": [
    {
      "path": "/api/naver-ads-keyword-cpc-adjuster-cron-version",
      "schedule": "0 */3 * * *"
    }
  ]
}

0 */3 * * *

→ 매일 0분 기준으로 3시간 간격(0시, 3시, 6시, 9시, 12시, 15시, 18시, 21시)에 실행됩니다.

즉, 하루 총 8회 실행됩니다.

🗓 특정 요일·시간대 예시

🕗 특정 시간 범위만 제어

✅ 정리

Vercel Cron은 분·시·일·월·요일 단위로 자유롭게 범위를 지정할 수 있으며, 요일 포함·제외 설정도 가능합니다.

3️⃣ 크론 중단 및 비활성화 방법

Vercel의 vercel.json 은 주석 처리나 비활성화 속성을 직접 지원하지 않습니다.

대신 다음 방법 중 하나를 사용해야 합니다.

방법 ① Dashboard에서 크론 항목 삭제

가장 확실하고 안전한 방법입니다.

Vercel 프로젝트 Dashboard 에서 Cron 항목을 삭제하면 즉시 비활성화됩니다.

방법 ② .env 설정으로 내부 제어

API 내부에서 ENABLE_CRON 값을 확인하여 동작 여부를 제어할 수 있습니다.

export default async function handler(req, res) {
  const ENABLE_CRON = process.env.ENABLE_CRON === 'true';

  if (!ENABLE_CRON) {
    return res.status(200).send("Cron is temporarily disabled.");
  }

  // 실제 작업 수행
}

.env

ENABLE_CRON=false

💡 이 방법의 장점

크론 호출 자체는 유지되지만 실제 작업 수행만 중단할 수 있습니다.

즉, .env 값 한 줄만 변경해 손쉽게 켜기/끄기 제어가 가능합니다.

방법 ③ JSON 속성명 변경 (비권장)

schedule 키를 schedule_ 처럼 변경하면 Vercel이 이를 인식하지 못해 실행되지 않습니다.

다만 임시방편 방식이며 권장되지 않습니다.

⚠️ 주의사항

JSON은 주석을 지원하지 않습니다.

schedule 항목을 제거하면 해당 크론은 등록되지 않습니다.

4️⃣ 결론

"schedule": "0 */3 * * *"

✅ 가장 권장되는 관리 방식

  1. 개발 중에는 ENABLE_CRON=false 로 제어
  2. 운영 환경에서는 Dashboard 에서 관리
  3. 모든 설정은 vercel.jsoncrons 배열로 유지
  • HTML에서 특정 위치로 이동하는 방법
  • Vercel 크론(Cron) 설정 완전 정리
  • script-vs-script-module
  • 정규식
  • nodejs-import
  • js-async
  • html-optgroup
  • Anaconda 설치 및 사용 가이드
  • 💬