"왜 Claude Code는 요청할 때마다 40만 입력 토큰을 소모할까? 왜 이렇게 요금이 많이 나올까?" Claude Code 사용자들이 사용량 통계를 확인할 때 가장 먼저 하는 질문입니다. 사실 이 40만 토큰의 대부분은 이미 캐시 적중(Cache Hit)이 발생한 상태일 가능성이 높으며, 실제 비용은 표면적인 수치의 1/10 수준일 수 있습니다. 하지만 캐시가 적중하지 않는다면, 청구서 금액은 정말 마음 아픈 수준이 될 것입니다.
핵심 가치: 이 글을 읽고 나면 Claude Code의 자동 캐시 메커니즘, 캐시가 무효화되는 8가지 흔한 원인, 그리고 입력 토큰을 40만에서 5만으로 줄일 수 있는 6가지 실전 팁을 이해하게 됩니다.

Claude Code의 Prompt Caching 자동 캐싱 메커니즘 상세 분석
Claude Code는 자동으로 캐시를 활용하나요?
네, 그렇습니다. Claude Code는 모든 API 요청에서 Anthropic의 Prompt Caching을 자동으로 활성화하며, 별도의 설정이 필요 없습니다. 이는 선택 사항이 아닌 내장된 기본 동작입니다.
Claude Code에서 메시지를 보낼 때마다 API로 전송되는 실제 내용은 다음과 같은 순서로 구성됩니다.
| 구성 순서 | 내용 | 크기 추정 | 캐싱 동작 |
|---|---|---|---|
| 1단계 | 도구 정의(Read/Edit/Bash 등) | ~5,000 토큰 | 거의 변하지 않음, 높은 적중률 |
| 2단계 | 시스템 프롬프트 + CLAUDE.md | ~3,000-10,000 토큰 | 세션 내 불변, 높은 적중률 |
| 3단계 | 대화 기록(이전 모든 메시지) | 지속적으로 증가 | 접두사 일치, 점진적 캐시 누적 |
| 4단계 | 현재 새 메시지 | 가변적 | 캐시 적중 불가 |
핵심 메커니즘: 캐싱은 **접두사 일치(Prefix Matching)**를 기반으로 합니다. 요청의 앞부분 N개 토큰이 이전에 캐시된 내용과 완전히 일치하기만 하면, 해당 N개 토큰은 캐시에서 불러옵니다. 지속적인 대화에서 20번째 턴이 되면 입력 토큰의 95% 이상이 보통 캐시에서 적중하게 됩니다.
캐시 비용: 왜 캐시 적중이 중요한가요?
| 작업 유형 | 기본 입력 가격 대비 | Sonnet 4 실제 가격/MTok | Opus 4 실제 가격/MTok |
|---|---|---|---|
| 일반 입력(캐시 없음) | 1x | $3.00 | $15.00 |
| 5분 캐시 쓰기 | 1.25x | $3.75 | $18.75 |
| 1시간 캐시 쓰기 | 2x | $6.00 | $30.00 |
| 캐시 적중/읽기 | 0.1x | $0.30 | $1.50 |
| 출력 | — | $15.00 | $75.00 |
구체적인 예시: 요청에 40만 입력 토큰이 포함된 경우:
시나리오 A: 캐시 없음
├── 40만 토큰 × $3/MTok (Sonnet) = 요청당 $1.20
시나리오 B: 95% 캐시 적중 (일반적인 Claude Code 세션)
├── 캐시 적중 38만 토큰 × $0.30/MTok = $0.114
├── 캐시 쓰기 1만 토큰 × $3.75/MTok = $0.0375
├── 새 입력 1만 토큰 × $3/MTok = $0.03
├── 합계 = 요청당 $0.18
└── 실제 비용은 캐시 없을 때의 15% 수준
🎯 기술 팁: APIYI(apiyi.com)를 통해 Claude API를 호출할 때도 Prompt Caching 메커니즘이 동일하게 지원되며,
캐시 적중 시 입력 비용이 90% 절감됩니다. API로 Claude를 통합하는 프로젝트라면
캐시 적중률을 극대화할 수 있도록 프롬프트 구조를 설계하는 것이 좋습니다.
캐시 TTL: Max 사용자를 위한 숨겨진 혜택
| 구독 플랜 | 캐시 TTL | 쓰기 비용 | 설명 |
|---|---|---|---|
| API 종량제 | 5분 | 1.25x | 5분 이상 작업 없으면 캐시 만료 |
| Pro / Team | 5분 | 1.25x | 위와 동일 |
| Max 5x / 20x | 1시간 | 2x | 쓰기 비용은 비싸지만 캐시 유지 시간 12배 |
Max 사용자는 캐시 쓰기 비용이 2배(표준 1.25배 대비)이지만, 1시간의 TTL 덕분에 커피 한 잔 마시고 돌아와도 캐시가 그대로 유지됩니다. 간헐적으로 작업하는 개발자에게는 이 차이가 매우 큽니다.
캐시가 적중될 때마다 TTL 타이머가 초기화되므로, 활발하게 사용하는 동안에는 캐시가 거의 만료되지 않습니다.
캐시가 적중되지 않나요? 8가지 흔한 원인과 해결책

