피드로 돌아가기
Building Your Own "Google Maps for Codebases": A Guide to Semantic Code Search with LLMs
Dev.toDev.to
AI/ML

Tree-sitter와 Vector DB 기반의 Semantic Code Search 엔진 구축

Building Your Own "Google Maps for Codebases": A Guide to Semantic Code Search with LLMs

Midas1262026년 4월 11일8intermediate

Context

전통적인 Keyword Search 방식의 grep 및 IDE 검색은 단순 텍스트 일치에 의존하여 코드의 실제 의도와 맥락을 파악하지 못하는 한계 존재. 특히 대규모 Legacy Monolith 환경에서 함수 명명 규칙이 일관되지 않을 경우 코드 추적 및 파악에 과도한 비용 소요.

Technical Solution

  • Tree-sitter를 활용한 AST 기반 Parsing으로 단순 라인 분할이 아닌 함수 및 클래스 단위의 의미론적 Chunking 수행
  • Code-specific Embedding Model을 통한 소스 코드와 자연어 쿼리를 동일한 벡터 공간으로 매핑하여 개념적 유사도 측정
  • Chroma Vector DB 도입을 통한 고차원 벡터 데이터 저장 및 효율적인 Similarity Search 구현
  • Retrieval-Augmented Generation(RAG) 패턴을 적용하여 검색된 코드 조각을 LLM 컨텍스트에 주입함으로써 환각 현상을 방지한 정밀 답변 생성
  • 파일 경로 및 라인 번호를 Metadata로 함께 저장하여 검색 결과의 추적 가능성과 물리적 위치 매핑 보장

- 단순 텍스트 분할 대신 Tree-sitter와 같은 Parser를 사용하여 코드의 구조적 단위로 Chunking 할 것 - 일반 텍스트 모델보다 CodeBERT 등 코드 학습 전용 Embedding Model을 검토하여 벡터 정확도를 높일 것 - LLM의 답변 신뢰도를 위해 검색된 Context 내에서만 답변하도록 하는 RAG 프롬프트 제약 조건을 설정할 것 - Vector DB 선택 시 Metadata 필터링 기능 지원 여부를 확인하여 파일 확장자나 경로별 검색 최적화를 수행할 것

원문 읽기