RAG for Developers — 코드용으로 구축, 텍스트만은 아님 (리뷰 요청)

발행: (2025년 12월 14일 오전 06:42 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Cover image for RAG for Developers — Built for Code, Not Just Text (Review Requested)

Code-Aware RAG Tool — Looking for Developer Feedback

우리는 코드 기반 RAG 도구를 만들고 있습니다. 이 도구는 단순히 텍스트가 임베딩에서 어떻게 보이는지만이 아니라, 코드베이스가 어떻게 동작하는지를 이해합니다. 목표는 간단합니다: 질문을 하면 무작위로 근처에 있는 스니펫이 아니라, 올바른 함수와 관련 호출, 그리고 지원 코드를 반환하는 것입니다.

What’s Inside

  • AST‑based code chunking with Tree‑sitter (Python, JavaScript, TypeScript)
  • functions, classes, imports, calls, docstrings 를 명시적으로 추출
  • 엄격한 tool → agent → storage 경계를 갖는 깔끔한 비동기 인제스트 파이프라인
  • Semantic vector search 를 시작점으로 사용, 최종 목표는 아님
  • In‑memory dependency graph expansion
    • 청크 메타데이터에서 지연(lazy)으로 구축
    • 영구 저장소, 전역 변수, 백엔드 단축키 없음
  • Stable qualified IDs (file::entity)
  • Context expansion 은 호출 및 import 를 BFS 로 탐색해 실제 연결된 코드를 끌어옴
  • Backend‑agnostic vector store layer, 따라서 스토리지를 교체해도 로직을 다시 작성할 필요 없음

Why We Think This Is Useful

  • 유사한 텍스트가 아니라 연관된 코드 경로를 제공
  • 컨텍스트가 작고, 관련성이 높으며 디버깅이 쉬움
  • 아키텍처가 숨겨진 상태와 확장성 문제를 방지

What We’d Love Feedback On

대규모 레포지토리를 다뤘거나 RAG 시스템을 구축해 본 경험이 있다면, 다음에 대한 여러분의 의견을 정말로 듣고 싶습니다:

  • “graph as derived state” 설계
  • Chunk metadata choices (calls, imports, QIDs)
  • Retrieval + expansion flow
  • 실제 프로덕션 코드베이스에서 나타날 수 있는 모든 엣지 케이스

간단한 반응이나 직관적인 체크도 환영합니다.

Back to Blog

관련 글

더 보기 »