22. 비용·토큰 관리

🎯 이 장의 목표
  • 토큰 비용이 어디서 생기는지(컨텍스트·MCP·서브에이전트·thinking) 이해한다
  • 긴 세션이 왜 "기하급수적 비용 기계"인지 안다
  • 비용을 줄이는 구체 기법들을 안다
  • 사용량을 추적하고 한도를 관리한다

비용은 어디서 나오나

Claude Code는 결국 토큰 소비로 과금됩니다(구독이든 API든). 비용을 키우는 세 변수:

  1. 컨텍스트 크기 — 가장 큰 변수. Claude가 매 턴 처리하는 컨텍스트가 클수록 비싸집니다.
  2. 모델 선택 — 강한 모델일수록 토큰당 단가가 높습니다.
  3. 사용 패턴 — 멀티 인스턴스·자동화·서브에이전트 병렬 실행.
flowchart TB
    subgraph Turn["매 턴 처리되는 것"]
        Sys[시스템 프롬프트+도구 ≈ 18,000 토큰<br/>캐시됨]:::know
        MCP[MCP 서버 도구 정의<br/>서버당 수천~수만 토큰]:::danger
        CM[CLAUDE.md·규칙]:::know
        Hist[대화 이력 전체 재전송<br/>턴이 쌓일수록 증가]:::danger
        Think[extended thinking<br/>output 토큰=input의 약 5배]:::danger
    end

    classDef know fill:#CE93D8,stroke:#8E24AA,color:#000
    classDef danger fill:#EF9A9A,stroke:#E53935,color:#000

📌 핵심 통찰: 매 턴 대화 이력 전체가 재전송됩니다. 1턴은 ~20K 토큰이지만 200턴 세션은 매 턴 ~200K를 보냅니다. 50번째 메시지가 5번째보다 비싼 건 더 어려운 질문이라서가 아니라, 앞의 49개를 다시 읽기 때문입니다. 긴 세션은 기하급수적 비용 기계입니다.

💡 팁
다행히 프롬프트 캐싱이 이 대부분을 거의 공짜로 만듭니다. 한 사례에서 170턴 Opus 세션이 캐싱 없이는 $168, 캐싱으로는 $21이었습니다(입력의 98%가 캐시 읽기). 그래서 5분 이상 쉬면 캐시가 만료되어 전체를 다시 캐시 생성(=비싼 입력 단가)하게 되니, 긴 휴식 전엔 문서로 체크포인트하고 /clear 후 재시작하는 게 낫습니다.

비용 폭주의 8가지 패턴 (경고)

실제로 보고된 사고들 — 알아두면 피할 수 있습니다.

패턴무슨 일
긴 세션 누적매 턴 전체 이력 재전송. 단일 프롬프트가 5시간 예산의 30~90%를 먹기도
병렬 서브에이전트각자 풀 컨텍스트. 23개 서브에이전트가 무인 분석을 계속해 3일간 $47,000 보고 사례
MCP 과다서버당 매 턴 수천~수만 토큰(예: 한 통합이 17,000 토큰)
루트 CLAUDE.md 비대루트 배치는 매 호출 주입. 규칙만으로 컨텍스트의 큰 비중 차지
extended thinking 남용thinking 토큰은 output(=비싼) 단가. 단순 작업엔 낭비
컴팩션 폭주비대해진 컨텍스트를 요약하며 회당 큰 비용
auto-accept 남발멈춤이 없으니 행동 수·세션 길이 증가
캐시 만료휴식 후 전체 프리픽스 재과금

⚠️ 과거 캐싱 버그(2026년 3월)로 경고 없이 10~20배 토큰 인플레이션이 발생한 적도 있습니다. 비용은 능동적으로 모니터링해야 합니다.

비용 줄이기: 실전 기법

flowchart TB
    A[비용 절감]:::result
    A --> B[작업 사이 /clear<br/>무관한 컨텍스트 비우기]:::tool
    A --> C[작업에 맞는 모델<br/>단순=경량, 추론=강한 모델]:::tool
    A --> D[MCP는 쓰는 것만 연결]:::tool
    A --> E[CLAUDE.md는 .claude/rules로<br/>필요 시만 로드]:::tool
    A --> F[thinking 예산 낮추기<br/>단순 작업엔 끄기]:::tool
    A --> G[작은 스코프·구체 프롬프트]:::tool

    classDef result fill:#A5D6A7,stroke:#43A047,color:#000
    classDef tool fill:#90CAF9,stroke:#1E88E5,color:#000
