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 스케줄 · 정기 자동화