리뷰 토큰을 평균 82배 줄이는 로컬 우선 코드 그래프 설치 흐름
로컬에서 AST 기반 그래프를 구축해 AI 도구가 변경 영향 범위만 읽도록 하여 평균 약 82배 토큰 절감을 실현하는 도구다.
TL;DR
code-review-graph는 Tree-sitter로 리포지토리를 파싱해 함수·클래스·호출 관계를 노드·엣지로 저장한 로컬 SQLite 그래프를 구축하고, 변경 발생 시 blast-radius를 계산해 AI가 읽어야 할 최소 파일 집합만 MCP 도구로 제공한다. 이 접근은 전체 코드베이스를 다시 읽는 대신 평균 약 82배의 질문당 토큰 절감을 보고하였고, 최대 528x까지 관측된 사례가 README에 명시되어 있다. 증분 인덱싱과 훅/데몬을 통해 실시간 또는 CI에서 그래프를 갱신할 수 있으며, 로컬 우선 설계로 소스 전송 없이 CI 내 리스크 스코어링과 PR 코멘트 생성을 지원한다. 단일 파일의 아주 작은 변경에서는 그래프 컨텍스트가 넘칠 수 있고, 영향 분석은 보수적으로 설계되어 일부 과다 탐지를 허용한다는 한계가 명확히 제시되어 있다.
주요 기능
- 변경된 파일만 재파싱해 그래프를 증분 갱신하는 기능을 제공한다. 이 기능은 파일 저장 또는 훅에서 트리거되며 SHA-256 기반 차이를 사용해 의존 노드만 재색인해 대형 리포에서 초저지연 업데이트를 달성한다. README 기준으로 2,900파일 프로젝트가 2초 미만으로 재색인되는 성능이 보고되었다.
- 그래프 쿼리로 영향 반경(Blast radius)을 계산해 변경에 연관된 호출자·종속자·테스트만 반환한다. 이 결과만 AI가 읽도록 MCP 도구로 제공하므로 전체 코드베이스를 재검토하지 않아 토큰 소비가 대폭 줄어든다. 평가에서 리포별 평균 질문당 토큰 절감이 약 82배로 보고되었다.
- 광범위한 언어 및 노트북 지원을 제공한다. Tree-sitter 파서를 기본으로 다수의 언어와 Jupyter/Databricks 노트북(.ipynb)을 구조적으로 인식하며, 필요시 커스텀 languages.toml로 새 언어를 추가할 수 있다. PHP 프로젝트에 대해서는 Composer PSR-4 해석과 Laravel 관련 엣지 검출을 추가로 제공한다.
- MCP 호환 툴 집합을 통해 AI 에이전트와 직접 통신한다. README에는 get_review_context, get_impact_radius 같은 30개 도구가 정의되어 있어 에이전트가 그래프를 쿼리해 최소 컨텍스트를 수신하도록 설계되어 있다. 설치 명령은 사용 중인 AI 플랫폼을 자동 감지해 적절한 MCP 설정을 생성한다.
- 로컬 우선 저장소를 SQLite에 유지하고 다양한 내보내기 형식을 지원한다. GraphML, Neo4j Cypher, Obsidian vault, SVG 등으로 내보낼 수 있으며 기본 그래프 저장은 `.code-review-graph/` 내부의 SQLite 파일로 관리된다. 외부 DB나 클라우드를 필수로 요구하지 않아 프라이버시와 오프라인 실행을 보장한다.
어떻게 동작하는가
리포지토리 파일을 Tree-sitter로 파싱해 함수·클래스·임포트·호출 지점 같은 구조적 노드를 추출하고 이를 노드·엣지 형태의 그래프로 SQLite에 저장한다. 변경이 발생하면 그래프에서 호출·종속 관계를 따라 BFS 방식의 blast-radius를 계산해 영향을 받을 가능성이 있는 파일 집합만 반환한다. 이 집합을 MCP 도구로 노출해 AI 에이전트가 전체 코드를 다시 읽지 않고 최소한의 문맥만 사용하게 만든다.
해결 문제
AI 기반 코드 리뷰 도구가 대형 코드베이스에서 전체 파일을 반복적으로 읽어 토큰과 비용을 낭비하는 문제를 해결한다. 구조적 AST 기반 그래프와 blast-radius 분석을 통해 변경에 실제로 영향을 받는 파일 집합만 계산해 AI가 읽게 함으로써 문맥 비용을 크게 줄인다. 이 접근은 대규모 모노레포나 다중 언어 프로젝트에서 특히 토큰 절감과 CI 리뷰 효율성을 확보하는 데 초점을 맞춘다.
지금 주목받는 이유
깃허브 스타 수와 공개된 벤치마크(중간 약 82배 토큰 절감, 최대 528x) 및 재현 가능한 평가 레시피를 제시해 주목받고 있다.
차별점
- 구조적 AST 엣지(호출, 상속, 테스트 커버리지)를 기반으로 한 영향 분석을 제공해 단순 키워드 검색이나 임베딩 기반 RAG와 구별된다. 이 도구는 Tree-sitter 파싱 결과로 생성한 그래프를 직접 쿼리해 호출자·피호출자·테스트 연관성을 산출하므로 멀티홉 영향 분석에서 우위를 가진다.
- 로컬 우선 설계로 그래프와 쿼리가 CI 러너와 사용자의 머신에서만 실행된다. 기본 저장소가 SQLite이며 외부 소스 전송을 요구하지 않기 때문에 코드 유출 위험을 낮추고 오프라인 환경에서도 동일한 분석을 재현할 수 있다.
- MCP 표준에 맞춘 30개 도구 세트를 노출해 다양한 AI 플랫폼과 통합되도록 설계되었다. README에 제시된 설치 명령은 Codex, Claude Code, GitHub Copilot 등 여러 플랫폼을 자동 감지해 적절한 MCP 구성을 생성한다.
사용 사례
- 대형 모노레포에서 변경 영향 범위만 빠르게 산출해 AI 리뷰 비용과 지연을 줄이는 데 사용된다. README의 벤치마크는 수만 개 파일이 있는 리포에서 수천 줄의 전체 컨텍스트 대신 수천 토큰 수준으로 축소되는 효과를 보고하고 있다. 이로써 CI에서 매 푸시마다 전체 코드 재검토를 회피할 수 있다.
- CI 환경에서 리스크 점수와 테스트 갭을 함께 게시해 PR 품질 게이트로 활용한다. GitHub Action으로 로컬 러너에서 그래프를 구축하고 PR 코멘트로 위험 점수와 영향받는 함수 목록을 제공하도록 구성할 수 있다. 선택적 fail-on-risk 입력을 통해 병합 방지 정책을 구현할 수 있다.
- 에디터 통합 또는 데몬을 통해 개발 중 실시간으로 그래프를 갱신하고 변경을 감지하는 워크플로에 적용된다. crg-daemon이나 훅을 통해 파일 저장 시 증분 업데이트가 트리거되어 개발자가 작업 중인 범위만 AI에게 제공되도록 만든다.
시작하기
Python 3.10+ 환경에서 pip 또는 pipx로 패키지를 설치한 뒤 `code-review-graph install`로 플랫폼 자동 구성을 수행하고 `code-review-graph build`로 초기 그래프를 생성하면 된다. 설치 명령은 사용 중인 AI 코딩 도구를 자동 감지해 적합한 MCP 설정과 훅을 생성하므로 설치 후 에디터나 도구를 재시작하면 바로 연동된다. 대형 리포에 대해 초기 빌드는 몇 초에서 수십 초가 소요될 수 있으며 이후 변경은 증분 업데이트로 매우 빠르게 처리된다.
요구사항
- Python 3.10 이상이 필요하다.
- 선택적 기능(임베딩, 커뮤니티 탐지 등)은 sentence-transformers, igraph 같은 추가 파이썬 패키지를 설치해야 한다.
- 임베딩을 클라우드에서 사용하려면 OpenAI/Gemini 등의 API 키와 관련 환경 변수가 필요하다.
벤치마크
| 벤치마크 | 지표 | 값 | 비교 |
|---|---|---|---|
| Token efficiency | per-question token reduction (median) | ~82x median per-question reduction | range 38x–528x; 528x is max for fastapi |
| Impact accuracy | average F1 | 0.714 | recall reported as 1.0 against graph-derived ground truth (circular upper bound) |
| Build performance (example repos) | flow detection / search latency | fastapi: flow detection 128ms · search 1.5ms; express: flow detection 106ms · search 0.7ms | — |
이미지 분석




26.4k
Stars
2.5k
Forks
+207
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.