캐시가 무효화되는 근본 원인은 단 하나입니다. 요청의 접두사가 캐시된 내용과 일치하지 않는 것입니다. Claude Code에서 캐시가 무효화되는 8가지 경우는 다음과 같습니다.
1단계: TTL 만료
| 원인 | 트리거 조건 | 영향 범위 | 해결책 |
|---|---|---|---|
| 1. 유휴 시간 초과 | API 사용자 5분 이상, Max 사용자 1시간 이상 미사용 | 전체 캐시 무효화 | 계속 사용하거나 재구축 비용 감수 |
가장 흔한 캐시 무효화 원인입니다. 코딩 중 5분(API 사용자) 또는 1시간(Max 사용자) 이상 자리를 비우면 다음 요청 시 캐시를 처음부터 다시 구축하게 됩니다.
2단계: 내용 변경으로 인한 연쇄 무효화
캐시는 엄격한 계층 구조를 따릅니다: 도구 정의 → 시스템 프롬프트 → 대화 기록. 상위 계층이 변경되면 하위 계층은 모두 무효화됩니다.
| 원인 | 트리거 조건 | 영향 범위 | 심각도 |
|---|---|---|---|
| 2. 모델 전환 | /model 명령어 사용 |
전체 캐시 (모델별로 캐시가 격리됨) | ⚠️ 높음 |
| 3. MCP 도구 추가/삭제 | MCP 서버 설치 또는 제거 | 도구 계층 + 하위 계층 전체 | ⚠️ 높음 |
| 4. 웹 검색 전환 | 웹 검색 활성화 또는 비활성화 | 시스템 계층 + 하위 계층 전체 | ⚠️ 중간 |
| 5. CLAUDE.md 수정 | 프로젝트 설정 파일 편집 후 재시작 | 시스템 계층 + 하위 계층 전체 | ⚠️ 중간 |
3단계: 작업으로 인한 무효화
| 원인 | 트리거 조건 | 영향 범위 | 심각도 |
|---|---|---|---|
| 6. 새 대화 시작 | /clear 또는 새 세션 생성 |
전체 캐시 (대화 기록 초기화) | ⚠️ 높음 |
| 7. /compact 사용 | 대화 기록 직접 압축 | 대화 기록 계층 캐시 무효화 | ⚠️ 중간 |
| 8. /rewind 사용 | 이전 메시지 취소 | 대화 기록 접두사 변경 | ⚠️ 중간 |
놓치기 쉬운 기술적 제한: 최소 캐시 길이
프롬프트가 다음 토큰 수보다 적으면 캐시는 조용히 건너뛰며, 별도의 오류 메시지도 표시되지 않습니다.
| 모델 | 최소 캐시 가능 길이 |
|---|---|
| Claude Opus 4.6 / Haiku 4.5 | 4,096 토큰 |
| Claude Sonnet 4.6 | 2,048 토큰 |
| Claude Sonnet 4.5 / 4 | 1,024 토큰 |
Claude Code의 경우 도구 정의와 시스템 프롬프트만으로 이미 5,000 토큰을 넘기 때문에 이 제한이 거의 발생하지 않습니다. 하지만 API를 통해 직접 애플리케이션을 구축한다면 이 하한선을 주의해야 합니다.
💡 제안: APIYI(apiyi.com)를 통해 Claude API를 호출하여 앱을 개발 중이라면,
시스템 프롬프트 길이가 모델별 최소 캐시 임계값을 넘는지 확인하세요. 그렇지 않으면 캐시가 작동하지 않습니다.
40만 입력 토큰의 정체: Claude Code의 컨텍스트 구성
캐싱 메커니즘을 이해했다면, 이제 여러분을 놀라게 했던 "40만 입력 토큰"이 도대체 무엇으로 구성되어 있는지 파헤쳐 보겠습니다.

