본문으로 건너뛰기

Kivgraph의 시맨틱 코드 그래프

Kivgraph가 37개 저장소의 구조적 코드 질문을 약 7.4배 적은 토큰으로 처리했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

대규모 코드베이스에서 LLM 코딩 에이전트가 구조적 질문에 답하려면 grep과 파일 읽기를 반복해야 해 컨텍스트 비용이 커집니다. Kivgraph는 여러 저장소를 언어 도구 기반의 Semantic Code Graph로 인덱싱하고, 특정 심볼의 호출자·변경 영향·다른 저장소의 소비처를 질의하게 합니다. 37개 저장소와 29개 질문의 비교에서 Kivgraph는 28/29개의 정확한 답을 35,961토큰으로 냈고, grep과 파일 읽기는 같은 정확도의 답에 267,980토큰을 사용해 전체 토큰이 약 7.4배 많았습니다. 다만 grep이 5개 질문에서 더 저렴했으며 Python 관계는 시맨틱 분석기를 설정하지 않으면 약하므로, 이 도구는 grep을 대체하기보다 구조적·저장소 간·식별자 없는 질문에 적용하는 경계를 시험합니다.

실용적 조언

  • 구조적 호출 관계나 변경 영향처럼 파일을 여러 번 따라가야 하는 질문부터 Kivgraph와 grep을 나누어 적용하는 방식이 적절합니다. 먼저 Kivgraph로 호출자와 저장소 간 소비 관계를 조회하고, 결과가 필요한 코드 위치를 좁힌 뒤 grep으로 구현 세부사항을 확인하면 각 도구의 강점을 함께 사용할 수 있습니다. 단순 문자열 검색으로 충분한 질문에서는 grep이 5개 사례에서 더 저렴했다는 벤치마크 결과를 고려해야 합니다.
  • Kivgraph를 신뢰할지 판단할 때는 자신의 저장소 집합과 실제 에이전트 질문을 모아 정답률과 토큰 사용량을 함께 측정해야 합니다. 특히 Go, TypeScript, Rust, Dart는 언어 도구 기반 관계를 확인하고, Python은 시맨틱 분석기 설정 여부에 따라 결과를 별도로 검증해야 합니다. 로컬 stdio 실행과 API key 불필요라는 조건을 활용하면 외부 서비스 비용을 추가하지 않고 기존 코드 탐색 흐름과 비교할 수 있습니다.

섹션별 상세

01
작성자는 대규모 코드베이스에서 LLM 코딩 에이전트가 구조적 질문을 처리할 때 긴 grep 호출과 파일 읽기가 반복되어 컨텍스트 비용이 커진다고 설명합니다. Kivgraph는 여러 저장소를 Semantic Code Graph로 인덱싱하고 “who calls this symbol?”, “what breaks if I change it?”, “which other repository consumes it?” 같은 관계 질의를 제공합니다. 심볼 이름만 비교하지 않고 go/types, TypeScript checker, rust-analyzer, Dart Analysis Server가 해석한 관계를 엣지로 사용한다는 점이 핵심 설계입니다.
Kivgraph Graph Viewer에서 여러 저장소와 패키지·파일·심볼의 연결을 3D 그래프로 표현한 화면입니다.
Diagram화면 상단에는 53개 저장소, 236개 패키지, 6.5k 파일, 3.2k 심볼을 포함한 탐색 스냅샷의 규모가 표시되고, 중앙에는 저장소와 심볼 클러스터 사이의 의존 관계가 연결선으로 나타납니다. 색상 범례는 repositories, packages, files, symbols와 exact dependency, cross-cluster dependency 같은 관계 유형을 구분하며, 본문이 말한 다중 저장소 Semantic Code Graph의 시각적 구조를 뒷받침합니다.
02
작성자가 수행한 비교에서는 37개 저장소와 29개 질문에 대해 Kivgraph와 grep plus reading이 각각 28/29개의 정확한 답을 냈습니다. Kivgraph는 35,961토큰을 사용한 반면 grep plus reading은 267,980토큰을 사용해 전체 토큰 사용량에서 약 7.4배 차이가 났습니다. 따라서 구조적 관계를 직접 질의할 수 있으면 에이전트가 탐색 과정에서 읽는 코드량과 컨텍스트 소비를 줄일 수 있다는 근거가 제시됐습니다.
03
작성자는 이 결과를 근거로 Kivgraph가 grep을 대체한다고 보지 않습니다. grep은 5개 질문에서 더 저렴했으며, Python 관계도 시맨틱 분석기를 별도로 설정하지 않으면 상대적으로 약합니다. 실제 적용 범위는 구조적 관계, 저장소 간 연결, 심볼 이름을 직접 알지 못하는 질문에 집중되고, 일반적인 텍스트 검색은 단순하거나 저비용인 질문에 남겨두는 방식입니다.

용어 해설

시맨틱 코드 그래프(Semantic Code Graph)
코드의 이름이나 문자열이 아니라 언어 분석 도구가 파악한 호출·의존·소비 관계를 그래프로 저장하는 구조입니다. 여러 저장소 사이의 연결까지 질의할 수 있어 LLM 코딩 에이전트가 파일을 연쇄적으로 읽는 비용을 줄이는 데 쓰입니다.
MCP 서버(MCP Server)
LLM 에이전트가 외부 도구나 데이터에 정해진 방식으로 접근하도록 연결하는 서버입니다. Kivgraph는 로컬 stdio로 실행되며 에이전트가 코드 그래프에 질의할 수 있는 인터페이스를 제공합니다.
go/types
Go 프로그램의 타입과 심볼 관계를 해석하는 언어 도구입니다. Kivgraph는 이름이 같은 항목을 단순 비교하지 않고 go/types가 확인한 구조적 관계를 그래프의 엣지로 반영합니다.
rust-analyzer
Rust 코드의 타입, 심볼, 참조 관계를 이해하는 언어 분석 도구입니다. Kivgraph는 Rust 저장소를 인덱싱할 때 rust-analyzer를 활용해 호출과 의존 관계를 이름 매칭보다 정확하게 연결합니다.
저장소 간 코드 분석(Cross-Repository Analysis)
서로 다른 저장소에 있는 패키지와 심볼의 소비·의존 관계를 한 번에 추적하는 방식입니다. 단일 저장소의 텍스트 검색으로 확인하기 어려운 변경 영향과 외부 저장소의 사용처를 파악하는 데 초점이 있습니다.

언급된 도구

Kivgraph중립링크

여러 저장소를 Semantic Code Graph로 인덱싱해 LLM 코딩 에이전트가 호출·변경 영향·저장소 간 소비 관계를 질의하도록 하는 로컬 MCP server입니다.

go/types중립

Go 코드의 타입과 심볼 관계를 해석해 그래프 엣지를 구성하는 언어 도구입니다.

TypeScript checker중립

TypeScript 코드의 구조적 관계를 해석해 심볼 연결을 구성하는 언어 도구입니다.

rust-analyzer중립

Rust 코드의 호출·참조·타입 관계를 해석해 그래프 엣지를 구성하는 언어 도구입니다.

Dart Analysis Server중립

Dart 코드의 구조적 관계를 해석해 저장소 그래프를 구성하는 언어 도구입니다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 31.수집 2026. 08. 31.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.