기법방법
작업 사이 /clear무관한 작업 전환 시 컨텍스트 리셋. /rename/clear, 나중에 /resume
컴팩션에 초점 지정/compact 코드 변경과 테스트 출력에 집중 또는 CLAUDE.md에 compact 지침
모델 라우팅단순·기계적 작업은 경량 모델, 큰 리팩터는 강한 모델. 서브에이전트 잡일도 경량으로 (13장)
MCP 절제정말 쓰는 서버만. 일부는 도구 출력을 인덱싱해 컨텍스트를 아끼는 플러그인도 (14장)
CLAUDE.md 위치루트 대신 .claude/rules/(필요 시만 로드). 80~120줄 유지 (9장)
thinking 조절단순 작업은 thinking 예산을 낮추거나(MAX_THINKING_TOKENS) /effort로 낮춤
에이전트 팀 절제팀원에 Sonnet급 사용, 작게 유지, 끝나면 종료. 3-에이전트 팀은 단일의 약 7배 토큰 (13장)
구체적 프롬프트경로·라인 지정으로 탐색 토큰 절약 (21장)
⚠️ 흔한 실수
경량 모델 함정: 진짜 기계적 작업(이름 바꾸기·포맷팅)엔 경량 모델이 좋지만, "단순해 보여도 코드를 읽고 판단해야 하는" 작업엔 틀린 답을 빠르게 내놓아 교정 사이클로 오히려 더 비싸집니다. 판단이 필요하면 강한 모델을.

사용량 추적과 한도

CODE
/usage   : 현재 토큰 사용량 (상태 표시줄에 상시 표시 가능)
/cost    : API 빌링 토큰·예상 비용 (API 사용자)
/stats   : 구독 사용량 (Pro·Max·Team)
/context : 컨텍스트 사용량 색상 그리드
📌 핵심
/cost는 API 빌링을 추적하고 구독 사용량은 추적하지 않습니다 — 구독자는 /stats를 보세요.

구독 한도는 보통 5시간 롤링 윈도우 + 주간 캡의 이중 구조이고, 이 풀은 Claude Code·Claude.ai 채팅·Cowork가 공유합니다. 한쪽을 많이 쓰면 다른 쪽 여력이 줍니다. 한도에 닿으면 윈도우가 리셋될 때까지 새 프롬프트가 멈춥니다.

⚠️ 흔한 실수
요금·한도·모델 단가는 매우 자주 바뀝니다. 구체적 수치(플랜별 한도·토큰 단가)는 본문에 신뢰해 적지 마시고, claude.com/pricing·공식 비용 문서에서 확인하세요. 참고로 엔터프라이즈 평균은 활동일당 약 $13, 월 $150~250 수준으로 보고된 바 있습니다.

💡 구독 vs API: 대략적 경험칙으로, 일관된 일일 사용이면 구독이 유리하고, 변동이 크거나 자동화 위주면 API 종량제가 나을 수 있습니다. 같은 출력이라도 빌링 경로·컨텍스트 관리에 따라 비용이 크게 갈립니다.

이 장에서 배운 것

  • 비용은 컨텍스트 크기·모델·사용 패턴에서 나오며, 매 턴 대화 이력이 재전송돼 긴 세션이 기하급수적이다.
  • 프롬프트 캐싱이 대부분을 거의 공짜로 만들지만, 5분 이상 쉬면 캐시가 만료된다.
  • 비용 폭주 패턴: 긴 세션·병렬 서브에이전트·MCP 과다·루트 CLAUDE.md·thinking 남용·컴팩션 폭주 등.
  • 절감: 작업 사이 /clear·모델 라우팅·MCP 절제·rules 분리·thinking 조절·구체 프롬프트.
  • /usage·/cost·/stats로 추적하고, 한도는 5시간+주간 이중 구조에 채팅·Cowork와 공유됨을 기억한다. 수치는 공식 문서로 확인.

✍️ 확인 문제

  1. 200턴 세션의 50번째 메시지가 5번째보다 비싼 이유는 무엇인가요?
  2. 프롬프트 캐싱의 이점과, 그것이 깨지는 흔한 상황은 무엇인가요?
  3. "단순해 보이는" 작업에 무조건 경량 모델을 쓰면 안 되는 이유는?
다음 장: 23. 보안과 안전 — 자율 에이전트를 안전하게 부리기.