토큰 소비의 5가지 주요 원천
| 원천 | 비중 | 40만 중 점유량 | 특징 |
|---|---|---|---|
| 대화 기록 누적 | ~60% | ~24만 | 매 대화마다 전체 기록을 다시 전송 |
| 도구 호출 결과 | ~20% | ~8만 | 파일 읽기, grep 검색 결과가 컨텍스트에 상주 |
| 확장된 사고의 흐름 | ~10% | ~4만 | 이전 단계의 사고 블록(thinking block)이 입력으로 포함 |
| 시스템 프롬프트 + CLAUDE.md | ~5% | ~2만 | 모든 메시지에 포함 |
| 도구 정의 | ~5% | ~2만 | 사용 가능한 모든 도구의 스키마 |
핵심 진실: 대화가 길어질수록 입력은 커진다
Claude Code는 매 요청 시 전체 대화 기록을 다시 전송하는 방식으로 작동합니다. 즉:
- 1회차: 입력 ~2만 토큰 (시스템 프롬프트 + 도구 정의 + 질문)
- 5회차: 입력 ~10만 토큰 (4회차까지의 대화 기록 누적)
- 15회차: 입력 ~25만 토큰 (대량의 파일 읽기 결과 포함)
- 30회차: 입력 ~40만 토큰 이상 (자동 압축 임계값에 근접)
하지만 주의하세요! 이 입력값의 대부분은 캐시 적중(Cache Hit)이 발생합니다. 30회차의 40만 토큰 중, 실제로 새로 추가되어 캐시되지 않은 부분은 1~2만 토큰에 불과할 수 있습니다.
대규모 코드베이스의 특수 문제
Claude Code는 전체 코드베이스를 컨텍스트에 자동으로 로드하지 않습니다. 필요한 파일만 읽어오죠. 하지만 대규모 코드베이스에서는 다음과 같은 일이 발생합니다:
grep검색 한 번에 대량의 결과가 반환되어 모두 컨텍스트로 진입- 탐색을 위해 여러 파일을 읽으면, 각 파일의 내용이 대화 기록에 상주
- 에이전트 모드에서 자율적으로 다단계 작업을 수행하며, 단계별 도구 호출 결과가 계속 누적
사용자 환경에서 매번 40만 토큰이 발생하는 것은 아마도 다음 요인들이 겹쳤기 때문일 것입니다:
- 코드베이스가 커서 Claude Code가 분석을 위해 많은 파일을 읽음
- 대화 횟수가 많아 기록이 누적됨
/compact또는/clear명령어를 제때 사용하지 않음CLAUDE.md파일이 너무 길게 작성됨
6가지 실전 팁: 입력 토큰을 40만에서 5만으로 줄이는 법
팁 1: 정밀한 지시로 전체 스캔 방지하기
가장 중요하면서도 가장 실행하기 쉬운 최적화 방법입니다.
❌ 모호한 지시 (광범위한 파일 스캔 유발):
"이 프로젝트의 성능을 최적화해줘"
"코드에서 버그를 찾아줘"
"이 모듈을 리팩토링해줘"
✅ 정밀한 지시 (필요한 파일만 읽기):
"src/api/handler.ts의 processRequest 함수 응답 시간을 최적화해줘"
"src/auth/login.ts 45번째 줄의 널 포인터 예외를 수정해줘"
"src/utils/format.ts의 formatDate 함수를 moment에서 dayjs로 마이그레이션해줘"
모호한 지시를 내리면 Claude Code는 사용자의 의도를 '이해'하기 위해 Glob + Grep + Read를 사용하여 수많은 파일을 읽게 되며, 각 파일의 내용은 대화 기록에 영구적으로 남게 됩니다. 정밀한 지시를 사용하면 딱 필요한 1~2개의 파일만 읽도록 유도할 수 있습니다.
토큰 절감 효과: 도구 호출 결과 토큰 60~80% 감소
팁 2: /clear 및 /compact 명령 적시 활용
# 관련 없는 작업으로 전환할 때 대화 초기화
/clear
# 대화는 길지만 작업이 끝나지 않았을 때 기록 압축
/compact
# 지시사항을 포함한 압축, 특정 정보 유지
/compact 코드 예제와 API 인터페이스 정의는 유지하고 나머지는 간략화해줘
| 명령어 | 효과 | 권장 상황 | 주의사항 |
|---|---|---|---|
/clear |
전체 대화 기록 삭제 | 완전히 다른 작업으로 전환 시 | 모든 캐시 무효화 |
/compact |
AI가 기록을 요약하여 원문 대체 | 긴 대화 중간 단계 | 일부 캐시 무효화, 컨텍스트 대폭 축소 |
실제 효과: 40만 토큰의 대화도 /compact를 사용하면 보통 5~8만 토큰으로 압축됩니다.
팁 3: CLAUDE.md 파일 최적화
CLAUDE.md는 매 메시지마다 로드됩니다. 10,000 토큰짜리 CLAUDE.md는 30번의 대화 동안 30번 전송됩니다(캐시 적중 시 0.1배 비용만 발생하지만, 여전히 소중한 컨텍스트 공간을 차지합니다).
최적화 제안:
├── CLAUDE.md를 500줄 이내로 유지 (핵심 규칙만)
├── 상세 워크플로우 설명은 Skills로 이동 (필요 시 로드)
├── 참고 문서는 knowledge-base/에 보관 (필요 시 Read)
└── CLAUDE.md 내에 긴 예제 코드를 넣지 않기
🚀 실천 제안: CLAUDE.md를 간소화하면 토큰 소모가 줄어들 뿐만 아니라,
Claude Code가 핵심 규칙에 더 집중하게 만듭니다.
APIYI(apiyi.com)를 통해 유사한 AI 코딩 어시스턴트를 구축 중이라면,
마찬가지로 시스템 프롬프트 길이를 제어하는 것을 권장합니다.
팁 4: Subagent를 사용하여 방대한 출력 격리하기
출력량이 많은 작업을 수행해야 할 때는 직접 실행하는 대신 Subagent를 사용하세요.
❌ 메인 대화에서 직접 실행 (출력 전체가 메인 컨텍스트로 유입):
"테스트 스위트를 실행하고 실패 원인을 분석해줘"
→ 테스트 출력에 50,000+ 토큰이 포함될 수 있으며, 대화 기록에 영구적으로 남음
✅ Claude Code의 Subagent 사용 (출력을 하위 프로세스에 격리):
"하위 작업을 사용하여 테스트 스위트를 실행하고, 실패한 테스트 이름과 원인만 요약해서 알려줘"
→ 메인 컨텍스트에는 약 500 토큰의 요약본만 추가됨
토큰 절감 효과: 단일 작업당 메인 컨텍스트 유입 토큰 10,000~50,000 감소
팁 5: 적절한 모델 및 effort 레벨 선택
| 작업 유형 | 추천 모델 | effort 레벨 | 설명 |
|---|---|---|---|
| 단순 수정/포맷팅 | Sonnet | low | 깊은 사고 불필요 |
| 일반 개발 | Sonnet | medium | 가성비 최고 |
| 복잡한 아키텍처 설계 | Opus | high | 깊은 추론 필요 |
| 코드 리뷰 | Sonnet | medium | Opus보다 가성비 우수 |
# 사고 깊이를 낮춰 thinking 토큰 감소 (이후 입력 토큰으로 전환됨)
# 단순 작업 시 더 낮은 effort 설정
/effort low
# 또는 환경 변수로 사고 토큰 상한 제어
MAX_THINKING_TOKENS=8000
확장된 사고 과정(thinking)은 이후 대화에서 입력 토큰의 일부가 됩니다. effort 레벨을 낮추면 이후 대화에서 누적되는 토큰을 크게 줄일 수 있습니다.
팁 6: /context 명령으로 토큰 분포 모니터링
# 현재 토큰 사용 분포 확인
/context
/context 명령은 현재 컨텍스트 내 각 부분의 토큰 점유율을 보여주어, 무엇이 공간을 차지하고 있는지 파악하게 도와줍니다. 흔히 발견되는 문제:
- 특정 grep 검색 결과가 20,000 토큰을 차지하지만 유용한 정보는 5%뿐인 경우
- 이전에 읽은 대용량 파일이 더 이상 필요 없는데도 컨텍스트에 남아 있는 경우
- CLAUDE.md가 예상보다 많은 공간을 차지하는 경우
문제를 발견하면 상황에 맞춰 /compact나 /clear를 사용해 정리하세요.
💰 비용 제안: API 종량제 사용자라면 이러한 최적화 팁이 청구 금액을 직접적으로 낮춰줍니다.
APIYI(apiyi.com) 플랫폼의 사용량 통계 기능을 통해 요청별 토큰 분포를 명확히 확인하고,
비용이 발생하는 지점을 찾아내 보세요.
실전 사례: 일일 비용 $60에서 $8로 절감하기
다음은 실제 최적화 과정을 담은 사례입니다.
최적화 전 (대규모 Python 프로젝트, Claude Code 헤비 유저)
일일 사용 현황:
├── 대화 횟수: ~50회/일
├── 평균 입력 토큰: 35-45만 토큰/회
├── 캐시 적중률: ~70% (잦은 /clear 및 모델 전환으로 인한 손실)
├── 일일 API 비용 (Opus 4): ~$60
└── 월간 비용: ~$1,320
최적화 후 (6가지 팁 적용)
일일 사용 현황:
├── 대화 횟수: ~40회/일 (더 정교해져서 횟수가 줄어듦)
├── 평균 입력 토큰: 8-12만 토큰/회 (정밀한 프롬프트 + 주기적인 compact)
├── 캐시 적중률: ~92% (불필요한 캐시 중단 감소)
├── 일일 API 비용 (Sonnet 4 위주, Opus는 복잡한 작업에만 사용): ~$8
└── 월간 비용: ~$176
| 최적화 항목 | 절감 비중 | 설명 |
|---|---|---|
| 모호한 스캔 대신 정밀한 프롬프트 | ~35% | 가장 큰 효과 |
| 적절한 /compact 및 /clear 사용 | ~25% | 누적 팽창 제어 |
| Opus 대신 Sonnet 사용 (작업의 80%) | ~20% | 모델 다운그레이드 체감 제로 |
| CLAUDE.md 간소화 | ~8% | 매 회차 고정 오버헤드 감소 |
| Subagent로 긴 출력 격리 | ~7% | 대규모 결과가 컨텍스트를 오염시키는 것 방지 |
| effort 레벨 낮추기 | ~5% | 사고(thinking) 토큰 누적 감소 |
자주 묻는 질문 (FAQ)
Q1: Claude Code에 표시되는 40만 토큰이 실제 청구되는 40만 토큰인가요?
아니요. Claude Code는 자동으로 프롬프트 캐싱을 활성화합니다. 활성 세션 내에서 입력 토큰의 95% 이상이 보통 캐시 적중이 되며, 비용은 기본 가격의 0.1배만 청구됩니다. 40만 토큰 중 실제 전체 가격으로 계산되는 것은 2~4만 토큰 정도일 수 있습니다. /context 명령어로 실제 캐시 적중률을 확인할 수 있습니다. APIYI(apiyi.com)를 통해 API를 호출해도 동일하게 캐싱 메커니즘이 지원됩니다.
Q2: Max 월간 구독 플랜을 사용 중인데 토큰 소모량을 신경 써야 하나요?
신경 써야 합니다. 이유는 다르지만요. Max 플랜은 토큰 단위로 과금되지는 않지만, 주간 사용량 제한이 있습니다. 토큰 소모량이 너무 많으면 제한에 더 빨리 도달하게 됩니다. 컨텍스트를 간소화하면 사용 가능 시간을 늘릴 수 있을 뿐만 아니라, Claude Code가 사용자의 요구사항을 더 정확하게 이해하게 됩니다(컨텍스트가 정밀할수록 답변의 질이 좋아집니다).
Q3: /compact와 /clear 중 무엇이 더 좋나요?
상황에 따라 다릅니다. 완전히 다른 작업을 시작하려 한다면 /clear로 깔끔하게 비우는 것이 좋습니다. 만약 같은 작업을 이어가고 있는데 대화가 너무 길어졌다면, /compact를 사용하여 핵심 컨텍스트는 유지하면서 용량을 압축하세요. /compact는 /compact 모든 코드 수정 기록과 API 인터페이스 정의 유지와 같이 사용자 지정 명령어를 지원합니다.
Q4: 최신 버전 Claude Code로 업데이트하면 자동으로 토큰 사용량이 최적화되나요?
네, 항상 최신 버전을 유지하는 것을 권장합니다. Anthropic은 Claude Code의 컨텍스트 관리 전략을 지속적으로 개선하고 있습니다. 자동 압축 트리거 시점 최적화(현재 컨텍스트의 약 83.5% 점유 시 트리거), MCP 도구 정의 지연 로딩(도구 이름만 로드하고 실제 사용할 때 전체 스키마 로드) 등이 포함됩니다. 새 버전은 보통 더 높은 캐시 적중률과 스마트한 컨텍스트 관리를 제공합니다.

