7 Expert Tips to Slash Your Claude Code Token Usage
핵심 요약 (Executive Summary)
- Claude Code의 고비용 원인: 프롬프트의 양, 이전 메시지 참조, 읽어온 파일, 도구 출력물 등이 누적된 ‘지저분한 컨텍스트(messy context)’
- 토큰 낭비를 방지하고 비용 효율성을 극대화하기 위해 전체적인 컨텍스트 아키텍처(context architecture)를 설계하고 관리하는 전략적 접근 필요
- 토큰 절약 비법: 모델 선택의 유연성, 메모리 파일(CLAUDE.md)의 슬림화, 서브에이전트 활용, 정밀한 범위 지정 +
| 절감 전략 | 핵심 원리 | 상세 실행 지침 |
| #1. 작업 복잡도에 따른 모델 전환 | 작업 난이도에 최적화된 모델을 선택하여 불필요한 고비용 모델 사용을 방지함 | 기본적으로 Sonnet으로 세션을 시작하고, 심층 분석이나 복잡한 리팩토링 시에만 Opus로 전환함. 단순 작업은 Haiku를 사용하며, /effort 명령어로 사고 예산(thinking budget)을 조정함 |
| #2. CLAUDE.md 최적화 및 경량화 | 매 대화 턴마다 고정적으로 전송되는 프로젝트 가이드 파일의 크기를 최소화함 | 테스트 실행법, 패키지 매니저, 포맷팅 규칙 등 필수 정보만 포함하고 회의록 등은 제외함. ‘조회용 테이블’ 형태로 간결하게 작성하여 유지함 |
| #3. 정확한 파일 및 라인 범위 지정 | 모호한 요청으로 인한 무분별한 파일 탐색과 컨텍스트 낭비를 방지함 | 구체적인 파일 경로와 라인 범위를 지정하여 요청함(예: “src/auth/session.ts 30~90행 분석”). 실행 전 Shift+Tab으로 ‘플랜 모드’를 활성화하여 계획을 검토함 |
| #4. 선제적인 /compact 명령어 사용 | 컨텍스트가 임계치에 도달하기 전에 불필요한 정보를 압축하여 세션을 경량화함 | 중요한 정보가 확정된 직후나 컨텍스트 경고가 발생하기 전에 미리 /compact를 실행하여 대화 이력을 요약함 |
| #5. 서브에이전트(Subagents) 활용 | 장황한 작업을 독립된 컨텍스트를 가진 서브에이전트에게 위임하여 메인 대화의 오염을 막음 | 파일 검색, 로그 덤프, 다단계 추론 등 출력이 긴 작업은 서브에이전트에게 실행시키고 메인 대화에는 결과 요약본만 가져옴 |
| #6. /context 명령어를 통한 진단 | 컨텍스트를 과도하게 점유하는 요소를 식별하여 정밀하게 제거함 | 최적화 전 /context 명령어를 실행하여 어떤 파일이나 도구 출력이 반복 전송되는지 확인하고 불필요한 항목을 로드 해제함 |
| #7. 단순한 툴링 설정 유지 | 연결된 도구의 수를 제한하여 모델의 오버헤드와 컨텍스트 복잡성을 낮춤 | 실제로 빈번한 문제를 해결하는 필수 통합 도구만 사용하고, 단순히 사용 가능하다고 해서 모든 스킬을 로드하지 않음 |
Claude Code 고비용의 원인 및 비용 절감 전략
1. 작업 복잡도에 따른 모델 및 노력 수준 최적화
모든 작업에 가장 비싼 모델을 사용할 필요는 없다. 비용 효율성을 위해 작업의 성격에 맞춰 모델을 전환해야 한다.
- 모델별 비용 차이: API 과금 기준, Opus 모델은 Sonnet보다 토큰당 비용이 5배 더 높다. 구독형 요금제에서도 무거운 모델은 쿼터(Quota)를 더 빠르게 소모한다.
- 권장 워크플로우: 모든 세션은 Sonnet으로 시작하고, 심층적인 분석이나 복잡한 리팩토링이 필요한 경우에만 Opus로 전환한다. 단순하고 기계적인 작업에는 Haiku를 활용한다.
/effort명령어 활용: 모델의 사고 예산(thinking budget)을 직접 제어할 수 있다. 간단한 작업의 경우 노력 수준을 낮추면 출력 토큰을 직접적으로 절약할 수 있다.
2. CLAUDE.md 파일의 전략적 관리
CLAUDE.md는 프로젝트 규칙을 매번 재입력하지 않도록 돕는 유용한 도구이지만, 잘못 관리할 경우 비용의 주범이 된다.
- 지속적 비용 발생: 이 파일은 세션의 모든 턴에서 컨텍스트 윈도우에 로드되며 절대 배제되지 않는다. 예를 들어, 5,000 토큰 크기의 CLAUDE.md는 매 메시지마다 5,000 토큰의 비용을 발생시킨다.
- 최적화 방법: 회의록, 설계 이력, 긴 가이드라인 등은 제외하고 테스트 실행법, 패키지 매니저 정보, 포맷팅 규칙, 아키텍처 제약 사항 등 핵심적인 ‘조회용 테이블’ 형태로 유지해야 한다.
3. 서브에이전트(Subagents)를 통한 컨텍스트 격리
서브에이전트는 독립적인 컨텍스트 윈도우에서 실행되는 별도의 Claude 인스턴스로, 메인 대화 흐름을 깨끗하게 유지하는 데 효과적이다.
- 격리의 이점: 파일 검색, 로그 덤프, 다단계 추론 과정 등 장황한 출력물이 서브에이전트 내에만 머물고, 메인 대화에는 최종 요약본만 전달된다.
- 주의사항: 서브에이전트 실행 자체가 프롬프트 및 도구 정의 등의 오버헤드를 발생시키므로, 단순한 셸 명령어나 Git 작업 같은 작은 작업에는 오히려 비효율적일 수 있다. ‘저장되는 컨텍스트의 가치’가 ‘시작 오버헤드’보다 클 때만 사용해야 한다.
4. 정밀한 범위 지정 및 플랜 모드 활용
모호한 요청은 Claude가 불필요하게 많은 파일을 탐색하게 만들어 토큰을 낭비하게 한다.
- 정확한 경로 및 라인 지정: “인증 코드를 살펴봐줘” 대신 “src/auth/session.ts의 30
90행과 src/api/login.ts의 1060행을 비교해줘”와 같이 구체적으로 명시하여 불필요한 탐색 비용을 차단한다. - 플랜 모드(Shift+Tab): 실행 전 단계별 계획만 출력하는 모드이다. 사용자가 계획을 검토하고 불필요한 단계를 제거함으로써, ‘시행착오(Trial-and-error)’로 인해 발생하는 막대한 토큰 소모를 방지할 수 있다.
5. 선제적인 /compact 명령어 사용
대화가 진행됨에 따라 중요도가 낮은 정보가 누적되므로, 이를 주기적으로 압축해야 한다.
- 타이밍의 중요성: 많은 사용자가 컨텍스트 경고가 뜰 때까지 기다리지만, 이는 이미 세션이 과부하된 상태라 요약의 질이 떨어질 수 있다.
- 전략적 압축: 여러 파일을 검토하거나 명령어를 실행한 직후, 세션이 아직 ‘건강한’ 상태에서
/compact를 실행하면 핵심 정보는 보존하면서 노이즈만 효과적으로 제거할 수 있다.
6. /context 명령어를 통한 진단 및 최적화
토큰 낭비의 원인을 파악하기 위해 현재 컨텍스트 상태를 주기적으로 점검해야 한다.
- 진단 도구:
/context명령어를 사용하여 현재 무엇이 컨텍스트를 점유하고 있는지 확인한다. 이전에 읽었던 대용량 파일, 누적된 도구 출력물, 무거운 메모리 파일 등이 범인일 수 있다. - 데이터 기반 최적화: 맹목적으로 프롬프트를 수정하기보다, 실제로 컨텍스트를 비대하게 만드는 ‘조용한 범인(quiet offender)’을 찾아 제거하는 것이 훨씬 효과적이다.
7. 단순한 툴링 구성 유지
Claude Code에 연결된 외부 도구와 데이터 소스가 많을수록 컨텍스트 오버헤드가 증가한다.
- 미니멀리즘 원칙: 단순히 사용 가능하다는 이유로 모든 기능을 로드하지 말고, 실제 반복되는 문제를 해결하는 데 필요한 통합 기능만 유지해야 한다. 도구가 많아질수록 모델이 관리해야 할 오버헤드도 기하급수적으로 늘어난다.
결론
- Claude Code의 토큰 사용량을 줄이는 핵심: 개별 프롬프트를 다듬는 수준을 넘어, Claude가 보고 있는 정보의 범위를 설계하는 것
- 자동화된 컨텍스트를 제어하고, 탐색 범위를 좁히며, 부수적인 작업이 메인 세션을 오염시키지 않도록 관리함으로써 성능 저하 없이 운영 비용을 절감 가능