AI 코딩 도구가 코드 리뷰 시 읽는 파일 수를 줄여주는 로컬 지식 그래프
코드를 수정할 때 AI 도구가 프로젝트 전체를 다시 읽지 않고, 변경된 부분과 직접적으로 연관된 파일만 골라내어 컨텍스트로 전달합니다. Tree-sitter로 코드의 구조를 그래프로 만들어 저장하고, 이 그래프를 통해 AI가 필요한 정보만 빠르게 가져오게 하는 도구입니다. 로컬에서 실행되며 외부 서버로 코드가 전송되지 않습니다.
변경 사항이 미치는 범위를 추적하는 방식
이 도구는 코드를 함수, 클래스, import 관계로 구성된 노드와 엣지의 그래프로 변환합니다. 특정 파일이 수정되면 그래프를 따라 호출자, 의존성, 테스트까지 영향을 받을 수 있는 모든 파일을 추적합니다. AI는 이 추적 결과를 바탕으로 전체 프로젝트를 스캔하지 않고 필요한 파일만 읽습니다. 약 3,000개 파일 규모의 저장소에서 두 파일만 수정해도 약 2.5초 만에 그래프가 갱신됩니다. 이 과정에서 파일의 해시 값이 변한 것만 다시 파싱하므로 처리 속도가 빠릅니다.
토큰 사용량 절감 효과
전체 코드를 AI에게 전달하는 대신 그래프 쿼리 결과를 전달함으로써 토큰 사용량을 크게 줄일 수 있습니다. 6개의 오픈소스 저장소를 대상으로 한 벤치마크에서 질문당 평균 토큰 감소율은 약 63배로 나타났습니다. 예를 들어 fastapi 저장소에서는 전체 코드가 약 94만 토큰인 반면, 그래프 쿼리 결과는 약 2,653토큰으로 측정되었습니다. 이 수치는 2026년 8월 2일 기준 고정된 커밋에서 측정된 값이며, 저장소가 성장함에 따라 실제 수치는 달라질 수 있습니다. 도구는 응답에 컨텍스트 절감 추정치를 포함하여 사용자가 절약된 토큰을 확인할 수 있게 합니다.
지원 언어와 프레임워크 인식
Python, JavaScript, TypeScript, Go, Rust, Java, C/C++ 등 30여 개 이상의 언어와 Jupyter 노트를 지원합니다. PHP 프로젝트에서는 Composer PSR-4 import, Blade 템플릿 참조, Laravel Route 및 Eloquent 관계를 인식합니다. Java 프로젝트에서는 Spring 의존성 주입, WebFlux 라우트, Temporal 워크플로우 등을 분석합니다. 지원되지 않는 언어는 .code-review-graph/languages.toml 파일을 통해 Tree-sitter 문법을 매핑하여 추가할 수 있습니다. 이 설정은 포크 없이 기존 저장소에서 바로 적용됩니다.
CI 환경에서의 리스크 기반 리뷰
GitHub Action으로 제공되어 CI 파이프라인에서 자동으로 실행됩니다. 풀 리퀘스트가 생성되면 리스크 점수가 매겨진 함수, 영향받는 실행 흐름, 테스트 누락 사항을 스티키 코멘트로 게시합니다. 모든 푸시마다 이 코멘트가 원위치로 업데이트되며, fail-on-risk 옵션을 활성화하면 고위험 항목이 있을 때 머지를 차단할 수 있습니다. 이 과정은 CI 러너에서 로컬로 실행되어 소스 코드가 외부 서비스로 전송되지 않습니다.
사용 전 확인해야 할 한계와 조건
Python 3.10 이상이 필요하며, SQLite 파일 하나를 로컬에 저장하므로 외부 데이터베이스가 필요 없습니다. 영향 분석의 리콜률이 1.0으로 표시되지만, 이는 그래프 자체의 엣지를 기준으로 한 상한선이며 실제 정답률과는 다릅니다. 작은 단일 파일 변경의 경우 그래프 컨텍스트가 원본 파일 읽기보다 토큰이 더 많이 소모될 수 있습니다. JavaScript와 Go의 플로우 감지는 Python이나 PHP에 비해 정확도가 낮아 추가 작업이 필요합니다. 또한 검색 랭킹이 완벽하지 않아 특정 모듈 패턴에서는 결과가 없을 수 있으므로, 중요한 리뷰 전에는 수동 확인을 병행하는 것이 좋습니다.