Claude Code 컨텍스트 효율 개선 도구 두 개 추천

182.159.***.***
7

Claude Code 쓰다 보면 도구 호출 결과나 LLM의 코드 탐색이 컨텍스트를 잡아먹으면서 후속 응답 품질이 떨어지는 경험 있으실 겁니다. "방금 전엔 잘 되더니 갑자기 이상한 답을 한다"는 그 증상이요. 산업적으로도 lost-in-the-middle, context rot 같은 용어로 짚어진 문제입니다.

두 측면에서 푸는 도구를 공유합니다.

도구 호출 후 컨텍스트 오염을 막는 도구와, prompt 입력 시 토큰을 절약해주는 도구입니다. 영역이 안 겹쳐서 함께 쓸 수 있습니다.


1) Context Mode (mksglu/context-mode) - 컨텍스트 오염 방지

링크: https://github.com/mksglu/context-mode

해결하는 문제:

Bash, Read, Grep, WebFetch 같은 도구를 호출하면 raw 출력이 그대로 컨텍스트에 들어옵니다. git log 한 번에 수만 토큰, Playwright 스크린샷 응답 56KB, MCP 도구 description만으로도 세션당 5만 토큰 넘게 차지하는 경우가 흔합니다. 이게 누적되면 정작 사용자가 묻는 핵심에 LLM이 집중을 못 하게 됩니다.

작동 방식:

PreToolUse hook으로 도구 호출을 가로채서 sandbox subprocess로 보냅니다. raw 출력은 sandbox에 남고, 컨텍스트에는 요약 + 필요 시 검색 가능한 인덱스만 들어갑니다. 8개 가상화 도구 제공 (ctx_execute, ctx_index, ctx_search 등).

세션 연속성도 같이 풉니다. 파일 편집, git ops, 에러, 사용자 결정을 SQLite에 추적해서 compaction 발생 시 우선순위 티어 스냅샷(≤2KB)으로 복원. 컨텍스트가 압축돼도 작업 흐름이 끊기지 않습니다.

측정값:

Playwright 56KB → 299B (98% 절감), 도구 호출 후에도 컨텍스트가 가벼워서 같은 세션에 더 깊이 들어갈 수 있습니다.

3.1k stars, 해커뉴스에서도 화제됐던 도구.

설치:

npm install + MCP 등록 한 번. 5개 플랫폼(Claude Code, Gemini CLI, VS Code Copilot 등) 베타 지원. Codex CLI는 hook 없어서 60%만 작동.

라이선스: ELv2 (재배포 제한, 사용 자유).


2) tunaCtx (hang-in/tunaCtx, 원본 jaytoone/CTX의 fork) - 컨텍스트 토큰 절약

링크: https://github.com/hang-in/tunaCtx

해결하는 문제:

사용자가 prompt 입력하면 LLM이 관련 코드를 찾기 위해 grep, glob, read 같은 도구를 마구 호출합니다. 이 과정에서 무관한 파일까지 컨텍스트에 들어와 토큰을 낭비하고, LLM이 기존 코드의 dependency 구조를 못 보고 텍스트 매칭만으로 추측해서 틀리는 경우도 많습니다.

작동 방식:

UserPromptSubmit hook으로 사용자 prompt를 받자마자 trigger classifier가 4가지로 분류합니다.

- EXPLICIT_SYMBOL: 클래스/함수명 명시 → 심볼 인덱스 직접 lookup

- SEMANTIC_CONCEPT: 개념 검색 → BM25 키워드

- IMPLICIT_CONTEXT: dependency 검색 → import graph BFS 순회

- TEMPORAL_HISTORY: 최근 변경 → 세션 추적

각 trigger가 다른 retrieval로 라우팅되고 결과가 컨텍스트에 주입됩니다. LLM이 grep 헤매지 않고 prompt 단계에서 이미 관련 파일을 받습니다. 핵심은 IMPLICIT_CONTEXT - 코드 import graph가 텍스트 RAG가 못 보는 구조 정보를 가지고 있어서 dependency 쿼리에서 BM25 R@5=0.4 vs CTX R@5=1.0 차이가 납니다.

측정값:

BM25 대비 1.9배 토큰 효율 (TES 기준), 토큰 사용량 5.2% (BM25는 18.7%). LLM 호출 0이라 빠릅니다. hook 지연시간 40-270ms (프로젝트 크기별).

원본은 EMNLP 2026 제출 예정인 학술 도구입니다. 다만 production 환경에 쓰려면 손볼 게 있어서 fork했습니다.

이 fork에서 한 작업:

- bm25-memory.py 1837줄 god module을 orchestrator 300줄 + 11개 sub-module로 분해

- eval과 production의 BM25 토크나이저/스코어링 통합 (원본은 두 갈래로 분기되어 있어서 한쪽 개선이 다른 쪽으로 자동 전파 안 됐음)

- 단위 테스트 82개 (settings.json patcher, hook fallback, cache invalidation 등)

- 회귀 가드 26 fixtures (deterministic hook output byte-level 비교)

- 안전성 보강 (sqlite_vec import 실패 시 graceful fallback, deterministic sort, atomic install with hash-based update) retrieval 알고리즘 자체는 원본 그대로. production readiness만 보강했습니다.

설치:

git clone + pip install -e . + ctx-install

ctx-install이 ~/.claude/hooks/와 settings.json을 멱등 (재실행 중복 추가 없음) + 백업 (타임스탬프 backup_.py 생성) 으로 안전하게 처리합니다.

원본 한국어 처리는 약점이 있는데 (BM25 토크나이저가 영어 기준), fork에서 한국어 형태소 분석기 통합 여지를 남겨뒀습니다. 다음 사이클 작업 후보입니다.

라이선스: MIT. 원본 jaytoone/CTX의 copyright와 함께 명시.


둘 함께 쓰기:

- Context Mode: 도구 호출 → sandbox로 격리 (오염 방지)

- tunaCtx: prompt 입력 → 관련 코드 자동 주입 (토큰 절약)

Hook 이벤트가 거의 안 겹쳐서 (Context Mode는 PreToolUse/PostToolUse/ PreCompact SessionStart, tunaCtx는 UserPromptSubmit/PostToolUse Grep matcher만) 함께 등록 가능합니다. PostToolUse가 유일하게 겹치는 이벤트인데 tunaCtx는 Grep matcher 한정이라 충돌 거의 없습니다.input 측에서 토큰 낭비를 줄이고, output 측에서는 도구 호출 결과가 컨텍스트를 오염시키지 않게 막아주는 조합입니다. Sonnet/Opus가 코딩하는 워크플로우에서 누적 효과가 큽니다.

로그인한 회원만 댓글 등록이 가능합니다.

개발한당

KR | ID | EN
  • IDR
  • KOR
8.35 -0.01

2026.07.10 KEB 하나은행 고시회차 1080회

다가오는 한인 행사일정

  • 등록 된 일정이 없어요!