코딩 에이전트가 파일을 통째로 읽지 않고 필요한 코드만 정확히 가져오게 하는 로컬 검색 엔진
에이전트가 코드베이스를 탐색할 때 토큰을 낭비하지 않고 핵심만 파악하는 장면을 상상해 보세요. XERJ는 폴더 하나를 지정하면 코드, 문서, 로그, PDF까지 자동으로 인덱싱하여 검색 가능한 형태로 만들어 줍니다. Elasticsearch API를 그대로 지원하므로 기존 클라이언트나 대시보드를 수정 없이 연결할 수 있습니다.
토큰 소모를 줄이는 참조 코딩
에이전트가 grep으로 파일을 찾으면 전체 내용을 컨텍스트에 불러와야 하므로 토큰 소모가 큽니다. XERJ는 인덱싱된 패스지만 반환하여 이 문제를 해결합니다. 통제된 실험에서 grep 기반 에이전트보다 출력 토큰을 2.7배, 메모리 기반보다 26배 줄이면서도 동일한 16/16 해결률을 기록했습니다. 실제 개발 환경에서는 사용자가 약 5배의 토큰 절감 효과를 보고했습니다. 이 효과는 모델이 이미 알고 있는 인기 있는 공개 라이브러리보다는 내부 코드나 최신 코드에서 더 뚜렷하게 나타납니다.
자동 인덱싱과 다양한 데이터 지원
xerj autoindex 명령 하나로 폴더 내 모든 파일을 스캔하고 유형을 감지하여 인덱스를 생성합니다. 스키마 작성이나 파이프라인 설정이 필요 없으며, tree-sitter를 통해 코드의 심볼과 줄 번호까지 함께 인덱싱합니다. CSV, JSON, SQLite, PDF, DOCX, Jupyter 노트북, Unity 프로젝트 등 다양한 형식을 지원하며, 각 데이터셋마다 별도의 인덱스를 만듭니다. 재인덱싱 시에는 변경된 파일만 처리하여 효율성을 높입니다.
Elasticsearch 호환성과 벤치마크
XERJ는 Elasticsearch REST API를 구현하여 Kibana나 공식 클라이언트 라이브러리를 그대로 사용할 수 있습니다. 인덱스, 문서, 벌크, 검색, 집계, kNN, 스크롤, 리인덱싱 등 주요 기능을 지원합니다. Elasticsearch 8.13.4와 비교한 벤치마크에서 55승 26무 4패를 기록했으며, 인덱싱 처리량은 1.72배, 디스크 사용량은 1.61배 작았습니다. 유일한 열세는 높은 쓰기 부하 하에서의 읽기 p99 지연 시간입니다. 정합성 테스트 스위트는 1369개 중 1366개 케이스를 통과합니다.
보안 모델과 설치 방법
개발용 --insecure 플래그는 TLS와 API 키 인증을 비활성화하므로, 포트에 접근할 수 있는 모든 호출자가 슈퍼유저가 됩니다. 이는 로컬 개발 머신에서 단일 사용자가 사용할 때 적합하며, 새로운 노드는 기본적으로 127.0.0.1에만 바인딩됩니다. 인증이 켜진 상태에서는 XERJ_API_KEY 환경 변수나 --api-key 옵션으로 키를 전달해야 합니다. 설치 방법은 curl -fsSL https://xerj.org/get | sh 한 줄로 가능하며, Linux, macOS, Windows의 x86-64와 arm64 아키텍처를 지원합니다. Rust로 작성된 단일 바이너리이며 외부 의존성이 없습니다.
사용 전 확인 사항
XERJ는 Apache 2.0 라이선스로 배포되며, 커뮤니티 기여는 짧은 필드 리포트 제출을 통해 이루어집니다. 신경망 기반 의미 검색을 사용하려면 모델 파일을 로컬에 미리 배치해야 하지만, 기본 어휘 임베더는 오프라인에서 동작합니다. 보안 모델 문서를 반드시 읽고, --insecure 모드의 위험성을 이해한 후 사용해야 합니다. Elasticsearch의 내부 구현을 재현한 것이 아니라 API 호환성을 갖춘 독립적인 엔진임을 인지하고, 스크롤 API의 한계(유한 스냅샷)를 고려하여 대규모 결과 집합에는 search_after를 사용하는 것이 좋습니다.