# [[Vector Database]] ## πŸ“Œ Brief Summary 벑터 λ°μ΄ν„°λ² μ΄μŠ€(Vector Database)λŠ” λ¨Έμ‹ λŸ¬λ‹ λͺ¨λΈμ΄ μƒμ„±ν•œ 고차원 벑터 μž„λ² λ”©μ„ 효율적으둜 μ €μž₯, 처리, μƒ‰μΈν•˜λ„λ‘ μ„€κ³„λœ 특수 μ €μž₯ μ‹œμŠ€ν…œμ΄λ‹€ [1, 2]. 전톡적인 λ°μ΄ν„°λ² μ΄μŠ€μ™€ 달리, 이 μ‹œμŠ€ν…œμ€ μ •ν™•ν•œ ν‚€μ›Œλ“œ μΌμΉ˜κ°€ μ•„λ‹Œ 코사인 μœ μ‚¬λ„λ‚˜ μœ ν΄λ¦¬λ“œ 거리 같은 μˆ˜ν•™μ  거리 μ§€ν‘œλ₯Ό ν™œμš©ν•˜μ—¬ 데이터 κ°„μ˜ 의미적 μœ μ‚¬μ„±μ„ λΉ„κ΅ν•œλ‹€ [3, 4]. 이λ₯Ό 톡해 ν…μŠ€νŠΈ, 이미지, μ˜€λ””μ˜€ λ“± λ°©λŒ€ν•œ λΉ„μ •ν˜• 데이터에 λŒ€ν•΄ λΉ λ₯΄κ³  μ •ν™•ν•œ 근사 μ΅œκ·Όμ ‘ 이웃(ANN) 검색을 μˆ˜ν–‰ν•˜μ—¬ μ‚¬μš©μžμ˜ 검색 μ˜λ„λ₯Ό νŒŒμ•…ν•  수 있게 ν•΄μ€€λ‹€ [2, 3, 5]. ## πŸ“– Core Content * **고차원 λ°μ΄ν„°μ˜ 인덱싱 및 μ €μž₯**: 벑터 λ°μ΄ν„°λ² μ΄μŠ€λŠ” ν…μŠ€νŠΈλ‚˜ 이미지 λ“±μ˜ λΉ„μ •ν˜• 데이터λ₯Ό 수백, 수천 개의 숫자둜 이루어진 닀차원 κ³΅κ°„μ˜ 벑터 μž„λ² λ”©μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ μ €μž₯ 및 μƒ‰μΈν•œλ‹€ [5-7]. * **νŠΉν™”λœ 벑터 인덱슀 μœ ν˜•**: λŒ€κ·œλͺ¨ λ°μ΄ν„°μ…‹μ—μ„œ λΉ λ₯΄κ³  효율적인 검색을 μ§€μ›ν•˜κΈ° μœ„ν•΄ νŠΉμˆ˜ν•œ 인덱슀 ꡬ쑰λ₯Ό μ‚¬μš©ν•œλ‹€. λŒ€ν‘œμ μœΌλ‘œ μ™„λ²½ν•œ 정확도λ₯Ό μ œκ³΅ν•˜μ§€λ§Œ μ†Œκ·œλͺ¨ 데이터에 μ ν•©ν•œ 'Flat index(무차별 λŒ€μž… 검색)', 속도와 μ •ν™•λ„μ˜ κ· ν˜•μ„ 맞좘 'HNSW(Hierarchical Navigable Small World)', 해싱을 μ΄μš©ν•΄ μœ μ‚¬ 벑터λ₯Ό κ΅°μ§‘ν™”ν•˜λŠ” 'LSH(Locality Sensitive Hashing)', 데이터λ₯Ό ν΄λŸ¬μŠ€ν„°λ‘œ λΆ„ν• ν•˜λŠ” 'IVF(Inverted File Index)', 그리고 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ 쀄이기 μœ„ν•΄ 벑터λ₯Ό μ••μΆ•ν•˜λŠ” 'PQ(Product Quantization)' 등이 μžˆλ‹€ [2, 4, 8]. * **μœ μ‚¬λ„ μΈ‘μ • λ©”μ»€λ‹ˆμ¦˜**: 쿼리 벑터와 λ¬Έμ„œ 벑터 κ°„μ˜ μœ μ‚¬μ„±μ„ μ •λŸ‰ν™”ν•˜κΈ° μœ„ν•΄ μˆ˜ν•™μ  거리 μ§€ν‘œλ₯Ό μ‚¬μš©ν•œλ‹€. 주둜 벑터 κ°„μ˜ 각도λ₯Ό ν‰κ°€ν•˜μ—¬ λ°©ν–₯적 μΌμΉ˜μ„±μ„ ν¬μ°©ν•˜λŠ” 코사인 μœ μ‚¬λ„(Cosine Similarity), 두 점 μ‚¬μ΄μ˜ 직선 거리λ₯Ό μΈ‘μ •ν•˜λŠ” μœ ν΄λ¦¬λ“œ 거리(Euclidean Distance), κΈ°κ³„ν•™μŠ΅ λͺ¨λΈμ—μ„œ 관련성을 μΈ‘μ •ν•  λ•Œ 자주 μ“°μ΄λŠ” 내적(Dot Product) 방식을 ν™œμš©ν•˜μ—¬ κ°€μž₯ κ°€κΉŒμš΄ 이웃(Nearest Neighbors)을 μ°Ύμ•„λ‚Έλ‹€ [3-5]. * **μ—”ν„°ν”„λΌμ΄μ¦ˆ AI 및 RAG의 핡심 인프라**: Pinecone, Weaviate, FAISS, Milvus λ“± λ‹€μ–‘ν•œ 벑터 λ°μ΄ν„°λ² μ΄μŠ€λŠ” λŒ€κ·œλͺ¨ ν™•μž₯이 κ°€λŠ₯ν•˜λ©°, 100ms 미만의 쿼리 μ§€μ—° μ‹œκ°„κ³Ό μˆ˜μ‹­μ–΅ 개의 벑터에 λŒ€ν•œ μˆ˜ν‰μ  ν™•μž₯성을 μ§€μ›ν•œλ‹€ [3, 9]. λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈ(LLM)의 ν™˜κ° ν˜„μƒμ„ 쀄이기 μœ„ν•œ RAG(검색 증강 생성) μ•„ν‚€ν…μ²˜μ—μ„œ, 질문과 κ°€μž₯ μ˜λ―Έκ°€ μœ μ‚¬ν•œ λ¬Έμ„œ 쑰각(Chunk)을 μ‹ μ†ν•˜κ²Œ κ²€μƒ‰ν•˜μ—¬ LLM에 μ œκ³΅ν•˜λŠ” 정보 검색 κ³„μΈ΅μœΌλ‘œ μž‘λ™ν•œλ‹€ [1, 9, 10]. ## βš–οΈ Trade-offs & Caveats * **μ°¨μ›μ˜ 저주와 μ»΄ν“¨νŒ… λΉ„μš©**: 벑터 λ°μ΄ν„°λ² μ΄μŠ€λŠ” 고차원 데이터λ₯Ό 닀루기 λ•Œλ¬Έμ— κΈ°μ‘΄ ν‚€μ›Œλ“œ 검색보닀 훨씬 더 λ§Žμ€ μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€λ₯Ό ν•„μš”λ‘œ ν•œλ‹€ [11, 12]. 차원 μˆ˜κ°€ μ¦κ°€ν• μˆ˜λ‘ 벑터 거리λ₯Ό κ³„μ‚°ν•˜λŠ” λΉ„μš©μ΄ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ μƒμŠΉν•˜μ—¬ 검색 μ„±λŠ₯이 μ €ν•˜λ˜λŠ” 'μ°¨μ›μ˜ μ €μ£Ό'κ°€ λ°œμƒν•  수 있으며, 이λ₯Ό μ™„ν™”ν•˜κΈ° μœ„ν•΄ 차원 μΆ•μ†Œλ‚˜ 벑터 μ–‘μžν™” 같은 손싀(Lossy) μ••μΆ• 기술이 μš”κ΅¬λœλ‹€ [12]. * **κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(Garbage Collection)의 어렀움**: κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ™€ 달리, κ°μ²΄λ‚˜ 값이 변경될 λ•Œ μΈλ±μŠ€μ—μ„œ 폐기된 정보λ₯Ό μ°Ύμ•„ μ œκ±°ν•˜κ³  μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•˜λŠ” 과정이 벑터 μΈλ±μŠ€μ—μ„œλŠ” 지속적인 기술적 λ‚œμ œλ‘œ μž‘μš©ν•œλ‹€ [12]. * **μ½œλ“œ μŠ€νƒ€νŠΈ(Cold Start) 문제**: 데이터셋에 μƒˆλ‘œμš΄ ν•­λͺ©μ΄ λ„μž…λ  λ•Œ, ν•΄λ‹Ή ν•­λͺ©μ— λŒ€ν•œ 잘 μ •μ˜λœ 벑터 ν‘œν˜„μ΄ μ—†κ±°λ‚˜ μœ μ‚¬λ„ 계산에 μ‚¬μš©ν•  데이터가 λΆ€μ‘±ν•˜μ—¬ μ •ν™•ν•˜κ²Œ μœ μ‚¬ ν•­λͺ©μ„ μ‹λ³„ν•˜κΈ° μ–΄λ €μš΄ ν•œκ³„κ°€ μ‘΄μž¬ν•œλ‹€ [12]. * **해석 κ°€λŠ₯μ„±(Interpretability)의 λΆ€μ‘±**: 벑터 ν‘œν˜„μ€ 인간이 μ§κ΄€μ μœΌλ‘œ 읽고 이해할 수 μ—†λŠ” 숫자의 λ°°μ—΄μ΄λ―€λ‘œ, μ™œ νŠΉμ • ν•­λͺ©λ“€μ΄ μœ μ‚¬ν•œ κ²ƒμœΌλ‘œ λΆ„λ₯˜λ˜μ–΄ κ²€μƒ‰λ˜μ—ˆλŠ”μ§€ κ·Έ κ·Όκ±°λ₯Ό νŒŒμ•…ν•˜κΈ° 맀우 μ–΄λ ΅λ‹€ [12]. μ΄λŠ” μ˜λ£Œλ‚˜ 법λ₯  λ“± AI의 결정에 λŒ€ν•œ μ„€λͺ… κ°€λŠ₯μ„±(Explainability)이 ν•„μˆ˜μ μΈ λ„λ©”μΈμ—μ„œλŠ” 치λͺ…적인 μ œμ•½μ΄ 될 수 μžˆλ‹€ [12]. * **μž„λ² λ”© λͺ¨λΈ ν’ˆμ§ˆμ— λŒ€ν•œ 높은 μ˜μ‘΄μ„±**: 벑터 λ°μ΄ν„°λ² μ΄μŠ€μ˜ 검색 μ„±λŠ₯은 데이터λ₯Ό λ²‘ν„°ν™”ν•˜λŠ” 기반 μž„λ² λ”© λͺ¨λΈμ˜ ν’ˆμ§ˆμ— μ ˆλŒ€μ μœΌλ‘œ μ˜μ‘΄ν•œλ‹€ [12]. λͺ¨λΈμ΄ ν•­λͺ©μ˜ μ‹€μ œ 속성과 의미λ₯Ό μ œλŒ€λ‘œ ν¬μ°©ν•˜μ§€ λͺ»ν•˜μ—¬ '의미적 κ°„κ·Ή(Semantic Gap)'이 λ°œμƒν•˜κ±°λ‚˜, ν•™μŠ΅ 데이터에 λ‚΄μž¬λœ 편ν–₯을 κ·ΈλŒ€λ‘œ 물렀받을 경우 λΆ€μ •ν™•ν•˜κ³  편ν–₯된 κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜κ²Œ λœλ‹€ [12, 13]. --- *Last updated: 2026-05-04*