본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 15. 22:50

caveman이 정말로 내 Token 비용을 아껴줄 수 있을까?

요약

caveman은 시스템 프롬프트를 활용해 AI의 불필요한 수식어를 제거함으로써 출력 토큰 비용을 최대 60%까지 절감하는 AI 코딩 에이전트 확장 기능입니다. 코드의 정확도는 유지하면서 간결한 말투를 통해 API 비용 절감과 IDE 반응 속도 향상을 동시에 제공합니다.

핵심 포인트

  • 시스템 프롬프트를 통해 불필요한 인사치레와 수식어를 제거하여 토큰 절약
  • 코드 블록은 그대로 유지하여 100%의 기술적 정확도 보장
  • lite, full, ultra, wenyan 등 4단계의 압축 모드 제공
  • 실제 테스트 결과 React 및 Next.js 프로젝트에서 약 50~60% 비용 절감 확인

며칠 전 MS의 Token 소방대 회의를 듣던 중, 온라인 강사가 언급한 인기 도구인 https://github.com/juliusbrussee/caveman을 알게 되었습니다.

caveman system prompt를 적용하기만 하면, 100%의 기술적 정확도를 보장하는 전제하에 AI 코드 생성 시 발생하는 출력 token 비용을 대폭 절감할 수 있습니다.

실측 결과, React 입문 디버깅 예제에서 caveman ultra 모드는 60.9%의 token을 절약했습니다. 이어 커뮤니티에서 인기 있는 Next.js Todo List App 프로젝트(Prisma 및 Server Actions 포함)를 사용하여 수정 우선순위, 필터링 정렬 및 마감일 등의 기능을 테스트했을 때도 약 49%의 token을 절약했습니다.

API 비용을 낮추고 IDE 반응 속도를 높이고 싶은 개발자라면 누구나 다운로드하여 시도해 보기를 권장합니다.

caveman은 어떻게 정확성과 간결함을 동시에 잡을 수 있을까?

최근 Antigravity와 GitHub Copilot의 이중 지출 공격을 겪으며, 계속해서 쏟아져 나가는 token을 보고 있으면 정말 마음이 아픕니다. API 할당량도 꽤 많이 사용했거든요 ㅠㅠ

caveman은 Julius Brussee가 개발한 AI 코딩 에이전트 (AI coding agent) 확장 기능으로, 간결한 원시인 말투를 통해 불필요한 말을 제거함으로써 출력 token 비용을 최대 60%까지 절감하는 것이 특징입니다.

작동 로직은 사실 매우 투박합니다. 바로 system prompt를 통해 AI에게 입을 다물라고 강제하는 방식입니다 XD.

모든 의미 없는 인사치레(예: "기꺼이 답변해 드리겠습니다", "좋은 질문입니다")와 관사(a, an, the), 그리고 중요하지 않은 수식어들을 모두 걸러냅니다.
하지만 텍스트 설명에만 집중적으로 적용하고, 코드 블록은 있는 그대로 유지하여 코드의 100% 정확도를 보장합니다.

현재 Caveman은 4가지의 서로 다른 대화 압축 단계(grunt levels)를 제공합니다:

  • lite: 불필요한 말만 제거하고 완전한 문장과 문법 구조를 유지합니다.
  • full: 관사를 제거하고, 파편화된 문장을 허용하며, 짧은 동의어를 사용하기 시작합니다.
  • ultra: 극단적인 축약형으로, database를 DB로 쓰고, 인과 관계를 나타낼 때 화살표 를 사용합니다.
  • wenyan: 아예 문언문(고전 문체)으로 답변하여, 중국어 문언문의 매우 높은 정보 밀도를 이용해 token을 압축합니다.

입문부터 풀스택까지의 token 변화

개발 과정에서 흔히 발생하는 세 가지 사례를 찾아 제 로컬 환경에서 tiktoken 라이브러리(OpenAI의 cl100k_base 인코딩 기반, 즉 GPT-4에서 사용하는 방식)를 사용하여 실제 token 수를 측정했습니다.

다음은 이 세 가지 예제의 실측 결과입니다.

사례 1: React Controlled Component

이 문제는 매우 기본적인 것으로, input에 value가 바인딩되어 있지만 onChange를 작성하지 않아 입력창이 잠겨버리는 상황입니다.
이때 일반적인 LLM은 controlled component의 메커니즘에 대해 장황하게 설명하곤 합니다. caveman의 각 모드가 어떻게 답변하는지 살펴보겠습니다:

  • Vanilla (87 tokens): "물론이죠! 기꺼이 설명해 드리겠습니다. 입력 필드에 타이핑할 수 없는 이유는 value prop을 상태 변수(value)로 설정했지만, onChange 핸들러를 제공하지 않았기 때문입니다..."
  • Caveman Lite (60 tokens, 31.0% 절약): "React에서 onChange 핸들러 없이 input에 value prop을 설정하면 읽기 전용(read-only)이 됩니다..."
  • Caveman Full (44 tokens, 49.4% 절약): "Input value가 state에 바인딩되었으나 onChange 핸들러가 없어 읽기 전용 상태입니다. onChange 이벤트를 추가하세요..."
  • Caveman Ultra (34 tokens, 60.9% 절약): "Input value state 바인딩, onChange 없음 → 읽기 전용. 업데이트를 위해 onChange 추가. 해결책: onChange={e => setValue(e.target.value)}."
  • Caveman Wenyan (39 tokens, 55.2% 절약): "React元件以value縛state,缺onChange,遂成唯讀。增 onChange={(e) => setValue(e.target.value)} 即解." (이 메시지들을 처음 봤을 때 이게 대체 뭔 소린가 싶었습니다...)

