LLM에서 토큰 절약하기: Claude Code 실전 가이드
LLM에서 토큰 절약하기: Claude Code 실전 가이드
$200짜리 구독 10개를 태우는 건 문제가 아닙니다. 문제는 그걸 의미 있게 쓰는 겁니다. 아래는 제가 Claude Code로 일상적으로 사용하는 토큰 절약 실전 방법들입니다.
1. 우리는 어떻게 돈을 내고 있나
Claude Code는 input과 output 토큰을 각각 과금합니다. Input은 컨텍스트에 들어가는 모든 것 — 시스템 프롬프트, 채팅 기록, 파일, 스크린샷. Output은 모델이 생성하는 내용입니다.
채팅의 모든 메시지는 누적된 컨텍스트 전체를 input에 추가합니다. 1M 컨텍스트 Opus를 사용 중이라면, 모든 메시지가 백만 토큰을 매번 새로 보내는 것처럼 과금됩니다. Output도 컨텍스트를 채우는 데 기여합니다 — 모든 응답마다 컨텍스트가 계속 커집니다.
결론: 대화가 짧을수록 저렴합니다. 컨텍스트가 작을수록 저렴합니다. 모델이 적게 “생각”할수록 저렴합니다.
2. Subagent는 필수
메인 프로세스(리드)는 직접 아무것도 하지 않아야 합니다. 리드의 임무는 조정하고 위임하는 것입니다. 모든 작업은 작은 컨텍스트를 가진 subagent가 수행합니다.
이유:
- 리드 프로세스의 컨텍스트는 100–200K 수준에서 유지되며 계속 커지지 않습니다
- Subagent가 작업을 마치면 컨텍스트가 해제됩니다
- 수십 개의 에이전트를 병렬로 실행할 수 있습니다
설정 방법:
메인 프로세스 (Opus, 200K 컨텍스트)
├── 에이전트 1 (Haiku, 짧은 컨텍스트) — 스크립트 처리
├── 에이전트 2 (Sonnet, 짧은 컨텍스트) — 테스트 작성
└── 에이전트 3 (Haiku, 짧은 컨텍스트) — 리팩토링
대량 작업(예: 8000개 스크립트 처리)의 경우 — 스크립트 하나당 subagent 하나, Haiku 모델. 하나의 채팅으로 모든 것을 돌리는 것보다 훨씬 저렴합니다.
3. 컨텍스트와 환각 — 비선형 관계
100K 컨텍스트의 Opus가 1M 컨텍스트의 Opus보다 정확하게 작동합니다. 1M 컨텍스트에서는 환각이 비선형적으로 증가합니다. 즉, 큰 컨텍스트는 비싸고 품질도 떨어집니다.
결론: 컨텍스트를 콤팩트하게 유지하세요. 500K짜리 채팅 하나보다 100K짜리 채팅 5개가 낫습니다.
4. Skill이 해결해 줍니다
Skill은 필요할 때만 로드되고 항상 컨텍스트에 상주하지 않는 사전 설정 프롬프트입니다. 많은 프레임워크가 작업을 위해 가장 먼저 skill을 준비/다운로드합니다.
MCP 서버(자신의 명령어를 항상 컨텍스트에 로드)와 달리, skill은 필요할 때만 활성화됩니다. Opus 4.5 이전에는 MCP에서 많은 토큰이 낭비되었습니다 — 지금은 문제가 해결되었지만, “MCP를 skill과 명령어로 교체”하는 접근은 여전히 절약에 유효합니다.
Caveman
Caveman은 Claude Code(및 다른 에이전트)용 오픈소스 스킬·플러그인으로, 기술적 정확성을 유지한 채 “caveman speak” 스타일로 매우 짧게 답하게 합니다 — §1의 “대화가 짧을수록 저렴”을 구체화한 사례입니다. 저장소 벤치마크에서는 평균 output 토큰 약 65% 절감을 보고합니다; caveman-compress는 메모리 파일 속 문장을 압축해 input을 줄입니다.
5. 중국 모델과 저렴한 구독
Alibaba Cloud, 중국 구독 — 가격/토큰 비율에서 크게 유리합니다. ~$30 구독이 Anthropic $200와 비슷한 양의 토큰을 제공합니다.
실전 팁:
- 모델 프로바이더를 전환할 수 있는 Claude 래퍼를 사용합니다
- 글로벌 env 변수는 수정하지 않고 — 래퍼 실행 시에만 필요한 변수를 전달합니다
- Gemini도 비슷하게 사용할 수 있는 저렴한 구독이 있습니다
아직 “여러 프로바이더의 모델을 Claude에 직접 통합”하는 완성된 솔루션은 없지만, 래퍼로 80%的需求를 충족할 수 있습니다. 그중 하나인 Clother는 글로벌 설정을 건드리지 않고 다양한 모델 프로바이더로 Claude Code를 실행할 수 있게 해줍니다.
6. 지식 그래프와 RAG: 토큰 10배 절약
LightRAG
LightRAG — 지식 그래프와 LLM을 연결하는 접근법. 전체 컨텍스트를 로드하는 대신 구조화된 관련 정보 추출을 통해 토큰 사용량을 최대 10배까지 줄일 수 있습니다.
a8e
ivansglazunov의 개발 — 저자가 은둔 모드로 작업하고 공개를 많이 하지 않아 아직 프로젝트를 제대로 볼 수는 없습니다. 사서-RAG처럼 작동합니다: 들어오는 모든 데이터를 데이터베이스에 던집니다. 아이디어는 그래프와 LLM을 연결하여 더 정확하고 저렴하게 컨텍스트를 추출하는 것입니다. 이 영상에서 설명하는 기술과 비슷한 접근입니다.
cmdop-claude
cmdop-claude — markolofsen의 접근법. 그래프로는 Merkle 트리를 사용합니다. 핵심 아이디어: 거의 무료인 중국 LLM을 백그라운드에서 돌려 .claude 폴더를 정리 — 메인 모델을 위한 컨텍스트를 준비하는 것입니다.
7. 에이전트 관리 프레임워크
Superpowers
Claude Code용 인기 프레임워크로, 준비된 skill, 패턴, 파이프라인 세트를 제공합니다.
AI Factory
ai-factory — AI 에이전트 관리용 흥미로운 프레임워크. aif-handoff와 함께 사용하면 칸반 보드와 필터가 있는 프론트엔드를 사용할 수 있습니다.
핵심 아이디어: 사람이 초기 작업을 설정하고, AI가 이를 분해하지만 준비된 계획의 사람 승인 없이는 작업이 시작되지 않습니다. 이것이 토큰을 절약(재작업 감소)하고 통제권을 제공합니다.
8. 실전 팁
High effort와 reasoning 비활성화로 비용 절감이 가능합니다. 모든 작업이 모델의 “깊은 사고”를 필요로 하지는 않습니다.
Skill 대신 MCP. Opus 4.5 이전에는 MCP를 skill로 교체하는 것이 상당한 절약 효과가 있었습니다. 지금은 차이가 줄었지만, 대량 작업에서는 여전히 유효한 접근법입니다.
Subagent 모델 관리. Subagent가 어떤 모델을 사용할지 지정할 수 있습니다. 루틴 작업에는 Haiku, 복잡한 작업에는 Sonnet이나 Opus를 사용하세요.
--bare 모드 — 깔끔한 시작. --bare 플래그는 hook, LSP, 플러그인 동기화, 자동 메모리, 백그라운드 프리로딩 없이 Claude Code를 실행하며 — 가장 중요한 것은 CLAUDE.md 자동 감지 없이 실행합니다. 이 모든 것은 보통 시스템 프롬프트에 로드되어 첫 메시지 전부터 토큰을 소모합니다. bare 모드에서는 컨텍스트가 최소로 시작하며, 필요한 데이터는 --system-prompt, --append-system-prompt, --add-dir 또는 --mcp-config로 정밀하게 전달할 수 있습니다. 불필요한 사전 프롬프트가 순수한 낭비인 대량 subagent에 이상적입니다.
9. Hook — 자동 절약
Hook은 Claude Code 내부의 이벤트에 반응하여 실행되는 스크립트입니다. .claude/settings.json에서 설정하며, 토큰을 절약하는 루틴을 자동화할 수 있습니다.
Hook 유형
- PreToolUse — 도구 호출 전에 실행. 입력 데이터를 필터링하거나 수정할 수 있습니다.
- PostToolUse — 도구 호출 후에 실행. 자동 포맷팅과 후처리에 유용합니다.
- PreCompact — 컨텍스트 압축 전에 실행. 중요한 정보를 보존할 수 있습니다.
- Stop — 에이전트가 작업을 마칠 때 실행. 완료 여부를 확인할 수 있습니다.
- SessionStart — 세션 시작 시 실행. 컨텍스트 프리로드에 유용합니다.
유용한 Hook 예시
테스트 출력 필터링. Anthropic의 공식 예시 — Bash용 PreToolUse hook으로 긴 테스트 출력을 잘라 실패한 테스트와 요약만 남깁니다. 500줄의 로그 대신 10줄만 컨텍스트에 들어가 — 직접적인 토큰 절약입니다.
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"command": "your_filter_script.sh"
}]
}
}
저장 후 자동 포맷팅. Write/Edit용 PostToolUse hook — 파일 저장 후 prettier나 black 실행. 모델이 코드 포맷팅에 토큰을 낭비할 필요 없이 — 로직을 작성하고 포맷팅은 hook이 처리합니다.
파괴적 명령어 방지. Bash용 PreToolUse hook으로 rm -rf, DROP TABLE 같은 명령어를 차단. 직접적인 토큰 절약은 아니지만, 비싼 실수와 재작업을 방지합니다.
Compact 전 컨텍스트 보존. PreCompact hook — 컨텍스트 압축 전에 핵심 결정과 상태를 파일에 저장하여 compact 후에도 잃지 않도록 합니다.
Hook이 할 수 없는 것
N번째 메시지마다 자동 compact는 hook으로 설정할 수 없습니다 — 이건 Claude Code의 내장 기능입니다. 하지만 PreCompact hook을 사용해 압축 시 무엇을 보존할지 관리할 수 있습니다.
10. 스크린샷 — 숨겨진 토큰 소비자
Claude는 공식 문서상 해상도에 따라 이미지를 압축합니다. 실제로는 압축이 체감되지 않습니다. 4K 모니터에서 스크린샷 하나는 비쌉니다.
해결책: 전송 전에 스크린샷을 너비 ~400px로 줄이세요. 텍스트는 여전히 읽을 수 있고, 토큰 소모는 한 자릿수 줄어듭니다.
macOS용으로 제가 만든 Open Screenshot이 있습니다 — 해상도가 축소된 형식으로 바로 스크린샷을 찍어, 수동으로 리사이즈할 필요가 없습니다. 한번 써보세요!
절약 체크리스트
| 방법 | 절약 효과 |
|---|---|
| 짧은 컨텍스트의 subagent | 긴 세션에서 2–5배 |
| 루틴 작업에 중국 모델 | 가격 기준 5–10배 ($30 vs $200) |
| 상시 MCP 대신 skill | 1.5–2배 |
| 출력 필터링용 hook | 테스트/로그 작업에서 1.5–3배 |
| 콤팩트한 스크린샷 | 시각 작업에서 1.5–2배 |
| 전체 컨텍스트 대신 그래프/RAG | 최대 3–5배 |
| 단순 작업에 reasoning 비활성화 | 1.5–2배 |
subagent에 --bare 모드 | 매 실행마다 1.5–2배 |
| 계획 승인이 있는 프레임워크 | 간접적 — 재작업 감소를 통해 |
$200짜리 계정 10개든 얼마든 태울 수 있습니다. 하지만 그건 효율성의 척도가 아닙니다. 목표는 품질을 잃지 않고 비용을 최소한 10배 줄이는 것입니다.