RAG for Developers — 코드용으로 구축, 텍스트만은 아님 (리뷰 요청)
발행: (2025년 12월 14일 오전 06:42 GMT+9)
3 min read
원문: Dev.to
Source: Dev.to

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
- 실제 프로덕션 코드베이스에서 나타날 수 있는 모든 엣지 케이스
간단한 반응이나 직관적인 체크도 환영합니다.