예시 2: Prisma Eager Load 최적화

데이터베이스에서 데이터를 가져올 때, 단순히 posts 배열의 길이를 구조 분해(destructuring)하기 위해 실수로 include를 사용하여 posts 테이블 전체를 조회했습니다.

  • Vanilla: 103 tokens.
  • Caveman Lite: 73 tokens (29.1% 절약)
  • Caveman Full: 55 tokens (46.6% 절약)
  • Caveman Ultra: 47 tokens (54.4% 절약)
  • Caveman Wenyan: 71 tokens (31.1% 절약)

예시 3: Next.js App Router JWT Middleware API

이 예시는 TypeScript API Route 코드 전체를 포함하고 있습니다. 코드 자체는 압축되지 않기 때문에 베이스라인(baseline)을 크게 높입니다.

  • Vanilla: 283 tokens.
  • Caveman Lite: 242 tokens (14.5% 절약).
  • Caveman Full: 203 tokens (28.3% 절약).
  • Caveman Ultra: 197 tokens (30.4% 절약).
  • Caveman Wenyan: 221 tokens (21.9% 절약).

Next.js Todo App 수정

이것이 정말로 내 신용카드를 구해줄 수 있는지 확인하기 위해, 나의 Antigravity 환경에서 세 개의 subagents (Gemini 3.5 Flash)를 호출하여 Next.js Todo List App 프로젝트(Prisma 및 Server Actions 결합)의 세 가지 기능 수정 작업을 수행했습니다: 우선순위 추가, 필터링 및 정렬, 마감일 알림.

나는 이 세 개의 subagents에게 완전히 동일한 개발 요구사항을 주었으며, vanilla, caveman ultra, caveman wenyan 세 가지 시스템 설정 하에서 수정을 실행하고 반환된 전체 토큰(token) 수를 계산했습니다:

  • Vanilla 정상 대화 (Normal Conversation): 총 2398 tokens를 소비했습니다. Server Actions의 작동 원리, 상세한 수정 단계 지침, 그리고 각종 전후 설명의 미사여구 등 방대한 분량이 포함된 것은 놀라운 일이 아닙니다.
  • Caveman Ultra 모드: 총 1227 tokens를 소비했습니다. 모든 군더더기 말을 직접 제거하고, "단계 1, 단계 2"를 매우 짧은 영어 약어로 압축했으며, 가장 중요한 코드 diff(차이점)만 남겼습니다. 대략적으로 계산했을 때 세 가지 작업에서 약 **48%**의 토큰을 절약했습니다!
  • Caveman Wenyan 문언문 (Classical Chinese) 모드: 총 1606 tokens를 소비했습니다. 문언문의 간결한 방식으로 단계를 설명했습니다 (도대체 어떤 요구사항이 있어야 이 모드를 쓰게 될까요 XD). 하지만 중문(Chinese characters) 문자에 대한 토크나이저(tokenizer)의 인코딩 제한 때문인지, 토큰을 **33%**만 절약하여 Ultra 모드에 비해 효과가 약간 떨어졌습니다.

실측의 한계

데이터를 통해 보면, 답변에서 "코드"가 차지하는 비율이 높을수록 caveman의 절약 효율은 감소합니다. 이는 매우 합리적으로 보입니다. 결국 AI가 NextResponse.json을 멋대로 NextRes.json처럼 축약하게 할 수는 없기 때문이며, 그렇게 되면 더 많은 비극을 초래할 것입니다.

순수 텍text 답변 위주의 입문 예제에서는 장부상으로 60.9%의 절약률을 기분 좋게 얻을 수 있지만, 실제 개발 및 수정 단계로 넘어가면 코드 블록은 바이트 단위로 보존(byte-preserved)되어야 하므로 절약률은 대략 30%에서 40% 사이에 머물게 됩니다. 하지만 이 역시 여전히 매우 주목할 만한 수치이며, 한 달에 약 40%의 추가 API 비용을 아낄 수 있다는 뜻인데, 이는 결코 적은 금액이 아닙니다.

체감상 더 좋은 점은 AI가 내뱉는 토큰이 줄어들었기 때문에 IDE의 반응 속도도 훨씬 빨라졌다는 것입니다.

일주일 넘게 사용해 본 결과, 개인적으로 평상시 개발 시에는 full 모드를 사용하면 토큰을 안정적으로 40%에서 50% 정도 절약할 수 있고 가독성도 가장 좋다고 느꼈습니다. 만약 방대한 디버그 로그(debug log)를 찾거나 데이터를 정리해야 하는 상황이라면, 가끔 직접 ultra 모드를 켜도 좋습니다. 어차피 오류 코드와 한두 개의 핵심 키워드만 확인하면 되니까요.

wenyan 모드에 대해서는, 설치해서 한 번 놀아본 것으로 충분합니다 XD

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0