MIT 라이선스가 적용된 코드 지식 그래프 도구를 만들었습니다 (완전 로컬, 클라우드 없음)
요약
개발자가 거대한 코드베이스의 의존성을 파악하기 위해 로컬에서 실행 가능한 코드 지식 그래프 도구 'repopedia'를 개발했습니다. 이 도구는 MIT 라이선스를 따르며, 클라우드나 외부 서버 연결 없이 SQLite 파일에 코드를 분석하여 함수 호출 관계(전이적 호출자)를 정확하게 추적할 수 있습니다. 특히 Claude Code 같은 에이전트가 텍스트 검색 대신 그래프 질의를 통해 더 빠르고 정확한 파급 효과(blast radius) 분석을 할 수 있게 합니다.
핵심 포인트
- 로컬에서 실행되는 코드 지식 그래프 도구 'repopedia' 소개
- MIT 라이선스 기반으로 직장 환경에 적합하며, 클라우드/서버 연결 불필요
- SQLite 파일에 코드를 구조화하여 함수 호출 관계(전이적 호출자)를 분석 가능
- Claude Code 같은 에이전트가 텍스트 검색보다 그래프 질의로 더 정확한 코드 이해 가능
이것은 아마도 틈새 문제일 수 있지만, 저는 직장에서 거대한 Python 코드베이스를 다루고 있습니다. 공유 함수를 변경할 때마다 일종의 루렛을 돌리는 기분입니다. grep은 코드를 언급하는 사람을 알려줄 뿐이지, 실제로 호출하는 사람이 누구인지는 알려주지 않습니다. 그리고 더 근본적으로, Claude Code(제가 주로 사용하는 코딩 에이전트)는 주로 grep을 사용하기 때문에 더 나은 결과를 제공하지 못합니다.
원래 제가 원했던 도구(GitNexus)가 존재했지만, PolyForm 라이선스가 적용되어 직장에서는 사용할 수 없습니다. 그리고 솔직히 라이선스를 떠나서도, 존재하는 코드 그래프 도구의 절반은 사용자가 리포지토리를 클라우드에 업로드하거나 벡터 데이터베이스를 사용하여 docker 스택을 구축하도록 요구합니다. 저는 직장에서 이 두 가지 모두 할 수 없습니다. 그래서 주말 몇 번을 들여 저만의 버전을 만들었습니다: MIT 라이선스가 적용되었고, 모든 것이 로컬 컴퓨터에서 실행됩니다.
이 도구의 이름은 repopedia입니다. pip install로 설치한 다음 리포지토리에 대해 실행할 수 있으며, 단순한 SQLite 파일에 작은 코드 그래프를 구축합니다 (tree-sitter가 파싱을 수행합니다). 가장 큰 장점은 서버도 없고, docker도 없고, API 키도 없다는 것입니다. 아무것도 어디에도 업로드되지 않으며, 그래프는 단순히 디스크에 놓인 .db 파일일 뿐입니다. 그런 다음 이 함수를 누가 호출하는지, 또는 제가 변경할 경우 파급 효과(blast radius)가 무엇인지—즉, 모든 전이적 호출자(transitive callers)—와 같은 것을 물어볼 수 있습니다. 또한 코드베이스의 위키를 덤프할 수도 있지만, 솔직히 그 부분은 주로 저 자신을 위한 문서가 필요했기 때문에 추가한 것입니다.
제가 가장 많이 사용하게 된 부분은 MCP 서버입니다. 저는 Claude Code를 사용하는데, 이는 이미 자체적으로 코드베이스 주변을 grep합니다—하지만 누가 무엇을 호출하는지 알아내기 위해 텍스트 검색을 다섯 번 수행하는 대신, 그래프에 직접 질문하고 한 번의 호출로 파일:라인과 함께 정확한 답변을 얻습니다. 임베딩 모델은 관여하지 않으며, 그저... 그래프 자체입니다. 이는 로컬 모델들에게는 아마도 더 중요한데, 왜냐하면 로컬 모델들은 검색에 그다지 능숙하지 않기 때문입니다.
데모 (2분):
리포: https://github.com/bolongpa/repopedia
주의할 점은, 버전이 0.2.1이라는 것입니다. Python과 TypeScript만 지원합니다. 메서드 호출은 self를 통해 이루어집니다.
이것은 이름 일치(name matching)를 통해 해결되는데, 이는 큰 클래스 트리(class trees)의 경우 말 그대로 매우 불안정합니다. 만약 누군가 자신의 저장소(repo)에서 이것을 실행했는데 엉뚱한 결과가 나온다면, 정말 듣고 싶습니다. ¯_(ツ)_/¯
제출자: /u/Unique-Business-9201
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기