클로드 코드의 과도한 토큰 소모, 오픈코드와 비교한 비용 분석
동일한 모델과 환경에서 테스트한 결과, 클로드 코드는 프롬프트를 읽기 전에도 약 33,000개의 토큰을 소모하여 오픈코드(약 7,000개)보다 훨씬 비효율적인 것으로 나타났습니다. 클로드 코드는 세션 중 캐시를 비효율적으로 재작성하여 비용이 크게 증가하며, 하위 에이전트를 사용할 때마다 부트스트랩 비용이 추가되어 전체 토큰 사용량이 급증합니다. 다만 다단계 작업에서는 요청을 일괄 처리하는 방식 덕분에 총 토큰 사용량이 더 낮을 수 있습니다.
우리는 클로드 코드(Claude Code)와 오픈코드(OpenCode)를 동일한 모델, 동일한 머신, 동일한 작업 환경에서 실행하고, 주고받는 모든 데이터를 분석했습니다. 클로드 코드의 리소스 소모가 훨씬 심각합니다. 두 시스템에 한 줄짜리 응답을 요청했을 때, 클로드 코드는 실제 프롬프트가 처리되기도 전에 시스템 프롬프트, 도구 스키마, 그리고 내부 프레임워크(scaffolding)를 위해 약 33,000개의 토큰을 사용했습니다. 반면 오픈코드는 약 7,000개만 사용했습니다.
클로드 코드는 캐시 측면에서도 매우 비효율적입니다. 우리가 캡처한 모든 실행에서 오픈코드의 요청 접두사(prefix)는 바이트 단위로 완전히 동일했습니다. 이 시스템은 세션당 한 번만 캐시에 데이터를 기록한 뒤, 이후에는 몇 푼 안 되는 비용으로 이를 읽어옵니다. 반면 클로드 코드는 세션 도중에도 수만 개의 프롬프트 캐시 토큰을 반복적으로 재작성(re-write)했으며, 동일한 작업에서 최대 54배나 많은 캐시 토큰을 생성했습니다. 캐시 기록(write)은 당연히 더 높은 비용이 청구되므로, 클로드 코드 사용 시 사용량 대시보드가 급격히 증가하는 원인이 됩니다.
설정(config) 역시 프롬프트를 부풀립니다. 실제 프로덕션 환경의 저장소에 있는 72KB 크기의 지시 파일(AGENTS.md 또는 CLAUDE.md)은 모든 단일 요청에 평균 20,000개의 토큰을 추가합니다. 5개의 소규모 MCP 서버를 연동하면 여기에 추가로 5,0007,000개의 토큰이 더해집니다. 즉, 실제 작업 환경이 첫 번째 요청을 보낼 시점이면, 사용자가 단 한 글자도 입력하기 전에 이미 75,00085,000개의 토큰이 소모된 상태가 됩니다.
하위 에이전트(Subagents)를 사용하면 비용이 더욱 증가합니다. 직접 수행할 때 121,000개의 토큰이면 되는 소규모 작업이 두 개의 하위 에이전트로 분산되면 513,000개의 토큰 비용이 발생합니다. 모든 하위 에이전트는 각자의 초기화(bootstrap) 비용을 가지며, 부모 에이전트가 이 결과물을 다시 소비해야 하기 때문입니다.
물론 클로드 코드에게 유리한 결과도 하나 발견했습니다. 다단계 작업에서는 클로드 코드의 전체 작업 총토큰량이 오픈코드보다 더 낮게 나왔습니다. 오픈코드가 매 차례마다 작은 기본 비용을 반복해서 지불하는 반면, 클로드 코드는 도구 호출을 더 적은 수의 요청으로 묶어(batch) 처리하기 때문입니다. 즉, 시작점의 미터기는 더 높지만, 세션이 어떻게 진행되느냐에 따라 최종 비용이 결정됩니다.
이 글의 나머지 부분에서는 우리가 API 경계에서 이 모든 것을 어떻게 측정했는지, 토큰이 어디로 가는지, 그리고 프롬프트 캐싱이 실제로 비용을 얼마나 절약해주는지 보여줍니다.
왜 이런 측정을 해야 할까요? 토큰 오버헤드는 곧 비용, 지연 시간, 그리고 컨텍스트 예산(context budget)입니다. 프레임워크가 차지하는 토큰은 코드 처리에 사용할 수 없는 작업 컨텍스트 낭비를 의미하며, 이 기본값은 매 차례마다 재전송되거나 캐시에서 다시 읽어옵니다. 특히 유럽연합(EU) AI법 제12조에서 시스템의 동작을 기록하고 이해할 것을 요구하는 프로덕션 환경에서 에이전트 AI를 운영한다면, '내 에이전트가 실제로 무엇을 전송하는가'라는 질문은 단순한 추측이 아닌 데이터로 답해야 하는 문제입니다.
우리의 측정 방법은 다음과 같습니다. 우리는 각 시스템과 모델 엔드포인트 사이에 로깅 프록시(logging proxy)를 배치했습니다. 시스템(Claude Code / OpenCode) → 로깅 프록시(요청 페이로드 및 응답 사용량 캡처) → 모델 엔드포인트 이 프록시는 요청마다 두 가지를 기록합니다. 첫 번째는 시스템 블록, 도구 스키마, 메시지 등 에이전트가 실제로 방출하는 정확한 JSON 페이로드입니다. 두 번째는 API가 반환한 사용량 블록으로, 입력 토큰, 캐시 기록, 캐시 읽기, 출력 토큰을 포함합니다.
우리는 다음 조건에서 테스트를 진행했습니다. • 시스템: Claude Code 2.1.207 및 OpenCode 1.17.18, 둘 다 동일한 모델(claude-sonnet-4-5)로 고정. • 기본 환경 격리: MCP 서버, 사용자 설정, 메모리가 없는 새 구성 디렉터리. 지시 파일이 없는 빈 워크스페이스. 권한은 우회. • 배가(multiplier) 환경: 여기에 변수를 하나씩 추가하며 테스트. • 작업: T1("정확히 'OK'라고 응답하라")은 고정 오버헤드를 분리하고, T2는 파일 요약, T3는 FizzBuzz 작성-실행-테스트-수정 루프입니다. • 도구 제거 변형: Claude Code는 --tools "", OpenCode는 tools 비활성화 옵션을 주어 시스템 프롬프트와 도구 스키마의 토큰 무게를 분리해 측정했습니다.
수치를 공유하기 전 한 가지 정정 사항이 있습니다. 우리의 트래픽은 요청을 자체 래퍼로 감싸는 로컬 LLM 게이트웨이를 통과합니다. 순수 교정 요청을 통해 이를 측정한 결과 약 6,200 토큰의 고정 비용이 발생했으며, 이 값은 아래 모든 측정치에서 공제되었습니다. 페이로드 수치는 캡처된 요청에서 직접 추출한 것입니다.