이 게임과 실제 벡터 DB의 연결고리
좌표 = 벡터
각 항목의 3D 좌표는 실제 서비스에서 문장·이미지를 수백 차원의 숫자 배열(임베딩 벡터)로 바꾼 것과 같은 개념이에요. 의미가 비슷한 것들은 공간에서 서로 가깝게 놓입니다.
탭 = kNN 탐색
방금 여러분이 한 일 — 쿼리와 가장 가까운 점을 찾는 것 — 이 바로 최근접 이웃(Nearest Neighbor) 탐색입니다. 벡터 DB의 검색 기능은 결국 이 계산을 아주 빠르게 반복하는 것이에요.
전수조사의 한계
항목이 12개면 눈으로도 찾을 수 있지만, 실제 서비스는 수백만~수십억 개의 벡터를 다룹니다. 모든 점과 거리를 일일이 재는 건(전수조사) 너무 느려서 실시간 검색이 불가능해요.
HNSW
그래서 HNSW(계층적 근접 그래프) 같은 근사 최근접 이웃(ANN) 알고리즘을 씁니다. 고속도로 → 국도 → 골목길처럼, 멀리서부터 큰 폭으로 건너뛰다가 목적지 근처에서 촘촘하게 좁혀가며 후보를 찾아, 완벽한 정확도 대신 압도적인 속도를 얻는 방식이죠.
실제 서비스
Pinecone, Weaviate, Milvus, Qdrant 같은 벡터 데이터베이스는 이런 인덱싱 구조를 미리 만들어두고, 여러분이 방금 한 "쿼리와 가장 가까운 항목 찾기"를 초 단위 이하로 수행할 수 있게 해주는 인프라예요.
embeddingcosine / L2 distanceANNHNSWvector index