Claude Code의 토큰 비용 문제는 대부분 프롬프트 자체가 아니라 컨텍스트 구조에서 비롯된다. 이전 메시지, 도구 출력, 읽은 파일, 메모리 파일, 백그라운드 지침이 모두 함께 전달되기 때문이다. 핵심 원칙은 “더 나은 프롬프트”가 아니라 Claude가 실제로 필요한 것만 보도록 워크플로우를 설계하는 것이다.
1. 태스크 복잡도에 따라 모델 전환하기
API 빌링에서 Opus는 Sonnet 대비 토큰당 5배 비싸다. 구독 플랜에서는 무거운 모델이 사용량을 더 빠르게 소진한다.
/model sonnet # 일상적인 작업: 테스트 작성, 단순 수정, 코드 설명, 리팩토링
/model opus # 복잡한 작업: 멀티파일 아키텍처 결정, 복잡한 크로스 시스템 디버깅
/model haiku # 빠른 작업: 조회, 형식 변환, 이름 변경, 반복 작업세션을 항상 Sonnet으로 시작하라. 깊은 분석이나 복잡한 리팩토링이 필요할 때만 Opus로 전환하고, 기계적인 작업은 Haiku를 쓴다. /effort 명령어로 노력 수준도 직접 조정할 수 있다.
2. CLAUDE.md를 작고 유용하게 유지하기
CLAUDE.md는 세션 전체에 걸쳐 모든 턴에 로드된다. 5,000 토큰짜리 CLAUDE.md는 메시지를 2번 보내든 200번 보내든 매 턴마다 5,000 토큰을 소비한다.
넣어야 할 것: 테스트 실행 방법, 패키지 매니저, 형식 규칙, 아키텍처 제약, 건드리지 말아야 할 디렉토리
넣지 말아야 할 것: 미팅 노트, 설계 히스토리, 긴 구현 가이드
CLAUDE.md는 룩업 테이블처럼 작동해야 한다. 거대한 지식 덤프가 아니라.
3. 서브에이전트로 장황한 작업 분리하기
서브에이전트는 독립된 컨텍스트 윈도우에서 실행된다. 파일 검색, 로그 덤프, 멀티스텝 추론 등 모든 장황한 출력이 서브에이전트 안에 격리되고, 요약만 메인 대화로 반환된다.
단, 서브에이전트가 항상 저렴한 것은 아니다. 아키텍처 자체가 오버헤드(프롬프트, 도구 정의, 도구 호출 왕복)를 추가한다. 작은 태스크나 간단한 셸 작업에서는 오히려 낭비가 된다.
실용 규칙: 절약되는 메인 컨텍스트 오염이 시작 오버헤드보다 클 때 서브에이전트를 사용하라.
4. 정확한 파일과 라인 범위를 지정하기
“인증 코드 전체를 둘러봐”는 비싸다. 문제가 1~2개 파일에 있을 때 더욱 그렇다.
| 모호한 요청 | 구체적인 요청 |
|---|---|
| “인증 코드에서 뭐가 잘못됐는지 봐줘” | “src/auth/session.ts 30~90줄과 src/api/login.ts 10~60줄의 불일치를 설명해줘” |
비싼 작업 전에는 플랜 모드를 활용하라 (Shift+Tab). 플랜 모드에서 Claude는 변경하지 않고 단계별 계획만 출력한다. 불필요한 단계를 제거한 후 일반 모드로 전환하면 시행착오 실행을 막을 수 있다.
5. /compact를 적기에 선제적으로 사용하기
타이밍이 중요하다. Claude가 여러 파일을 검토하고, 명령어를 실행하고, 몇 가지 실패를 거친 후가 최적의 compact 시점이다. 이 시점에 세션을 압축하면 중요한 정보만 남기고 나머지를 걷어낸다.
흔한 실수는 /compact를 너무 늦게 쓰는 것이다. Claude가 뭔가를 잊거나 컨텍스트 경고가 뜰 때까지 기다리면 이미 세션이 과부하 상태여서 요약의 품질이 낮아진다. 세션이 “건강”할 때 compact하면 핵심 정보 유지율이 높아진다.
6. /context로 먼저 진단하기
최적화 전에 무엇이 비용을 일으키는지 파악하라. 문제는 보이는 프롬프트가 아닐 수 있다. Claude가 이전에 읽은 큰 파일, 누적된 도구 출력, 무거운 메모리 파일, 추가 도구 오버헤드가 모든 턴에 실려 올 수 있다.
/context 명령어로 컨텍스트를 진단하라. 많은 경우 워크플로우 전체를 바꾸는 것보다 매 턴마다 실려오는 “조용한 범인” 하나를 제거하는 것이 더 효과적이다.
7. 도구 설정을 최소화하기
연결된 도구가 많을수록 컨텍스트 오버헤드도 커진다. 모델은 불필요한 도구 정의, 도구 호출 왕복, 관련 없는 도구 출력을 계속 끌고 다닌다.
진짜 반복적인 문제를 해결하는 통합만 유지하라. “쓸 수 있으니까”라는 이유로 Claude Code에 모든 스킬을 로드하지 마라.
핵심 원칙
프롬프트를 하나하나 최적화하는 것보다 Claude가 실제로 필요한 것만 보도록 워크플로우 구조를 설계하는 것이 훨씬 효과적이다.
프롬프트 최적화를 멈추고 컨텍스트 아키텍처를 설계하라.
관련 문서
- claude-code — Claude Code 개요 및 기능 소개
참고 자료
- 7 Practical Ways to Reduce Claude Code Token Usage — KDnuggets (2026-05-04)