요약: 캐싱 이해 + 정밀한 사용 = 비용 관리의 핵심
Claude Code의 프롬프트 캐싱(Prompt Caching)은 매우 강력한 자동 최적화 메커니즘입니다. 별도의 설정 없이도 알아서 비용을 절감해주죠. 하지만 작동 원리와 캐시가 무효화되는 조건을 이해하면, 비용 절감 효과를 "자동 70%"에서 "능동적 95%" 수준까지 끌어올릴 수 있습니다.
다음 3가지 핵심 원칙을 기억하세요:
- 캐시 활성 상태 유지: 불필요한 작업으로 캐시를 끊지 마세요(모델을 자주 변경하거나 무분별한
/clear사용 지양). - 컨텍스트 팽창 제어: 정밀한 지시어 사용 + 주기적인
/compact수행으로 대화 기록이 무한정 늘어나지 않도록 관리하세요. - 적절한 도구와 모델 선택: 80%의 작업은 Sonnet으로 충분합니다. Opus는 정말 필요한 상황에만 사용하세요.
API 종량제 사용자의 경우, APIYI(apiyi.com)를 통해 Claude API 호출을 통합 관리하고, 플랫폼의 사용량 모니터링 기능을 활용하여 토큰 소비를 지속적으로 최적화하는 것을 추천합니다. 인터랙티브한 작업을 많이 하시는 분들은 Claude Max 월간 구독 플랜을 선택하고, 본문의 최적화 팁을 병행하여 최고의 가성비를 경험해 보세요.
📝 작성자: APIYI 기술팀 | APIYI apiyi.com – 300+ AI 대규모 언어 모델 API 통합 접속 플랫폼
참고 자료
-
Anthropic 프롬프트 캐싱 문서: 공식 캐싱 메커니즘 상세 설명
- 링크:
docs.anthropic.com/en/docs/build-with-claude/prompt-caching - 설명: 캐시 TTL, 가격 배율 및 최소 길이 요구 사항
- 링크:
-
Claude Code 비용 관리 가이드: 공식 토큰 최적화 제안
- 링크:
code.claude.com/docs/en/costs - 설명: Anthropic 공식 권장 비용 관리 전략
- 링크:
-
Claude Code 모범 사례: 컨텍스트 관리 및 효율성 최적화
- 링크:
anthropic.com/engineering/claude-code-best-practices - 설명: 정밀한 지시어, compact 사용법 등 실전 팁 포함
- 링크: