TECH 으로 돌아가기
TECH GITHUB 2026.05.21 16분 읽기 185 READS

[심층분석] AI 코딩 에이전트가 코드베이스를 92% 더 적은 도구 호출로 탐색한다? CodeGraph가 그리는 새로운 풍경

[심층분석] AI 코딩 에이전트가 코드베이스를 92% 더 적은 도구 호출로 탐색한다? CodeGraph가 그리는 새로운 풍경

들어가며: AI 코딩 에이전트의 '탐색 비용' 문제

요즘 Claude Code, Cursor, Codex CLI, OpenCode 같은 AI 코딩 에이전트를 쓰는 분들이 정말 많아졌어요. 그런데 한 번이라도 큰 프로젝트에 이 도구들을 붙여본 분이라면 비슷한 답답함을 느껴보셨을 거예요. "이 함수가 어디서 호출되는지 찾아줘" 같은 간단한 질문을 던졌는데, 에이전트가 한참을 끙끙대면서 파일을 수십 개씩 읽고, grep을 수십 번 돌리고, glob으로 또 뒤지는 거죠. 토큰은 어마어마하게 쓰이고, 응답은 느리고, 결국 답은 어딘가 살짝 틀려 있고요.

이게 왜 그런 거냐면요, 현재의 AI 코딩 에이전트들은 코드베이스를 "탐험가"처럼 다뤄요. 이게 무슨 말이냐면, 매번 새로운 질문이 들어올 때마다 마치 처음 가본 도시에서 길을 찾듯이 파일 시스템을 헤매는 거예요. grep(텍스트 검색 명령어)로 "이 단어가 들어간 파일 찾아!" 하고, glob(파일 패턴 매칭)으로 "이런 이름의 파일들 다 모아와!" 하고, 그렇게 모은 파일들을 일일이 Read 도구로 열어서 읽어보는 거죠. 사람이 IDE 없이 vi만 가지고 100만 줄짜리 프로젝트를 파악하려는 거랑 비슷해요. 가능은 한데, 엄청나게 비효율적이거든요.

바로 이 지점에서 colbymchenry/codegraph라는 오픈소스 프로젝트가 등장했어요. 이름 그대로 "코드 그래프"를 미리 만들어두고, AI 에이전트가 파일을 뒤지는 대신 이 그래프에 질문하도록 만든 도구예요. 결과는요? 6개의 실제 코드베이스(VS Code, Excalidraw, Claude Code 자체, Alamofire, Swift 컴파일러 등)를 대상으로 한 벤치마크에서 평균 92% 적은 도구 호출, 71% 빠른 탐색 속도를 기록했다고 해요. 게다가 100% 로컬에서 돌아가요. 외부로 코드가 새지 않는다는 뜻이죠.

이게 단순히 "빠른 도구 하나 나왔네" 수준의 이야기가 아니에요. AI 코딩 에이전트가 코드를 다루는 근본적인 방식이 바뀔 수도 있는 신호거든요. 오늘은 이 CodeGraph가 정확히 뭘 하는 건지, 왜 이런 접근이 나왔는지, 그리고 우리 한국 개발자들에게는 어떤 의미인지 차근차근 풀어볼게요.

CodeGraph가 정확히 뭘 하는 건가요?

핵심 아이디어를 한 줄로 요약하면 이래요: "AI가 매번 코드를 탐색하지 말고, 미리 만들어둔 지도에서 답을 찾게 하자."

조금 더 구체적으로 설명해볼게요. CodeGraph는 프로젝트를 처음 한 번 "인덱싱"해요. 이 인덱싱이라는 게 뭐냐면, 쉽게 말해서 코드베이스 전체를 분석해서 "어떤 함수가 어디에 정의되어 있고, 어떤 클래스를 상속하고, 어디서 호출되는지"를 전부 그래프 자료구조로 만들어두는 거예요. 도서관에 비유하자면, 책장을 한 권 한 권 뒤지는 대신 미리 "이 주제에 관한 책은 3층 A-12 서가에 있어요" 하고 알려주는 카탈로그를 만들어두는 셈이죠.

그래서 에이전트가 "VS Code에서 extension host가 메인 프로세스랑 어떻게 통신하지?"라고 물어보면, 원래는 IPC 관련 키워드로 50번쯤 grep을 돌렸어야 하는데, CodeGraph가 있으면 그래프에서 통신 관련 심볼들의 관계를 즉시 끌어와요. 벤치마크 결과를 다시 보면 인상적이에요.

