
AI 토큰 절감률 주장, 어떻게 읽을까요? context-mode로 보는 확인법 4가지 (2026)
무료 자료
PDF · 무료
98% 줄여준다는 AI 도구, 진짜인지 확인한 기록 — 비개발자를 위한 쉬운 가이드
긴 글을 다 읽기 전에, 실무 가이드부터 먼저 챙겨가세요.
AI 토큰 절감률 주장, 어떻게 읽을까요? context-mode로 보는 확인법 4가지 (2026)
'98% 절감' 문구, 그대로 믿어도 되나요?
결론부터 말하면 도구가 하는 일은 실재하고 숫자는 기준선이 잘려 있어요. GitHub 트렌딩에 오른 mksglu/context-mode(스타 29,038, 2026-10-15 관측)는 AI 코딩 에이전트의 토큰을 대폭 아껴 준다는 소개와 함께 퍼졌습니다. 소개 문구에 붙는 98%는 저장소 벤치마크 가운데 요약형 도구 14개 시나리오의 소계(바이트 기준)입니다. 21개 시나리오 전체로는 96%예요.
"토큰이 그렇게 줄면 우리 팀 Claude Code 요금도 확 내려가는 거 아냐?" 숫자가 크면 누구나 이렇게 기대하죠. 컨텍스트 윈도우(모델이 한 번에 볼 수 있는 입력 범위)를 아끼는 도구라면 더 그렇고요.
이 글의 주제는 도구 평가보다 토큰 절감률 주장을 읽는 법입니다. 저장소를 깎아내릴 생각은 없어요. 작동 방식은 실재하고 쓸 만한 부분도 있습니다. 숫자를 기준선별로 쪼개 보고, 작동 방식과 한계, 도입 판단, 확인법 네 가지를 차례로 짚겠습니다.
같은 저장소가 절감률을 서로 다른 기준선으로 쓰고 있어요
저장소의 BENCHMARK.md와 README, package.json을 대조하면 절감률 숫자가 기준선 다섯 개로 갈립니다.
| 구분 | 범위 | 수치 | 단위 |
|---|---|---|---|
| A | 요약형 ctx_execute_file 14개 시나리오 소계 | 98% (315 KB → 5.5 KB) | 바이트 |
| B | 21개 시나리오 전체 | 96% (376 KB → 16.5 KB) | 바이트 |
| C | 검색형 ctx_index+ctx_search 6개 시나리오 소계 | 82% (60.3 KB → 11.0 KB) | 바이트 |
| D | 디버깅 세션을 가정한 6개 항목 | 94% (약 45,300 → 약 2,600) | 토큰 |
| E | 훅 적용 여부에 따른 실현 절감 추정 | 훅 있음 약 98%, 없음 약 60% | 미표기 |
(자료: mksglu/context-mode BENCHMARK.md·README, 2026-06-29 기준, 오늘 기준 108일 전)
BENCHMARK.md에 따르면 개별 시나리오의 최저치는 Playwright 네트워크 요청 13%, Supabase 문서 44%입니다. 평균만 보면 가려지는 부분이에요.
C가 A보다 낮은 건 결함이 아니라 설계 때문입니다. 요약형은 데이터를 한두 줄로 압축해 95% 이상을 줄이지만 결과가 "코드 블록 5개, 정리 관련 섹션 3개" 수준이라 코딩에는 쓸모가 없어요. 검색형은 코드 블록을 원문 그대로 돌려줘서 50~93%에 머뭅니다. 절감률과 쓸모가 반대로 움직이는 셈이에요.
E의 98%는 데이터가 얼마나 줄었는지가 아니라 라우팅(도구 호출을 이 도구로 돌리는 규칙)이 실제로 발동하는 비율을 가정한 추정치이고, 산출 근거는 적혀 있지 않습니다. A의 98%와 E의 98%는 서로 다른 것을 세는데 같은 숫자로 쓰이는 거예요. package.json 설명문은 한 걸음 더 나가 컨텍스트 윈도우 전체를 98% 절약한다("saves 98% of your context window")고 씁니다. 벤치마크는 도구 출력 크기를 잰 자료라 이 문장을 뒷받침하지 못해요.
단위 문제는 외부에서도 바로 나왔습니다. 2026-02-25(오늘 기준 232일 전) Show HN(해커뉴스의 자작 프로젝트 소개 코너)에서 handfuloflight이 "컨텍스트를 말하면서 킬로바이트로 얘기하고 있는데, 토큰 절감 데이터를 확인해 줄 수 있나?"라고 물었어요(원문 영어, 번역은 필자). 청구서는 바이트가 아니라 토큰으로 나오니 핵심을 짚은 질문입니다.
도구 출력 격리는 실제로 어떻게 동작하나요?
택배 상자를 거실에 쌓는 대신 창고에 넣고 송장 번호만 받아 두는 방식이라고 생각하면 쉬워요.
README에 따르면 ctx_execute를 부를 때마다 독립 서브프로세스(본 프로그램과 따로 도는 작은 실행 단위)가 뜹니다. 대화에 들어가는 건 그 프로세스의 표준 출력(stdout, 프로그램이 내놓는 결과)뿐이고 로그 파일이나 API 응답 같은 원본은 경계 안쪽에 머물러요. 출력 크기에 따라 세 갈래로 나뉩니다.
- 5 KB를 넘고 찾는 목적(intent)을 지정한 경우: 전체를 색인(검색용 목차 만들기)하고 목적에 맞는 구간만 돌려줍니다.
- 100 KB를 넘는 경우: SQLite FTS5(파일 하나짜리 데이터베이스의 전문 검색 색인)에 전량을 넣고 대화에는 포인터 메시지만 남겨요.
- 그 밖의 경우: 출력을 그대로 돌려줍니다.
포인터로 바뀐 원본이 버려지는 건 아닙니다. 모델이 ctx_search로 질의하면 색인에서 해당 구간을 꺼내 옵니다. 검색 순위는 BM25(검색 순위를 매기는 알고리즘)로 정하고 제목·헤딩에는 5배 가중치를 줘요. 다만 이 복구 경로에도 호출 예산이 있습니다. 저장소가 밝힌 점진적 제한은 ctx_search 13번째 호출까지 정상이고 48번째는 질의당 결과를 1개로 줄이며 9번째부터는 차단해 ctx_batch_execute로 돌려보내요.
'샌드박스'는 OS 샌드박스가 아니에요
샌드박스(바깥과 분리된 실행 공간)라는 이름 때문에 운영체제 수준 격리를 떠올리기 쉬운데 저장소가 스스로 선을 긋습니다. README 보안 절은 "not a full OS sandbox"(완전한 OS 샌드박스가 아님)라고 쓰며 ctx_execute가 임의 코드를 실행하고 파일시스템 접근을 그대로 물려받는다고 밝혀요. 호스트 수준 샌드박싱을 유지하라는 권고도 붙어 있습니다.
실제 사례도 있었어요. 이슈 #852는 호스트 샌드박스가 거부한 프로젝트 밖 파일 읽기를 에이전트가 이 도구로 다시 시도한 경로였습니다. 호스트의 승인 창은 도구 입력 값을 볼 수 없어서 승인자 눈에는 우회가 보이지 않았죠. 2026-06-29(오늘 기준 108일 전) 시점 README는 프로젝트 루트 밖 접근을 막도록 고쳤다고 적습니다. 한계를 숨기지 않는 점은 평가할 만해요.
Claude Code가 이미 절반을 한다면 남는 몫은 무엇일까요?
Claude Code 공식 문서에 따르면 MCP(AI 도구가 외부 기능을 불러 쓰는 연결 규약) 출력은 10,000토큰부터 알림이 뜨고 기본 상한은 25,000토큰(MAX_MCP_OUTPUT_TOKENS)입니다. 50,000자를 넘는 결과는 파일로 저장하고 대화에는 경로만 남겨요. 제3자 실측도 있습니다. claude-code 이슈 #97622(2026-09-27, 오늘 기준 18일 전)에서 45,000~52,000자 구간에 파일 외부화와 약 2KB 미리보기 치환이 일어나는 것을 확인했습니다.
Claude Code가 이미 절반을 한다면 남는 몫은 무엇일까요?
이미지 출처: github.com
원본은 파일로, 대화에는 포인터만 남기는 발상이 context-mode의 100 KB 초과 처리와 같습니다. 이 점이 벤치마크 기준선과 직결돼요. 벤치마크는 픽스처(테스트용 샘플) 원문 전량이 컨텍스트에 들어간다고 가정하는데 85.5 KB, 58.9 KB, 56.2 KB 같은 큰 항목은 Claude Code에서 이미 통째로 들어가지 않거든요. 2026-02-28(오늘 기준 229일 전) HN에서 buremba가 "Claude Code는 MCP 출력을 전부 주입하지 않는다. 25k 토큰으로 제한한다"고 짚었고 저자도 이를 인정했습니다. Claude Code 사용자의 체감 절감은 벤치마크 숫자보다 작을 가능성이 커요. 얼마나 작은지는 제가 확인한 범위에서 저장소도 제3자도 측정한 자료가 없습니다.
순증분은 두 가지로 좁혀져요. 하나는 외부화된 원본을 BM25로 질의해 필요한 구간만 꺼내 쓰는 기능입니다. Claude Code는 파일 경로만 주니 모델이 Read나 Grep으로 다시 읽어야 하고 그만큼 컨텍스트가 다시 차요. 다른 하나는 대화 압축(길어진 대화를 요약해 줄이는 기능) 이후 편집한 파일, 태스크, 에러, 사용자 결정을 되살리는 세션 연속성입니다. 두 기능 모두 Claude Code 기본 기능에 등가물이 없습니다.
오버헤드는 절감액에서 빼야 해요
세션마다 라우팅 블록(도구 호출을 이 도구로 돌리는 규칙문) 4,748바이트가 주입됩니다. 영문 기준 대략 1,200~1,500토큰으로 필자가 추산했어요. 여기에 MCP 도구 11개의 정의가 더해지고 라우팅 안내는 기본적으로 10번 호출마다 다시 들어갑니다. 저장소 설명에 따르면 가장 공격적인 설정에서는 호출당 약 250토큰이 늘어요.
도구 정의가 차지하는 입력 쪽 부담은 애초에 해결 대상이 아닙니다. 저자는 HN에서 "입력 측 문제이고 context-mode는 출력 측을 다룬다"고 밝혔어요(번역은 필자). 도구 호출은 적고 대화만 긴 세션이라면 순효과가 마이너스일 수도 있습니다.
한국어 환경에는 변수가 하나 더 있어요
벤치마크 단위가 바이트인 데다 한국어 같은 CJK(중국어·일본어·한국어) 텍스트는 같은 글자 수에서 토큰이 훨씬 많이 나옵니다. claude-code 이슈 #97622(2026-09-27)에는 문자 수 기준 외부화 임계와 토큰 상한이 어긋나서 24,000자짜리 한국어·CJK 텍스트가 약 49,964토큰으로 들어간 사례가 보고됐어요. 한국어 로그나 문서를 많이 다루는 팀일수록 바이트 절감률과 토큰 체감의 거리가 더 벌어질 수 있습니다.
요약이 틀리면 원본은 어디로 가나요?
가장 중요한 미해결 위험이 정확도예요. 저자는 2026-02-28(오늘 기준 229일 전) HN에서 "답변 품질에 대한 정식 벤치마크는 아직 돌리지 않았고 토큰 절감 측정에 집중했다"고 답했습니다(번역은 필자). 570점, 댓글 107개를 모은 같은 스레드에서 가장 많은 공감을 받은 비판이 바로 이 공백을 겨눠요.
2026-03-01(오늘 기준 228일 전) hereme888은 요약형 경로가 모델이 데이터를 보기 전에 정확한 추출 코드부터 써야 하는 구조라고 짚으며 이렇게 썼습니다. "벤치마크는 모델이 항상 올바른 요약 코드를 쓴다고 가정하지만 실제로는 그렇지 않다." 이 댓글에는 sagarpatil이 "동의한다. 나는 제거했다"고 답했어요. 반대편 목소리도 있습니다. agrippanux는 "만족스러운 사용자이고 팀에도 설치를 권했다. 토큰 사용이 상당히 줄었다"고 적었어요.
구조적으로 맞는 지적이에요. 요약형 경로는 무엇이 필요한지 미리 알아야 작동하거든요. 뭐가 문제인지 아직 모르는 탐색형 디버깅에서 잘못 요약하면 원본이 컨텍스트에 남지 않습니다. 복구 수단인 ctx_search에는 앞서 본 9번째 호출 차단이 걸려 있고요. 절감률이 가장 높게 나온 시나리오(access log, analytics CSV, git log)가 정보를 잃을 위험도 가장 큰 쪽이라는 점이 불편한 대목입니다. 검색 쪽 약점도 나왔어요. blakec은 순수 BM25가 JSON이나 표 같은 구조화 데이터에서 약하다며 임베딩(문장을 숫자로 바꿔 의미로 찾는 방식) 결합을 제안했습니다.
도입해도 되는 프로젝트인가요?
GitHub API와 npm 기록(2026-10-15 조회)을 대조하면 겉모습과 실제가 다릅니다.
| 항목 | 값 |
|---|---|
| 마지막 사람 커밋·릴리스(v1.0.169)·npm 퍼블리시 | 모두 2026-06-29 (오늘 기준 108일 전) |
| 마지막 푸시 | 2026-10-14 (오늘 기준 1일 전), 전부 CI 봇의 배지 숫자 갱신 |
| 스타 / 포크 | 29,038 / 2,040 |
| 기여자 | 111명 (메인테이너 1,372커밋, 차순위 사람 36커밋) |
| 이슈·PR 탭 | 둘 다 비활성 (집계상 열린 이슈 359건) |
| 월 npm 다운로드 | 2026-06 116,747, 2026-09 87,392 |
(자료: GitHub API, npm registry와 downloads API)
2026-06-29 이후 2026-10-14까지 쌓인 커밋은 전부 github-actions[bot]이 설치 통계 배지 숫자를 바꾼 기록입니다. 트렌딩에 다시 오른 건 봇이 하루 두 번 숫자를 갱신한 결과이고 개발이 재개됐다는 신호는 아니에요. 기여자 111명은 숫자만 크고 실제로는 bus factor(핵심 인원 한 명이 빠지면 프로젝트가 멈추는 위험도)가 1에 가깝습니다. 이슈 탭을 닫아 두고도 README는 #852 같은 이슈 번호를 계속 인용하니 외부인이 버그 이력을 확인할 길이 없어요. 훅 6종에 기대는 플러그인이 108일째 갱신되지 않은 점도 훅 규격이 계속 바뀌는 Claude Code에서는 부담입니다.
긍정 신호도 분명합니다. 스타·포크·HN 570점은 실재하는 관심입니다. 테스트 파일 29개가 저장소에 있고 벤치마크 픽스처와 재현 명령도 공개돼 있어요.
저장소가 한 말과 제3자가 확인한 내용을 나눠 보면 이렇습니다.
| 저장소의 주장 | 확인 상태 |
|---|---|
| 21개 시나리오 전체 96% 절감 | 자체 보고. 픽스처와 재현 명령은 공개, 제3자 재현은 확인하지 못함 |
| 컨텍스트 윈도우 전체 98% 절약 (package.json) | 미검증. 벤치마크는 도구 출력 크기만 쟀음 |
| 세션이 30분에서 3시간으로 늘어남 | 미검증. 산출 근거 없음 |
| 테스트 125개 전부 통과 | 자체 보고. 테스트 파일 29개 존재만 확인하고 실행은 하지 않음 |
| HN 570점 | 점수는 확인됨(107댓글). 1위 순위는 확인 불가 |
| 프롬프트 캐시를 깨지 않음 | 미검증. 논리는 타당하나 제3자 측정 없음 |
| 답변 정확도 영향 | 저자가 직접 미측정이라고 밝힘 |
| 사용자 수 배지, 사용 기업 로고 | 인용 불가. 배지는 npm 누적 다운로드 합산이라 라벨이 맞지 않고 로고 링크에는 출처가 없음 |
라이선스도 짚어야 합니다. 오픈소스가 아니라 source-available(소스는 공개하되 쓰임에 제한을 둔 방식)인 Elastic License 2.0이에요. GitHub API도 NOASSERTION(표준 라이선스로 분류하지 못함)으로 표시합니다. 호스팅이나 매니지드 서비스로 제공하는 건 금지 조항이 있어서 고객 납품 구성이라면 조항 검토가 필요해요. 제안서에 "오픈소스"라고 쓰면 부정확합니다.
우리 팀은 어떻게 판단하면 되나요?
| 상황 | 권고 |
|---|---|
| 토큰 비용 절감이 목적 | 1순위로 두지 않는다. 서브에이전트 격리와 1M 컨텍스트 창(입력 100만 토큰) 활용이 먼저 |
| 컨텍스트 고갈이 고민 | 압축 이후 상태 유실이 실제 문제라면 세션 연속성만 평가 |
| 평가해 보려면 | MCP만 설치하는 방식으로 시험 |
| 효과를 재려면 | ctx_stats의 자체 보고 대신 도입 전후 같은 작업의 실제 과금 토큰을 비교 |
시험은 아래 한 줄로 충분해요. 훅 없이 도구 11개만 붙여서 되돌리기도 쉽습니다.
claude mcp add context-mode -- npx -y context-mode
훅까지 깔리는 플러그인 경로는 권하지 않습니다. 라우팅 블록이 curl·wget을 전면 차단하고 Bash를 git, mkdir, rm, mv, cd, ls, npm install, pip install 8개 명령으로 제한하기 때문이에요. 서브에이전트 프롬프트에도 이 블록이 들어가고 Bash 유형 서브에이전트는 general-purpose로 승격됩니다. 외부 API를 curl로 직접 치는 수집 스크립트나 서브에이전트 유형을 의도적으로 고정해 둔 구성이라면 워크플로가 깨질 수 있어요.
절감률 주장을 읽을 때 확인할 4가지
절감률 주장을 읽는 법: 숫자를 만나면 기준선(무엇과 비교했는지), 단위(바이트인지 토큰인지), 범위(전체치인지 소계인지), 내 환경(이미 줄어든 상태인지)을 차례로 확인하세요. 넷 중 하나라도 빠져 있으면 그 숫자는 참고용이지 기대치가 아닙니다.
- 기준선이 무엇인가. 무엇과 비교한 감소율인지 묻습니다. 이번 사례의 기준선은 "도구 출력 원문 전량 주입"인데 Claude Code는 50,000자 초과분을 이미 파일로 빼 둡니다.
- 단위가 바이트인가 토큰인가. 청구는 토큰으로 나오고 한국어는 바이트와 토큰의 차이가 더 커요.
- 전체치인가 소계인가. 요약형 소계는 98%, 전체는 96%, 검색형 소계는 82%, 개별 최저는 13%로 같은 저장소 안에서도 범위에 따라 값이 크게 갈렸어요. 좋은 쪽만 모은 숫자는 아닌지 봅니다.
- 내 환경의 기준선이 이미 낮아져 있지 않은가. 같은 도구도 Claude Code 사용자에게는 순증분이 BM25 질의와 세션 연속성 두 가지로 줄어들어요.
이 네 가지는 context-mode뿐 아니라 다른 AI 도구의 "비용 N% 절감", "속도 N배" 문구에도 그대로 쓸 수 있습니다.
마무리
context-mode는 숫자만 보면 인상적이고 구조를 뜯어 보면 쓸 만한 부분이 있어요. 개발이 멈춰 있고 오픈소스도 아니니 토큰 절감 목적이라면 우선순위를 낮추는 쪽이 맞습니다. 토큰 절감률 숫자를 만나면 기준선부터 물어보세요. 우리 팀 상황에 맞는지부터 따져보셔도 충분합니다. 판단에 필요한 기준은 위에 정리해 뒀어요.
자주 묻는 질문
context-mode는 오픈소스라서 회사 프로젝트에 써도 되나요?
오픈소스가 아니라 source-available 방식의 Elastic License 2.0이에요. 저장소 LICENSE 전문에 따르면 호스팅·매니지드 서비스로 제공하는 것과 라이선스 표기 제거가 금지됩니다. 사내에서 쓰는 건 문제없지만 고객에게 납품하는 구성은 조항 검토가 필요해요.
프롬프트 캐시를 깨서 오히려 비용이 늘지는 않나요?
저자는 깨지 않는다고 답했어요. 2026-02-28(오늘 기준 229일 전) HN에서 esafak이 같은 질문을 하자 저자는 "원본이 대화 히스토리에 아예 들어가지 않으므로 무효화할 게 없다"고 설명했습니다(번역은 필자). 논리는 타당하지만 제3자 측정은 확인하지 못했으니 도입 전후 실제 과금 토큰으로 직접 비교하는 편이 안전합니다.
한국어 작업에서도 절감 효과가 같을까요?
같다고 단정하기 어렵습니다. 벤치마크는 바이트 기준이고 한국어 같은 CJK 텍스트는 같은 글자 수에서 토큰이 훨씬 많이 나와요. claude-code 이슈 #97622(2026-09-27, 오늘 기준 18일 전)에는 24,000자짜리 한국어·CJK 텍스트가 약 49,964토큰으로 들어간 사례가 보고됐습니다. 바이트 절감률과 토큰 체감이 더 벌어질 수 있으니 청구 토큰으로 확인하세요.
참고 자료
- mksglu/context-mode 저장소 정보 (GitHub API, 2026-10-15 조회)
- BENCHMARK.md (자체 벤치마크 21개 시나리오)
- README (메커니즘·보안·플랫폼 표)
- LICENSE (Elastic License 2.0)
- package.json (버전·설명문)
- Claude Code 라우팅 블록 (configs/claude-code/CLAUDE.md)
- npm registry: context-mode
- npm 월별 다운로드 (2026-06-01~2026-10-12)
- Hacker News: 저자 게시 스레드 (2026-02-28)
- Hacker News: Show HN (2026-02-25)
- Claude Code 공식 문서: MCP 출력 상한
- anthropics/claude-code 이슈 #97622 (2026-09-27)


