본문으로 건너뛰기
Kreath Archive
TechProjectsBooksAbout
TechProjectsBooksAbout

내비게이션

  • Tech
  • Projects
  • Books
  • About
  • Tags

카테고리

  • AI / ML
  • 웹 개발
  • 프로그래밍
  • 개발 도구

연결

  • GitHub
  • Email
  • RSS
© 2026 Kreath Archive. All rights reserved.Built with Next.js + MDX
홈TechProjectsBooksAbout
//
  1. 홈
  2. 테크
  3. 1장: 벡터 데이터베이스의 등장과 핵심 개념
2026년 2월 14일·AI / ML·

1장: 벡터 데이터베이스의 등장과 핵심 개념

벡터 데이터베이스가 등장한 배경과 전통 데이터베이스와의 차이점, 유사도 검색 원리, ANN 알고리즘의 필요성, 그리고 주요 벡터 데이터베이스 생태계를 개괄합니다.

14분189자9개 섹션
vector-databaseaiembeddingsearchinfrastructure
공유
vector-database1 / 11
1234567891011
다음2장: 벡터 임베딩과 유사도 검색 기초

학습 목표

  • 벡터 데이터베이스가 필요해진 배경을 이해합니다
  • 전통적인 데이터베이스와 벡터 데이터베이스의 근본적 차이를 파악합니다
  • 유사도 검색의 기본 원리를 학습합니다
  • **ANN(Approximate Nearest Neighbor)**의 필요성을 이해합니다
  • 주요 벡터 데이터베이스 솔루션들의 특징을 개괄합니다

왜 벡터 데이터베이스인가

최근 몇 년간 AI와 머신러닝의 급격한 발전은 데이터를 다루는 방식 자체를 바꾸고 있습니다. **LLM(Large Language Model)**이 보편화되면서, 텍스트, 이미지, 오디오 등 비정형 데이터를 수치 벡터로 변환하여 활용하는 패턴이 표준이 되었습니다. 이 수치 벡터를 **임베딩(Embedding)**이라 부릅니다.

문제는 이 임베딩 벡터를 효율적으로 저장하고 검색하는 것입니다. 수백만에서 수십억 개의 고차원 벡터 중에서 "가장 유사한 것"을 밀리초 단위로 찾아내야 하는 요구사항은 전통적인 데이터베이스로는 해결할 수 없습니다.

Info

벡터 데이터베이스는 단순한 유행이 아닙니다. RAG(Retrieval-Augmented Generation), 추천 시스템, 이미지 검색, 이상 탐지 등 현대 AI 애플리케이션의 핵심 인프라입니다.

전통 데이터베이스 vs 벡터 데이터베이스

전통적인 관계형 데이터베이스는 **정확한 일치(exact match)**를 기반으로 설계되었습니다. WHERE name = 'vector' 같은 쿼리는 인덱스를 통해 빠르게 처리됩니다. 하지만 "이 문장과 의미적으로 가장 비슷한 문장을 찾아라"는 질의는 근본적으로 다른 문제입니다.

특성관계형 DB벡터 DB
데이터 모델행과 열 (정형)고차원 벡터 (비정형)
쿼리 방식정확한 일치, 범위 검색유사도 기반 근사 검색
인덱스B-Tree, HashHNSW, IVF, DiskANN
결과정확한 결과 집합유사도 순위 기반 근사 결과
확장 대상트랜잭션 처리량벡터 검색 처리량 (QPS)

핵심 차이점은 검색 패러다임 자체가 다르다는 것입니다. 관계형 DB가 "같은 것을 찾는" 도구라면, 벡터 DB는 "비슷한 것을 찾는" 도구입니다.

유사도 검색의 원리

벡터 공간에서 두 벡터의 "유사함"을 측정하는 방법은 여러 가지가 있습니다. 가장 널리 사용되는 세 가지 메트릭을 살펴보겠습니다.

코사인 유사도 (Cosine Similarity)

두 벡터 사이의 각도를 기반으로 유사도를 측정합니다. 벡터의 크기(magnitude)에 영향받지 않으므로 텍스트 임베딩에서 가장 많이 사용됩니다. 결과값은 -1에서 1 사이이며, 1에 가까울수록 유사합니다.