| 코드베이스 | CodeGraph 있을 때 | 없을 때 | 개선 |
|---|---|---|---|
| VS Code (TS) | 3 호출, 17초 | 52 호출, 1분 37초 | 94% 적음, 82% 빠름 |
| Excalidraw (TS) | 3 호출, 29초 | 47 호출, 1분 45초 | 94% 적음, 72% 빠름 |
| Claude Code (Python+Rust) | 3 호출, 39초 | 40 호출, 1분 8초 | 93% 적음, 43% 빠름 |
| Claude Code (Java) | 1 호출, 19초 | 26 호출, 1분 22초 | 96% 적음, 77% 빠름 |
| Alamofire (Swift) | 3 호출, 22초 | 32 호출, 1분 39초 | 91% 적음, 78% 빠름 |
| Swift 컴파일러 (Swift/C++) | 6 호출, 35초 | 37 호출, 2분 8초 | 84% 적음, 73% 빠름 |

이 표에서 눈여겨볼 점은 언어를 가리지 않는다는 거예요. TypeScript, Python, Rust, Java, Swift, C++ 다 됩니다. 그리고 단순한 작은 프로젝트가 아니라 VS Code나 Swift 컴파일러 같은 거대 프로젝트에서도 효과가 나온다는 점이에요.

동작 원리: AST와 지식 그래프

그럼 이 마법 같은 일이 어떻게 가능한 걸까요? 핵심은 두 가지 개념이에요: AST(Abstract Syntax Tree)지식 그래프(Knowledge Graph).

AST가 뭐냐면요, 우리가 짜는 코드를 컴퓨터가 이해하기 쉬운 트리 구조로 바꿔놓은 거예요. 예를 들어 function hello() { return 'hi' } 같은 코드를 보면 사람은 그냥 텍스트로 읽지만, 컴파일러나 분석 도구는 "이건 함수 선언이고, 이름은 hello고, 본문에 return 문이 있고, 그 값은 문자열 'hi'다" 하는 식으로 트리로 쪼개요. CodeGraph는 각 언어별로 이 AST를 추출하는 파서(parser, 코드를 분석해서 구조를 뽑아내는 프로그램)를 갖고 있어요. 저장소 안에 debug_python_ast.js 같은 디버그 파일이 보이는 걸로 봐서 언어별로 따로 처리하는 구조인 것 같아요.

지식 그래프는 또 뭐냐면요, 노드(점)와 엣지(선)로 이루어진 자료구조예요. 노드는 "함수", "클래스", "파일" 같은 코드의 구성 요소고, 엣지는 "호출한다", "상속한다", "임포트한다" 같은 관계예요. 그래서 "이 함수를 호출하는 곳 다 보여줘"라고 하면 그래프에서 해당 노드에 연결된 "호출한다" 엣지들만 따라가면 끝나는 거죠. grep으로 텍스트를 일일이 매칭할 필요가 없어요.

예를 들어볼게요. 여러분이 어떤 React 프로젝트에서 <Button> 컴포넌트가 어디서 쓰이는지 찾고 싶다고 해봐요.

학습 로드맵 제안:
1. 일단 npx @colbymchenry/codegraph로 작은 사이드 프로젝트에 붙여보세요. 5분이면 돼요.
2. AST와 LSP의 기본 개념을 익히세요. 이건 CodeGraph뿐 아니라 앞으로 나올 비슷한 도구들 다 이해하는 데 도움돼요.
3. tree-sitter 문서를 한번 훑어보세요. 직접 커스텀 분석 도구를 만들고 싶을 때 든든한 기초가 돼요.

마무리: 코딩 에이전트의 다음 챕터

CodeGraph가 던지는 더 큰 메시지는 이거예요. "AI 에이전트의 성능은 모델 크기만으로 결정되지 않는다." 같은 Claude Opus를 쓰더라도, 컨텍스트를 어떻게 떠먹여주느냐에 따라 결과가 천지차이라는 거죠. 앞으로는 "더 큰 모델"보다 "더 똑똑한 컨텍스트 엔지니어링"이 차별화 포인트가 될 가능성이 커요.

또 하나, AI 에이전트의 도구(tool)가 점점 정교해지고 있다는 점도 주목할 만해요. 처음엔 그냥 bash 하나 던져주고 "알아서 해" 였다면, 이제는 코드베이스 전용 그래프 쿼리, 데이터베이스 스키마 인덱스, API 명세 인덱스 같은 도메인 특화 인덱스들이 줄줄이 나올 거예요.

여러분께 묻고 싶어요. 지금 쓰시는 AI 코딩 에이전트에서 가장 답답한 순간이 언제인가요? "왜 이걸 이렇게 오래 찾고 있지?" 싶었던 경험, 댓글로 공유해주세요. 그리고 CodeGraph 같은 인덱싱 도구를 회사 프로젝트에 도입한다면 어떤 장벽이 있을 것 같은지도 궁금해요. 같이 이야기 나눠봐요.


🔗 출처: GitHub

SOURCE · GITHUB
원문 전체 보기 → https://github.com/colbymchenry/codegraph
SHARE
처리 중...