피드로 돌아가기
Personal Assistant Role: One Search Across Email and Notes
Dev.toDev.to
Backend

Aho-Corasick 기반 통합 검색으로 단일 쿼리 내 다중 소스 ms급 응답 구현

Personal Assistant Role: One Search Across Email and Notes

AlexMikhalev2026년 4월 17일4advanced

Context

이메일, 메모, 채팅 기록 등 데이터 소스가 분산된 Silo 구조로 인한 과도한 Context Switch 발생. 각 소스별 개별 검색 방식에 따른 인지적 부하 및 통합 검색 인터페이스의 부재를 해결해야 하는 상황.

Technical Solution

  • Unified Role 설계를 통한 Obsidian(로컬)과 Fastmail(원격) 데이터 소스의 단일 검색 인터페이스 통합
  • Ripgrep 기반의 sub-millisecond 로컬 검색과 JMAP(RFC 8620/8621) 프로토콜을 이용한 서버 사이드 Full-text 검색의 병렬 구성
  • Aho-Corasick Automaton 기반의 Graph-embeddings 레이어를 통한 결정론적(Deterministic) 매칭 및 랭킹 처리
  • Obsidian Vault 내 프로젝트 어휘를 활용한 동의어 사전 구축으로 검색 신호(Signal) 최적화
  • 1Password 연동을 통한 JMAP_ACCESS_TOKEN 런타임 주입 방식으로 Secret 데이터의 디스크 저장 배제
  • JSON 설정 기반의 Haystack 확장 구조를 채택하여 추가 데이터 소스 도입 시 선형적 비용 증가 설계

1. 다중 소스 검색 시 개별 API 호출 대신 통합 랭킹 레이어를 통한 Result Interleaving 검토

2. 보안 민감 정보는 설정 파일이 아닌 런타임 환경 변수 주입 방식 채택

3. 벡터 임베딩의 모호함 대신 Byte-level 매칭과 Graph 기반의 결정론적 랭킹 도입 고려

원문 읽기