cosine_similarity.py
python
import numpy as np
 
def cosine_similarity(a: np.ndarray, b: np.ndarray) -> float:
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
 
# 예시: 두 문장의 임베딩 벡터
vec_a = np.array([0.1, 0.3, 0.5, 0.7])
vec_b = np.array([0.2, 0.4, 0.4, 0.6])
 
similarity = cosine_similarity(vec_a, vec_b)
print(f"코사인 유사도: {similarity:.4f}")  # 0.9878

유클리드 거리 (Euclidean Distance)

두 벡터 사이의 직선 거리를 측정합니다. 값이 작을수록 유사합니다. 벡터의 크기가 의미를 가지는 경우에 적합합니다.

내적 (Dot Product)

두 벡터의 내적으로 유사도를 측정합니다. 값이 클수록 유사합니다. 정규화된 벡터에서는 코사인 유사도와 동일한 결과를 냅니다. 계산이 가장 빠르므로 정규화된 임베딩에서 성능을 최적화할 때 선호됩니다.

정확한 검색의 한계와 ANN의 필요성

N개의 벡터 중에서 가장 유사한 K개를 찾는 KNN(K-Nearest Neighbor) 검색은 모든 벡터와의 거리를 계산해야 합니다. 이는 **O(N x D)**의 시간 복잡도를 가집니다(N은 벡터 수, D는 차원 수).

1,000개의 벡터라면 문제가 없지만, 1억 개의 1536차원 벡터라면 단일 쿼리에 수십 초가 걸립니다. 실시간 서비스에서는 사용할 수 없는 수준입니다.

이 문제를 해결하는 것이 ANN(Approximate Nearest Neighbor) 알고리즘입니다. ANN은 100% 정확한 결과 대신 "거의 정확한" 결과를 수십 밀리초 내에 반환합니다. **Recall(재현율)**이라는 지표로 정확도를 측정하며, 대부분의 실용적 시나리오에서 95% 이상의 recall을 달성합니다.

Tip

실제 프로덕션 환경에서는 recall 95-99%의 ANN이 recall 100%의 KNN보다 훨씬 실용적입니다. 1% 미만의 정확도 손실 대비 수백 배의 속도 향상을 얻을 수 있기 때문입니다.

주요 ANN 알고리즘 개요

벡터 데이터베이스들이 사용하는 주요 ANN 인덱스 알고리즘을 간략히 살펴보겠습니다. 각 알고리즘은 이후 장에서 깊이 있게 다룹니다.

HNSW (Hierarchical Navigable Small World)

다층 그래프 구조로 벡터를 연결하여 검색합니다. 높은 검색 속도와 recall을 동시에 달성하지만, 모든 벡터를 메모리에 올려야 합니다. 1억 개 미만의 인메모리 워크로드에 최적입니다.

IVF (Inverted File Index)

벡터 공간을 여러 클러스터로 분할한 뒤, 쿼리 벡터와 가까운 클러스터만 탐색합니다. 빌드 속도가 빠르고 메모리 효율적이며, **PQ(Product Quantization)**와 결합하면 수십억 규모에서도 작동합니다.

DiskANN

SSD 기반으로 동작하는 알고리즘으로, 메모리 제약이 있는 환경에서 10억 개 이상의 벡터를 처리할 수 있습니다. Microsoft Research에서 개발했으며, 메모리 대비 뛰어난 비용 효율을 보여줍니다.

벡터 데이터베이스 생태계

현재 벡터 데이터베이스 생태계는 크게 전용 솔루션과 확장 솔루션으로 나뉩니다.

전용 벡터 데이터베이스

솔루션특징배포 형태
Pinecone완전 관리형, 서버리스, SOC2/HIPAA클라우드 전용
Weaviate오픈소스, GraphQL API, 내장 벡터라이저셀프호스트 + 클라우드
QdrantRust 기반 고성능, 풍부한 필터링셀프호스트 + 클라우드
Milvus분산 아키텍처, GPU 가속셀프호스트 + Zilliz Cloud
Chroma경량, 로컬 개발 최적화로컬 + 클라우드

기존 DB 확장

