AI 리뷰 에이전트가 '모든 파일 읽기'를 하지 못하게 하는 방법: code-review-graph로 문맥을 82배 압축하는 구현 절차
요약
AI 코드 리뷰 시 발생하는 과도한 토큰 소비 문제를 해결하는 'code-review-graph' 도구에 대한 구현 절차를 설명합니다. 이 도구는 Tree-sitter로 코드베이스의 호출 관계를 분석하여 그래프 DB로 저장하고, Multi-Context Protocol(MCP)을 통해 AI에게 필요한 문맥만 전달함으로써 리뷰 비용과 대기 시간을 획기적으로 줄입니다.
핵심 포인트
- 코드 호출 관계를 구조적 그래프로 파악하여 토큰 소비 문제를 해결합니다.
- Tree-sitter 기반으로 코드베이스 전체의 함수/클래스 간 호출 그래프를 생성합니다.
- MCP(Multi-Context Protocol)를 통해 AI에게 필요한 영향 범위만 전달할 수 있습니다.
- Python, JS, TS, Go 등 다양한 언어와 파일 형식(Solidity, Terraform 등)을 지원합니다.
「왜 이 한 줄 수정에 10개 파일 분량의 토큰을 쓰고 있는가」
AI에게 코드 리뷰를 맡겼을 때, 이런 위화감을 느껴본 적이 없을까?
- 함수 하나만 고쳤는데도 에이전트가 호출원/호출처를 추측하기 위해 주변 파일을 반복적으로
read_file하는 경우 - 규모가 큰 리포지토리의 경우 컨텍스트 윈도우를 소진하고, 정작 중요한 차분보다 앞뒤 탐색 로그가 더 길어지는 경우
- 결과적으로 리뷰 비용과 대기 시간이 급증하는 문제
원인은 간단하다. 많은 AI 코딩 도구는 '관련 있을 법한 파일을 직감으로 읽으러 가는' 전략밖에 가지고 있지 않다. 파일 간의 호출 관계를 구조적으로 알고 있는 것이 아니기 때문이다.
이 문제에 정면으로 다루고 있는 것이 tirth8205/code-review-graph이다. Tree-sitter로 코드베이스를 분석하여 함수/클래스 간의 호출 그래프를 로컬 SQLite에 저장하고, MCP(Multi-Context Protocol)를 통해 AI에게 '정말로 필요한 범위만' 전달한다. README에 따르면, 리뷰 시 토큰 소비는 중앙값으로 약 82배(범위 38x~528x) 감소한다고 한다.
숫자가 크기 때문에 실제로 직접 만져보며 검증해 본다.
배경: 왜 '그래프'가 필요한가
MCP 서버를 직접 만들거나 도입하는 글은 늘어나고 있지만, 대부분은 '도구를 하나 래핑하여 호출할 수 있게 하는' 수준에 머문다. code-review-graph가 다른 점은 정적 분석의 결과를 영속화된 그래프 DB로 보유하고, CLI와 MCP 양쪽에서 동일한 그래프를 참조한다는 설계이다.
build명령어로 코드베이스 전체를 파싱하여 함수/클래스/호출 관계를 그래프화update명령어로 변경 파일만 차분 업데이트(2초 이내)- CLI 단독으로도
detect-changes --brief로 리스크 점수와 함께 변경 분석이 가능하다 (읽기 전용) - MCP 서버로 실행하면, 동일한 그래프에 대해
get_impact_radius_tool(영향 범위=폭발 반경)나get_review_context_tool(토큰 최적화된 리뷰 문맥) 같은 도구들이 생성된다.
즉, AI 에이전트는 '파일을 열어서 읽는다'가 아니라 '이 심볼을 변경하면 어디까지 파급되는지'를 그래프에 문의하는 것만으로 충분하다. 지원 언어는 Python/JS/TS/Go/Rust/Java 등 주요 언어 외에도 Solidity, Terraform, Jupyter Notebook까지 폭넓다. 라이선스는 MIT이며, 최신 버전은 v2.3.6이다.
구현 절차
1. 설치
Python 3.10 이상이 필수다. uv가 있으면 경험하기 좋다며 README에 명시되어 있다.
pip install code-review-graph
# 또는
pipx install code-review-graph
2. 사용 중인 AI 도구용 MCP 설정 자동 생성
install 서브 커맨드가 현재 환경을 감지하여 대응하는 MCP 설정 파일을 작성해 준다.
# 자동 감지에 맡길 경우
code-review-graph install
# 플랫폼을 명시할 경우
...
Claude Code의 경우 .mcp.json에 다음과 같은 설정이 작성된다 (리포지토리 내 실제 파일):
{
```json
{
파일 감시 및 자동 그래프 업데이트
code-review-graph watch
변경 내용을 위험 점수화(읽기 전용, 그래프는 업데이트하지 않음)
...
`detect-changes --brief`
은 에이전트를 호출하기 전의 1차 체크로 유용하며,
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기