11강

스케줄링: 반복 작업 예약 자동화

4 조회 1

cron job, CronCreate 도구, GitHub Actions 스케줄로 Claude Code 작업을 정해진 시간에 자동 반복 실행하는 방법.

스케줄링 — 정해진 시간에 자동으로 실행하기

코드베이스 상태 점검, 의존성 취약점 스캔, 번역 키 동기화, 데이터베이스 정리 — 이런 작업들은 "필요할 때 하는 것"보다 "정기적으로 자동 실행하는 것"이 훨씬 안전합니다. 문제를 발생 직후 발견하는 것과 몇 주 후 발견하는 것의 차이는 수십 배의 수정 비용 차이로 이어집니다. Claude Code를 스케줄에 등록하면 이 모든 점검이 사람 없이 자동으로 이루어집니다.

Claude Code의 CronCreate 도구

Claude Code에는 CronCreate 도구가 내장되어 있습니다. 대화 중에 바로 스케줄 작업을 등록할 수 있습니다.

# Claude Code 세션에서 직접 실행
"매일 오전 9시에 npm audit 실행하고 고위험 취약점 있으면 Slack으로 알려줘"

# CronCreate 도구가 실행하는 내용:
CronCreate({
  schedule: "0 9 * * *",        # cron 표현식
  prompt: "npm audit --json 실행 → high/critical 취약점 있으면 security-alerts.log 에 기록",
  allowedTools: ["Bash(npm audit*)"]
})

등록된 크론 작업은 Claude Code 백그라운드에서 실행되며, 완료 시 결과가 알림으로 전달됩니다. CronList로 등록된 작업 목록 확인, CronDelete로 삭제할 수 있습니다.

GitHub Actions 스케줄 — 가장 안정적인 방법

CI/CD 환경에서 가장 신뢰할 수 있는 스케줄링 방법은 GitHub Actions의 schedule 트리거입니다. 서버 의존 없이 GitHub 인프라에서 실행됩니다.

# .github/workflows/weekly-health-check.yml
name: Weekly Code Health Check
on:
  schedule:
    - cron: '0 9 * * 1'  # 매주 월요일 오전 9시 (UTC)
  workflow_dispatch:      # 수동 실행도 허용

jobs:
  health-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Node.js 설정
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - run: npm ci

      - name: Claude Code 주간 점검
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude -p "
            주간 코드 품질 점검:
            1. npx tsc --noEmit → 타입 오류 수
            2. npm run lint -- --format json → 린트 오류 파일 수
            3. npm audit --json → 취약점 현황
            4. 결과를 health-report.md 로 저장

            형식:
            # 주간 코드 품질 리포트 $(date)
            ## TypeScript: N개 오류
            ## Lint: N개 파일 오류
            ## 보안: N개 취약점 (H: N, M: N, L: N)
            ## 권고사항: (있으면)
          " \
            --allowedTools "Bash(npx tsc*),Bash(npm run lint*),Bash(npm audit*),Write"

      - name: 리포트 아티팩트 저장
        uses: actions/upload-artifact@v4
        with:
          name: weekly-health-report
          path: health-report.md

      - name: Slack 알림 (취약점 있을 때만)
        if: always()
        run: |
          if grep -q "H: [1-9]" health-report.md; then
            curl -X POST ${{ secrets.SLACK_WEBHOOK }} \
              -H 'Content-type: application/json' \
              --data '{"text":"⚠️ NUGUNA-HRD 고위험 취약점 발견! 리포트 확인 필요"}'
          fi

실전 스케줄 작업 모음

# 매일 오전 6시 — 의존성 취약점 스캔
0 6 * * * claude -p "npm audit --fix 실행 후 수정 내용 audit-fix.log에 기록" --allowedTools "Bash(npm audit*)"

# 매주 월요일 — 번역 키 동기화 검사
0 9 * * 1 claude -p "ko.json 기준으로 en.json, ja.json 누락 키 검사 후 report.md 생성"

# 매월 1일 — 의존성 업데이트
0 10 1 * * claude -p "npm outdated 분석 후 마이너 버전까지 업데이트, 테스트 통과 확인"

# 매주 금요일 오후 5시 — 주간 변경 요약
0 17 * * 5 claude -p "git log --since='7 days ago' 분석해서 WEEKLY.md 업데이트"

OS 기본 cron (Linux/Mac)

# crontab 편집
crontab -e

# 매일 오전 2시 DB 스냅샷 상태 확인
0 2 * * * cd /path/to/project && \
  claude -p "supabase db 연결 상태와 테이블 크기 확인 후 db-status.log에 기록" \
  --allowedTools "Bash(npx supabase*)" \
  >> /var/log/claude-cron.log 2>&1

# Windows 작업 스케줄러 (PowerShell)
Register-ScheduledTask -TaskName "NugunaWeeklyCheck" `
  -Trigger (New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 9am) `
  -Action (New-ScheduledTaskAction -Execute "claude" `
    -Argument '-p "주간 코드 품질 점검" --allowedTools "Bash(npm*)"') `
  -WorkingDirectory "C:\Users\chung\Documents\Project\nuguna-hrd"

스케줄 작업 모니터링

#!/bin/bash
# 스케줄 작업 결과 확인 스크립트
echo "=== 최근 24시간 Claude Cron 실행 이력 ==="
tail -50 /var/log/claude-cron.log | grep -E "완료|오류|FAILED|SUCCESS"

echo ""
echo "=== 생성된 리포트 파일 ==="
find . -name "*.log" -newer yesterday -type f | head -10

# GitHub Actions 실행 이력 (gh CLI)
echo ""
echo "=== GitHub Actions 최근 실행 ==="
gh run list --workflow=weekly-health-check.yml --limit=5
스케줄 작업의 설계 원칙: "사람이 잊어버려도 시스템이 기억한다." 코드 품질 점검을 수동으로 할 때는 바쁘면 미루게 됩니다. 스케줄로 자동화하면 항상 실행됩니다. 중요한 것은 결과를 사람이 확인할 수 있는 채널(Slack, 이메일, GitHub 아티팩트)로 전달하는 것입니다 — 자동화가 실행되어도 결과를 아무도 보지 않으면 의미가 없습니다.

핵심 정리

  • CronCreate 도구로 Claude Code 세션에서 바로 스케줄 등록 — 매일/매주 반복 작업을 대화 중에 예약
  • GitHub Actions schedule 트리거가 가장 안정적 — 서버 관리 불필요, 실행 이력 자동 보관, 아티팩트 저장
  • 스케줄 결과는 반드시 사람이 볼 수 있는 채널로 — 취약점·오류 발견 시 Slack/이메일 알림 연동 필수

관련 검색어  ·  클로드 코드  ·  Claude Code  ·  크론 자동화  ·  CronCreate  ·  반복 작업 예약  ·  GitHub Actions 스케줄  ·  정기 자동화

채용정보
공지사항
인사이트
MY