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

Share web page Install app Cranberry Marketing Cafe Cranberry Marketing
💬

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시간마다 실행 (0시, 3시, 6시...)
*/5 * * * *5분마다 실행
0 9-18 * * 1-5월~금 9시~18시 매시간 실행
15 14 1 * *매월 1일 14시 15분 실행

🔹 특수기호 정리

기호설명예시
*모든 값* * * * * → 매분
,여러 값 지정0,15,30,45 * * * * → 0·15·30·45분
-범위 지정0 9-17 * * * → 9시~17시
/주기 지정*/10 * * * * → 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 프로젝트 대시보드에서 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️⃣ 결론

✅ 가장 권장되는 관리 방식:
1) 개발 중엔 ENABLE_CRON=false 로 제어,
2) 운영 중엔 Dashboard에서 관리,
3) 모든 설정은 vercel.jsoncrons 배열로 유지.
설문조사하고 용돈벌자! 라쿠텐 인사이트 서베이
용돈 벌러가기
»