솔루션기반특징
pgvectorPostgreSQL트랜잭션 일관성, 기존 인프라 활용
ElasticsearchLucenekNN 검색 + 전문 검색 통합
RedisRedisRediSearch 모듈, 인메모리 고속

각 솔루션의 선택 기준은 데이터 규모, 성능 요구사항, 운영 역량, 비용 등에 따라 달라집니다. 6장부터 8장까지 주요 솔루션을 심층적으로 비교 분석합니다.

Info

벡터 데이터베이스 선택은 "최고의 솔루션"을 고르는 것이 아니라, 자신의 요구사항에 "가장 적합한 솔루션"을 고르는 것입니다. 11장에서 의사결정 프레임워크를 제시합니다.

이 시리즈에서 다루는 내용

이 시리즈는 총 11장으로 구성되어 있으며, 다음과 같은 흐름으로 진행됩니다.

  1. 기초 개념 (1-2장): 벡터 DB의 필요성, 임베딩, 유사도 검색
  2. 인덱싱 알고리즘 (3-5장): HNSW, IVF+PQ, DiskANN 심층 분석
  3. 솔루션 비교 (6-8장): Pinecone, Weaviate, Qdrant, pgvector 실습
  4. 고급 기법 (9-10장): 하이브리드 검색, 메타데이터 필터링
  5. 운영 (11장): 스케일링, 모니터링, 비용 최적화, 솔루션 선택 가이드

정리

이번 장에서는 벡터 데이터베이스가 등장한 배경과 핵심 개념을 살펴보았습니다. 전통적인 데이터베이스가 정확한 일치 검색에 최적화되어 있다면, 벡터 데이터베이스는 유사도 기반 근사 검색에 최적화되어 있습니다. ANN 알고리즘을 통해 약간의 정확도를 희생하는 대신 수백 배의 속도 향상을 얻을 수 있으며, 이것이 현대 AI 애플리케이션의 실시간 서비스를 가능하게 합니다.

다음 장에서는 벡터 데이터베이스의 입력이 되는 **임베딩(Embedding)**의 원리와 유사도 메트릭을 깊이 있게 다룹니다. 텍스트, 이미지, 멀티모달 임베딩 모델의 차이와 선택 기준을 함께 살펴보겠습니다.

이 글이 도움이 되셨나요?

관련 주제 더 보기

#vector-database#ai#embedding#search#infrastructure

관련 글

AI / ML

2장: 벡터 임베딩과 유사도 검색 기초

임베딩의 원리와 텍스트, 이미지, 멀티모달 임베딩 모델을 비교하고, 유사도 메트릭의 수학적 배경과 차원의 저주, 임베딩 모델 선택 가이드를 다룹니다.

2026년 2월 16일·15분
AI / ML

3장: HNSW 알고리즘 심층 분석

HNSW 알고리즘의 원리를 NSW 그래프에서부터 다층 구조까지 단계별로 분석하고, 핵심 파라미터 튜닝과 성능 특성, 적합한 사용 시나리오를 다룹니다.

2026년 2월 18일·15분
AI / ML

4장: IVF와 Product Quantization

IVF 클러스터링 기반 검색과 Product Quantization의 원리를 분석하고, IVF+PQ 조합의 대규모 데이터셋 최적화 전략과 메모리-정확도 트레이드오프를 다룹니다.

2026년 2월 20일·15분
다음 글2장: 벡터 임베딩과 유사도 검색 기초

댓글

목차

약 14분 남음
  • 학습 목표
  • 왜 벡터 데이터베이스인가
  • 전통 데이터베이스 vs 벡터 데이터베이스
  • 유사도 검색의 원리
    • 코사인 유사도 (Cosine Similarity)
    • 유클리드 거리 (Euclidean Distance)
    • 내적 (Dot Product)
  • 정확한 검색의 한계와 ANN의 필요성
  • 주요 ANN 알고리즘 개요
    • HNSW (Hierarchical Navigable Small World)
    • IVF (Inverted File Index)
    • DiskANN
  • 벡터 데이터베이스 생태계
    • 전용 벡터 데이터베이스
    • 기존 DB 확장
  • 이 시리즈에서 다루는 내용
  • 정리