
AI 코딩 도구를 켜고 '안녕'이라고 치기도 전에, 이미 수만 개의 토큰이 서버로 날아가고 있다면 어떨까요? 한 개발자가 로컬 프록시로 API 트래픽을 가로채서 이걸 직접 측정해봤어요. 빈 프로젝트 디렉터리에서 새 세션을 시작했을 때, Claude Code는 사용자의 첫 프롬프트가 처리되기도 전에 약 33,000 토큰을 보내는 반면, OpenCode는 약 7,000 토큰만 보낸다는 결과가 나왔거든요. 토큰이 뭐냐면, LLM이 텍스트를 처리하는 기본 단위예요. 영어 기준으로 대략 단어 하나가 1~1.5 토큰쯤 되고, 이 토큰 수가 곧 비용과 컨텍스트 사용량이 되는 거죠.
33,000 토큰의 내역
뜯어보면 이래요. Claude Code의 시스템 프롬프트가 약 12,000 토큰인데, 여기엔 에이전트의 행동 규칙, 말투 지침, 안전 가이드, 환경 정보, git 상태 같은 게 들어가요. 그리고 도구 정의가 약 18,000 토큰으로 가장 커요. Bash, Glob, Grep, Read, Edit, Write, WebFetch, 서브에이전트를 띄우는 Task까지 15개가 넘는 도구마다 긴 설명문과 JSON 스키마가 붙어 있거든요. 여기에 CLAUDE.md 같은 컨텍스트 파일, 메모리 디렉터리 내용, 기타 메타데이터가 약 3,000 토큰을 더해요. 반면 OpenCode는 시스템 프롬프트 약 2,500 토큰, 도구 스키마 약 4,000 토큰으로 훨씬 가볍게 시작하고요.
그런데 반전이 있어요: 프롬프트 캐싱
'그럼 Claude Code는 매번 5배 비싼 거야?' 싶지만, 그렇게 단순하지 않아요. 프롬프트 캐싱이라는 게 있거든요. 이게 뭐냐면, 매 요청마다 반복되는 부분(시스템 프롬프트, 도구 정의 같은)을 서버가 기억해뒀다가 재사용하는 기능이에요. Anthropic API는 캐시된 입력에 90% 할인을 적용해서, 첫 요청 이후에는 이 오버헤드가 훨씬 싸게 처리돼요. 물론 캐시에 처음 쓸 때는 25% 할증이 붙긴 하지만요.
진짜 문제는 비용보다 컨텍스트 윈도우예요. 캐싱을 하든 안 하든, 이 33,000 토큰은 모델의 컨텍스트 윈도우를 차지하거든요. 200,000 토큰짜리 윈도우라면 코드 한 줄 읽기 전에 이미 16%를 쓰고 시작하는 셈이에요. 긴 세션에서 대화가 쌓이다 보면 이 차이가 '컨텍스트가 언제 꽉 차느냐'를 좌우하게 되죠.
이건 실수가 아니라 설계 철학의 차이예요
글쓴이도 짚었지만, 이 오버헤드는 의도된 트레이드오프예요. Claude Code의 장황한 행동 규칙과 풍부한 도구 설명은 에이전트가 일관되고 신뢰성 있게 동작하도록 만드는 투자거든요. 도구 설명이 자세할수록 모델이 도구를 엉뚱하게 쓰는 일이 줄어든다는 관점이죠. OpenCode는 반대로 날씬한 컨텍스트를 우선했고요. 이 논쟁은 요즘 '컨텍스트 엔지니어링'이라고 불리는 흐름의 한복판에 있어요. 프롬프트 엔지니어링의 다음 단계로, 제한된 컨텍스트 예산을 어디에 쓸지 설계하는 문제인 거예요. 실제로 장황한 도구 설명이 신뢰성을 높이는지, 아니면 그냥 낭비인지는 아직 결론이 안 난 논쟁이기도 하고요.
한국 개발자에게 주는 시사점
실무적으로 정리하면 이래요. 구독제(정액제)로 쓰는 분들은 크게 신경 안 써도 돼요. 체감되는 건 API 종량제로 긴 세션을 돌리거나, 컨텍스트 윈도우가 작은 모델을 쓰는 경우거든요. 더 중요한 건 직접 AI 에이전트를 만드는 팀들에게 주는 교훈이에요. 도구 정의도 결국 프롬프트라는 것, 도구를 하나 추가할 때마다 매 요청의 토큰 예산을 갉아먹는다는 것, 그래서 프롬프트 캐싱 설계가 에이전트 아키텍처의 필수 요소라는 것. 사내 에이전트를 만들고 있다면 우리 시스템은 첫 요청에 몇 토큰을 보내는지 한번 측정해보는 것도 좋겠어요.
한 줄 요약: AI 코딩 도구의 몸무게는 공짜가 아니고, 무거움과 가벼움은 각각 신뢰성과 효율이라는 다른 가치에 베팅한 결과다. 여러분이라면 어느 쪽을 고르시겠어요? 도구가 알아서 잘하도록 컨텍스트를 아낌없이 쓰는 쪽? 아니면 내 코드가 들어갈 자리를 최대한 남겨두는 쪽?
🔗 출처: Hacker News