Claude Code는 롤링 윈도우 방식으로 5시간 토큰 예산을 제공합니다. 단, 이 윈도우는 그날의 첫 메시지를 보내는 순간 시작됩니다. 만약 오전 8시 30분에 빠른 질문을 보내고 오전 11시까지 예산을 소진한다면, 오후 1시까지 잠기게 되어 업무 시간 한가운데에서 두 시간을 낭비하게 됩니다.
한 개발자가 이 문제를 깔끔하게 해결했습니다. `claude-warmup`이라고 불리는 이 해결책은 스케줄된 GitHub Action을 사용하여 업무 시작 전에 Claude Haiku에게 한 번의 의미 없는 "hi" 메시지를 보냅니다. 이 한 번의 메시지가 5시간 윈도우를 Claude를 여는 시점이 아닌, 사용자가 선택한 시간에 고정시켜 줍니다.
이것이 작동하는 이유
Claude Code의 예산 윈도우는 첫 메시지를 보낸 시간의 정시에 맞춰 고정됩니다. 오전 6시 15분에 보낸 메시지는 윈도우를 오전 6시로 맞추어 5시간 블록이 오전 6시부터 오전 11시까지 실행됩니다. 오전 중 예산을 소진할 때쯤이면 다음 윈도우는 오전 11시에 즉시 시작됩니다.
이것이 없으면, 윈도우는 Claude에게 첫 메시지를 보내는 시점(종종 오전 중반)에 시작되며, 재설정은 가장 생산적인 시간 한가운데에 오게 됩니다.
워밍업 핑은 거의 비용이 들지 않습니다. 도구나 컨텍스트 없이 Claude Haiku에게 보내는 "hi" 메시지 하나는 무시할 만한 수준의 토큰을 사용합니다.
설정 (6단계)
1. 저장소 포크
gh repo fork vdsmon/claude-warmup --clone
cd claude-warmup
2. OAuth 토큰 생성
Claude Code가 설치된 머신에서 다음을 실행하세요:
claude setup-token
이것은 `sk-ant-oat01-...` 토큰을 출력합니다. 복사하세요. 이 토큰은 약 1년 동안 유효합니다.
3. 토큰을 GitHub Secret으로 저장
gh secret set CLAUDE_OAUTH_TOKEN
프롬프트가 나타나면 토큰을 붙여넣으세요. GitHub Actions는 이를 사용하여 인증할 것입니다.
4. Cron 스케줄 설정
기본값은 UTC 기준 평일 오전 9시 15분입니다. 사용자 본인의 시간대 및 업무 스케줄에 맞게 변경하세요:
gh variable set WARMUP_CRON --body "15 13 * * 1-5"
몇 가지 참조 시간:
| 사용자 시간대 | 오전 9시 시작을 위한 워밍업 | Cron 표현식 |
|---|---|---|
| UTC | 오전 8시 45분 UTC | 45 8 * * 1-5 |
| 미국 동부 (EST) | 오전 8시 45분 = 13:45 UTC | 45 13 * * 1-5 |
| 미국 태평양 (PST) | 오전 8시 45분 = 16:45 UTC | 45 16 * * 1-5 |
| CET (중앙 유럽) | 오전 8시 45분 = 7:45 UTC | 45 7 * * 1-5 |
5. 워크플로우 테스트
gh workflow run warmup.yml
포크한 저장소의 Actions 탭을 확인하여 성공적으로 실행되는지 확인하세요.
6. 작동 확인
다음날 아침, Claude Code를 열고 다음을 실행하세요:
/usage
세션 재설정 시간은 고정된 시간에 맞춰져야 합니다. 워밍업을 오전 8시 45분에 실행하도록 설정했다면, 윈도우는 오전 8시에 재설정됨을 보여야 합니다.
대안: 로컬에서 실행하기
GitHub Actions를 사용하고 싶지 않다면, cron 또는 macOS launchd를 통해 터미널에서 워밍업 명령어를 직접 실행할 수 있습니다:
claude -p "hi" --model haiku --no-session-persistence
동일한 타이밍 로직을 사용하여 이 명령어를 로컬 크론탭(crontab -e)에 추가하세요. GitHub 서버에서 오는 것이 아니라 하루를 시작하기 전에 메시지가 전송되는 것이 핵심이므로, 동일하게 작동합니다.
예산 오래 사용하는 팁
재설정 윈도우를 제어하는 것이 도움이 되지만, 예산을 가장 빨리 소진시키는 요소를 알아두면 그에 맞춰 계획을 세울 수 있습니다.
확장된 사고(Extended Thinking)는 토큰을 빠르게 소모합니다. Claude가 복잡한 문제를 단계별로 추론할 때, 직접적인 답변보다 훨씬 더 많은 토큰을 사용합니다. 확장된 사고는 아키텍처 결정, 까다로운 로직 디버깅 등 실제로 필요한 작업에만 사용하고, 빠른 검색이나 구조를 이미 알고 있는 코드 생성에는 비활성화하세요.
컨텍스트를 간결하게 유지하세요. Claude Code는 모든 메시지의 일부로 열린 파일과 최근 터미널 출력을 읽습니다. 컨텍스트가 클수록 각 상호작용에 더 많은 토큰이 소모됩니다. 활발하게 작업하지 않는 파일은 닫고, 기록이 필요 없는 일회성 명령어를 실행할 때는 --no-session-persistence를 사용하세요.
요청을 일괄 처리하세요. 열 가지 작은 질문은 열 가지 모두를 포함하는 하나의 잘 구성된 질문보다 비용이 더 많이 듭니다. 질문하기 전에 30초 동안 명확하고 완전한 프롬프트를 작성하세요. 더 나은 답변을 얻을 수 있고, 토큰 소모도 줄일 수 있습니다.
간단한 작업에는 Haiku를 사용하세요. 변수 이름 변경, 상용구 함수 생성 또는 구성 파일 재포맷과 같은 작업을 Claude에게 요청할 때는 Opus나 Sonnet이 필요하지 않습니다. 경량 작업에는 --model haiku를 지정하고, 실제 추론이 필요한 작업에는 더 무거운 모델을 아껴두세요.
Claude Code와 함께 API를 구축한다면
많은 개발자들이 API를 구축하거나 테스트할 때 Claude Code를 사용합니다. 이런 워크플로우를 가지고 있다면, Apidog가 자연스럽게 잘 맞을 것입니다. Postman, Swagger, 그리고 별도의 목업 도구 사이를 전환할 필요 없이, 한 곳에서 API 스키마를 설계하고, 목업 서버를 생성하고, 자동화된 테스트를 실행할 수 있습니다. Claude Code가 엔드포인트를 작성하면, 도구 간에 아무것도 복사할 필요 없이 Apidog에서 즉시 테스트할 수 있습니다.
버튼
무료로 시작할 수 있으며 REST, GraphQL, gRPC를 기본적으로 지원합니다.
유의할 점
- 윈도우는 한 번 설정되면 고정됩니다. 첫 메시지가 전송되면 5시간 블록이 고정됩니다. 하루 중간에 변경되지 않습니다.
- 예산은 공유됩니다. claude.ai, Claude Code, 그리고 Claude Desktop 모두 동일한 풀에서 예산을 사용합니다. 확장된 사고(Extended Thinking) 및 도구 호출은 일반 채팅보다 더 빠르게 예산을 소모합니다.
- 7일 한도도 있습니다. 이 기술은 일일 재설정 윈도우를 제어하는 것이지, 주간 예산 한도를 제어하는 것이 아닙니다.
- 토큰은 정시에 재설정됩니다. 오전 8시 47분의 워밍업은 오전 8시에 고정되며, 8시 47분이 아닙니다. 원하는 시간보다 15분 일찍 크론을 계획하세요.
Claude Code 세션이 자꾸 잘못된 시간에 고갈된다면, 이 해결책은 10분도 안 걸려 설정할 수 있으며 매일 자동으로 실행됩니다. 전체 저장소는 github.com/vdsmon/claude-warmup에서 확인할 수 있습니다.
