본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 21. 12:14

Veles: 로컬 Rust MCP 서버에서의 Hybrid BM25 + Semantic 코드 검색

요약

Veles는 Rust로 구현된 로컬 MCP(Model Context Protocol) 서버로, 키워드 기반의 BM25와 의미론적 Semantic 검색을 결합한 하이브리드 코드 검색 엔진입니다. 이를 통해 개발자는 데이터 프라이버시를 유지하면서 Claude와 같은 AI 에이전트가 로컬 코드베이스를 정확하고 빠르게 탐색할 수 있도록 지원합니다.

핵심 포인트

  • BM25의 정확한 토큰 매칭과 Semantic 검색의 개념적 이해를 결합한 하이브리드 방식 채택
  • Rust 언어를 사용하여 인덱싱 및 검색 성능을 극대화하고 로컬 환경에서 실행
  • MCP(Model Context Protocol)를 지원하여 Claude 등 AI 에이전트와의 연동 용이
  • Indexer, Vector Store, BM25 Engine, Reranker로 구성된 체계적인 아키텍처 제공

코드 검색은 개발자에게 매우 중요한 작업입니다. 하지만 많은 경우, 검색 엔진은 코드의 문맥을 이해하지 못하거나 너무 많은 관련 없는 결과를 반환합니다.

이 글에서는 로컬 Rust MCP (Model Context Protocol) 서버에서 구현된 Hybrid BM25 및 Semantic 코드 검색 엔진인 Veles에 대해 소개합니다.

[IMG:1]

왜 Veles인가?

대부분의 코드 검색 시스템은 다음 두 가지 방식 중 하나를 사용합니다:

  1. 키워드 기반 검색 (Keyword-based Search): BM25와 같은 알고리즘을 사용하여 정확한 토큰 일치를 찾습니다. 이는 특정 함수 이름이나 변수명을 찾을 때 매우 빠르고 정확하지만, 의미론적 유사성(Semantic similarity)을 포착하지 못합니다.
  2. 시맨틱 검색 (Semantic Search): 임베딩 (Embedding) 모델을 사용하여 코드의 의미를 벡터 공간에 투영합니다. 이는 "데이터를 저장하는 함수"와 같이 개념적인 쿼리에 대응할 수 있지만, 정확한 식별자를 찾는 데는 어려움을 겪을 수 있습니다.

Veles는 이 두 가지의 장점을 결합한 하이브리드 (Hybrid) 접근 방식을 취합니다.

핵심 기능

  • Hybrid BM25 + Semantic Search: 키워드 매칭과 벡터 검색을 결합하여 검색 결과의 정확도와 관련성을 극대화합니다.
  • Local Rust MCP Server: 모든 인덱싱과 검색이 로컬에서 실행됩니다. 이는 데이터 프라이버시를 보장하며, MCP (Model Context Protocol)를 통해 Claude와 같은 AI 에이전트가 코드베이스에 직접 접근할 수 있게 합니다.
  • High Performance: Rust로 작성되어 인덱싱 및 검색 속도가 매우 빠릅니다.

[IMG:2]

아키텍처

Veles는 다음과 같은 구성 요소로 이루어져 있습니다:

  • Indexer: 코드베이스를 스캔하고, 토큰화 (Tokenization) 및 임베딩 (Embedding)을 수행합니다.
  • Vector Store: 생성된 임베딩을 저장하고 유사도 검색을 수행합니다.
  • BM25 Engine: 텍스트 기반의 통계적 검색을 수행합니다.
  • Reranker: 하이브리드 검색 결과를 결합하고 최종 순위를 재조정합니다.

사용 방법

[IMG:3]

설치는 매우 간단합니다. Cargo를 사용하여 직접 빌드하거나 미리 빌드된 바이너리를 사용할 수 있습니다.

# 설치 예시
cargo install veles

그 후, MCP 설정을 통해 Claude Desktop 등에 연결하여 사용할 수 있습니다.

결론

Veles는 개발자가 자신의 로컬 코드베이스를 AI 에이전트와 함께 더 효과적으로 탐색할 수 있도록 돕는 강력한 도구입니다. Rust의 성능과 하이브리드 검색의 정확성을 결합하여, 코드 검색의 새로운 표준을 제시하고자 합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0