
AI가 매 세션마다 코드베이스 전체를 다시 읽고 있다면, 대신 지도를 건네주세요
요약
AI 코딩 에이전트가 매 세션마다 코드베이스 전체를 다시 읽으며 발생하는 과도한 토큰 소모 문제를 해결하기 위한 도구 Graphify를 소개합니다. Graphify는 코드베이스를 지식 그래프(Knowledge Graph)로 인덱싱하여 에이전트가 효율적으로 구조를 파악하도록 돕습니다.
핵심 포인트
- AI 에이전트의 반복적인 코드 읽기로 인한 '토큰 세금' 문제 지적
- Graphify는 코드베이스를 지식 그래프로 컴파일하여 효율성 증대
- Andrej Karpathy의 LLM 친화적 지식 베이스 구축 아이디어 구현
- 에이전트가 전체 파일을 다시 읽는 대신 인덱싱된 그래프를 쿼리하도록 유도
안녕하세요, Maneshwar입니다. 저는 모든 커밋마다 실행되는 마이크로 AI 코드 리뷰어인 git-lrc를 만들고 있습니다. 이 프로젝트는 무료이며 Github에서 소스 코드를 확인할 수 있습니다. 개발자들이 이 프로젝트를 발견할 수 있도록 git-lrc에 Star를 눌러주세요. 꼭 한번 사용해 보시고 피드백을 공유해 주세요.
여러분에게 너무나 익숙한 상황을 하나 그려보겠습니다.
새로운 Claude Code (또는 Codex, 혹은 이번 주에 여러분이 충성하고 있는 어떤 코딩 에이전트든 상관없습니다) 세션을 엽니다.
그리고 아주 작은 질문 하나를 입력합니다.
"재시도(retries) 로직은 어디서 처리하나요?" 같은 질문 말이죠. 에이전트가 답변을 생각하기도 전에, 에이전트는 조용히 여러분의 레포지토리(repo) 절반을 들이마십니다.
모든 파일, 모든 함수, 그리고 오바마 행정부 이후로 아무도 건드리지 않은 길 잃은 utils.js 파일까지 말입니다. 단 하나의 유용한 답변을 얻기도 전에 수천 개의 토큰(tokens)이 사라져 버립니다.
이것이 바로 토큰 세금(token tax)입니다.
여러분은 매 세션마다 이 세금을 지불합니다. 그리고 이것이 여러분의 $20 요금제가 가끔 마치 1943년처럼 물자를 배급하는 것처럼 느껴지는 이유입니다.
그래서 바로 이 문제를 해결하겠다고 약속하는 도구가 나타났을 때, 저는 책임감 있게 행동했습니다. 의심부터 했고, 그러고 나서 일단 시도해 보았습니다.
이 도구의 이름은 **Graphify**이며, 요약하자면 AI가 매일 아침 똑같은 시험을 위해 벼락치기(cramming)를 하는 것을 막아주는 도구입니다.
이 기술의 이면에는 진정으로 영리한 아이디어가 담겨 있으므로, 제가 설명해 보겠습니다.
문제는 AI가 아닙니다. 벼락치기입니다.
대규모 언어 모델(LLM)이 가공되지 않은 파일(raw files)을 읽을 때 발생하는 문제는 이렇습니다. 모델은 매번 눈을 감은 채로 읽고 있다는 점입니다.
세션 사이에는 프로젝트의 구조(shape)에 대한 기억이 없습니다.
따라서 모델은 첫 번째 질문이 던져지자마자, 비싼 토큰을 하나하나 소모하며 "이 코드베이스가 어떻게 구성되어 있는가"를 처음부터 다시 유도해 냅니다.
Graphify가 작동하는 통찰력은 새로운 것이 아니며, 저자 또한 이것이 어디에서 왔는지 솔직하게 밝히고 있습니다. 바로 LLM 친화적인 지식 베이스(knowledge base)를 구축하는 것에 관한 Andrej Karpathy의 오래된 노트입니다. 제안 내용은 간단했습니다. 모델에게 가공되지 않은 파일을 반복해서 먹이는 대신, 한 번 구조화된 무언가로 _인덱싱(index)_한 다음 모델이 그것을 쿼리(query)하게 하라는 것입니다.
// Detect dark theme var iframe = document.getElementById('tweet-2039805659525644595-557'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2039805659525644595&theme=dark" }
Graphify는 여러분의 로컬 폴더를 위해 그 아이디어를 실제로 구현한 작동 가능한 버전입니다.
여러분이 디렉터리를 지정하면,
Graphify는 해당 디렉터리를 **지식 그래프 (knowledge graph)**로 컴파일합니다. 그리고 그 이후부터 여러분의 에이전트(agent)는 세상을 다시 읽는 대신 그래프에 질문을 던지게 됩니다.
[
좋습니다, 그런데 여기서 말하는 지식 그래프 (knowledge graph)란 정확히 무엇인가요?
타당한 질문입니다. 왜냐하면 "지식 그래프"는 사람들이 미트업(meetup)에서 똑똑해 보이기 위해 사용하는 문구 중 하나이기 때문입니다.
전문 용어를 걷어내면 두 가지로 요약됩니다: **노드 (nodes)**와 **엣지 (edges)**입니다.
노드 (nodes)는 프로젝트의 구성 요소들입니다 (함수, 파일, 컴포넌트, 개념 등).
엣지 (edges)는 그것들 사이의 관계입니다 (이 함수가 저 함수를 *호출(calls)*한다, 이 문서가 저 모듈을 *설명(describes)*한다, 이 설정이 저 서비스에 *데이터를 제공(feeds)*한다 등).
이것들을 충분히 그려내다 보면 클러스터 (clusters)가 자연스럽게 나타나기 시작합니다.
[
모든 것이 매달려 있는 저 빨간색 노드 (node)가 보이시나요? Graphify는 이를 **갓 노드 (god nodes)**라고 부르며, 이는 가장자리에 있는 작은 리프 노드 (leaf nodes)와는 다릅니다.
그것들은 정반대입니다: 프로젝트 전체에서 가장 연결이 많이 된 노드들입니다.
여러분의 핵심 추상화 (abstractions)입니다. 만약 이것이 망가진다면, 오후 시간 전체를 날려버릴 만큼 중요한 것들 말이죠.
이것들을 자동으로 찾아내는 것은 묘하게 즐거운 경험입니다. 왜냐하면 모든 코드베이스에는 전체를 비밀스럽게 지탱하고 있는 서너 개의 함수가 반드시 존재하며, 이제 여러분은 그 목록을 공짜로 얻게 되기 때문입니다.
이것이 실제로 구축되는 방식
이 부분은 제가 정말 멋지다고 느낀 지점이라, 잠시 동안 덕질(nerd out)을 좀 해보겠습니다.
Graphify는 단순히 여러분의 저장소(repo) 전체를 모델에 던져주고 기도하는 방식이 아닙니다.
작업을 두 가지로 나눕니다:
코드의 경우, 실제 구문 트리(syntax tree)를 파싱합니다.
LLM(대규모 언어 모델), 토큰, 비용이 전혀 들지 않습니다.
그저 컴파일러가 코드를 읽는 것처럼 코드를 읽고 함수, 호출, 구조를 결정론적(deterministically)으로 추출합니다. 이것이 바로 공짜 점심이며, 아주 큰 이득입니다.
구문보다 의미가 더 중요한 문서, 논문, 이미지의 경우, 개념과 관계를 추출하기 위해 모델을 도입합니다.
이 부분이 토큰 비용이 발생하는 부분이며, 실제로 해석이 필요한 요소에 대해서만 실행됩니다.
그런 다음 두 가지를 병합하고, 커뮤니티 탐지(community detection)를 실행하여 자연스러운 클러스터(cluster)를 찾아낸 뒤, 여러분에게 세 개의 파일을 제공합니다: 대화형 graph.html, 평이한 언어로 작성된 GRAPH_REPORT.md, 그리고 프로그래밍적인 용도를 위한 원시 graph.json 파일입니다.
제가 높게 평가한 세부 사항 하나는, 보고서가 정직한 감사 추적(audit trail)을 유지한다는 점입니다.
모든 관계는 EXTRACTED(실제로 코드에 존재함), INFERRED(모델이 추론함, 신뢰하되 검증할 것), 또는 AMBIGUOUS(모호함)로 태그가 지정됩니다.
추측을 절대적인 진리인 것처럼 가장하지 않습니다. 저는 도구에 대해 불신이 있는 편인데, 이 도구는 그 신뢰를 조금 되찾아 주었습니다.
보상: 직접 만져볼 수 있는 실제 지도
실제로 작동하는 대화형 그래프는 다음과 같습니다:
커뮤니티를 켜거나 끌 수 있고, 관심 있는 클러스터를 격리할 수 있으며, 마흔 개의 파일을 한꺼번에 머릿속에 담고 있는 대신 사물들이 어떻게 연결되는지 눈으로 볼 수 있습니다.
두 노드 사이의 선으로 나타나 존재조차 몰랐던 의존성 (dependency)을 처음 발견하고 정면으로 마주하게 될 때, 그것은 "아, 이래서 망가졌구나"라고 깨닫는 작은 순간이 됩니다. 상담 치료보다 저렴하죠.
이를 지속시켜 주는 세 가지 명령어
그래프는 보기에도 좋지만, 이것이 여러분의 워크플로우 (workflow)에 자리 잡게 만드는 이유는 바로 쿼리 (querying) 기능 때문입니다.
세 가지 명령어가 대부분의 핵심적인 작업을 수행합니다:
query "how does auth work?": 그래프를 따라 탐색하며 실제 파일을 인용하여 평이한 언어로 답변합니다.path "AdminPanel" "Database": 두 개념 사이의 최단 경로를 찾아 모든 단계 (hop)를 보여줍니다.explain "RateLimiter": 그래프 내의 주변 관계를 사용하여 단일 노드에 대한 인간적인 설명을 제공합니다.
그리고 여러 파일을 변경하더라도 처음부터 다시 구축할 필요가 없습니다. --update 명령어가 변경된 부분만 다시 추출합니다.
대륙 전체를 다시 조사할 필요 없이 여러분의 지도는 최신 상태를 유지합니다.
지갑이 신경 쓰는 부분
이제 말 그대로, 돈에 관한 문제입니다.
에이전트 (agent)가 가공되지 않은 파일들을 통째로 삼키는 대신 압축된 그래프를 쿼리하기 때문에, "내 프로젝트를 이해해줘"라는 요청에 드는 토큰 (token) 비용이 급격히 떨어집니다.
이 프로젝트는 약 70% 적은 토큰을 사용한다고 주장하며, 개별 질문에 대해서는 보고된 감소량이 완만한 백분율이 아닌 몇 배 단위로 측정됩니다.
결과값은 리포지토리 (repo) 크기와 질문 유형에 따라 달라질 수 있으므로 정확한 수치는 참고용으로만 보되, 그 _방향성_만큼은 매우 명확합니다.
즉, 여러분이 이미 지불하고 있는 플랜이 갑자기 훨씬 더 멀리까지 확장된다는 뜻입니다. 동일한 구독료로 달러당 더 많은 실제 작업을 수행할 수 있게 됩니다. 그것이 이 기술의 핵심입니다.
이것이 실제로 누구를 위한 것인가
직설적인 답변을 드리자면, 이 도구는 여러분이 쓰는 것보다 읽는 양이 더 많을 때 빛을 발합니다.
다른 사람이 구축한 코드베이스 (codebase)에 온보딩할 때.
수많은 코드와 문서 더미를 가로질러 리서치를 수행할 때.
한 시간 전에 클론(clone)했지만 벌써 후회 중인 리포지토리 (repo)를 탐색할 때.
그러한 상황에서 미리 만들어진 지도는 여러분이 정확히 원하는 것입니다.
이미 속속들이 알고 있는 작은 프로젝트에서 완전히 몰입하여 새로운 코드를 작성하고 있다면, 그래프 (graph)가 주는 이점은 적습니다. 또한 이를 구축하기 위해 초기 비용이 발생하지만 (문서와 이미지에 대한 시맨틱 패스 (semantic pass)는 공짜가 아닙니다), 코드 전용 실행 (code-only run)은 결정론적 파서 (deterministic parser)에 의존하므로 저렴하게 유지됩니다.
이것은 "나중에 많이 아끼기 위해 지금 조금 투자하는" 거래이므로, 실제로 나중에 비용을 아낄 수 있는 곳에 투자하세요.
설정 방법이 궁금하시다면, 일반적인 Python 도구를 설치하는 것만큼이나 무겁습니다. Python과 uv (uv를 Python을 위한 npm이라고 생각하세요. 다만 기분이 좋은 상태의 npm입니다)가 필요하며, 설치 명령어를 한 번 실행한 다음 폴더를 지정하기만 하면 됩니다. 그것이 절차의 전부입니다.
핵심 요약 (The takeaway)
우리는 모델을 더 똑똑하게 만드는 데 많은 에너지를 소비합니다.
Graphify는 조금 더 조용한 베팅을 합니다. 모델에게 여러분의 프로젝트에 대한 괜찮은 _기억 (memory)_을 제공함으로써, 모델이 매일 아침 지도를 다시 배우느라 뇌력을 낭비하는 것을 멈추게 하는 것입니다.
이 도구가 여러분 대신 코드를 작성해주지는 않을 것입니다.
하지만 여러분의 AI가 모든 세션을 마치 학교 첫날처럼 취급하는 것을 막아줄 것입니다. 여러분의 코드베이스에 지도를 부여하세요. 여러분의 토큰 예산 (token budget)이 고맙다는 감사 카드를 보낼지도 모릅니다.
AI 에이전트 (agents)는 코드를 빠르게 작성합니다. 하지만 그들은 또한 여러분에게 알리지 않고 조용히 로직을 제거하고, 동작을 변경하며, 버그를 유발하기도 합니다. 여러분은 종종 프로덕션 (production) 환경에서 이를 발견하게 됩니다.
git-lrc가 이 문제를 해결합니다. 이 도구는 git commit에 연결되어, 변경 사항이 반영되기 전에 모든 diff (차이점)를 검토합니다. 설정에는 60초가 소요되며, 완전히 무료입니다.
모든 피드백과 기여자를 환영합니다! 온라인에서 소스 코드를 확인할 수 있으며, 누구나 바로 사용할 수 있습니다.
⭐ GitHub에서 Star를 눌러주세요:
GitHub logo HexmosTech / git-lrc
Git Commit 시 실행되는 무료 마이크로 AI 코드 리뷰 (Micro AI Code Reviews)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기




