728x90
RAG(Retrieval-Augmented Generation) 시스템을 처음 구축하던 날, 나는 PostgreSQL에 텍스트를 그낥 저장하고 LIKE 검색으로 관련 문서를 찾으려 했다. 결과는 처참했다.
벡터 데이터베이스가 해결하는 문제
전통적인 DB는 정확한 값을 찾는다. 하지만 AI 시대의 검색은 "의미적으로 유사한 것 찾기"가 필요하다. 벡터 DB는 텍스트를 고차원 벡터로 변환하고, 벡터 간 거리를 측정해서 유사한 것들을 찾는다.
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
sentences = [
"강아지가 공원에서 뛰고 있다",
"개가 잔디밖을 달린다", # 의미적으로 위와 유사
"주식 시장이 하락했다", # 전혀 다른 의미
]
embeddings = model.encode(sentences)
similarities = cosine_similarity([embeddings[0]], embeddings[1:])
print(similarities) # [[0.87, 0.12]]
주요 벡터 DB 비교
| 항목 | Pinecone | Qdrant | Milvus |
|---|---|---|---|
| 타입 | 클라우드 SaaS | 오픈소스 | 오픈소스 |
| 설치 | 매우 쉬움 | 중간 (Docker) | 복잡 (K8s 권장) |
| 비용 | 유료 (무료 티어) | 무료 | 무료 |
| 추천 사용처 | 빠른 프로토타입 | 프로덕션 | 대규모 엔터프라이즈 |
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct
client = QdrantClient("localhost", port=6333)
client.create_collection(collection_name="docs",
vectors_config=VectorParams(size=384, distance=Distance.COSINE))
docs = [
{"id": 1, "text": "Python 비동기 프로그래밍 가이드", "category": "tech"},
{"id": 2, "text": "asyncio와 aiohttp 실전 활용", "category": "tech"},
]
points = [PointStruct(id=d["id"], vector=model.encode(d["text"]).tolist(),
payload={"text": d["text"], "category": d["category"]}) for d in docs]
client.upsert(collection_name="docs", points=points)
results = client.search(collection_name="docs",
query_vector=model.encode("Python async 사용법").tolist(),
query_filter={"must": [{"key": "category", "match": {"value": "tech"}}]},
limit=2)
for r in results:
print(f"Score: {r.score:.3f} | {r.payload['text']}")
데이터를 수치로 이해하는 것이 AI 시대 DB 엔지니어의 출발점이다
전통적인 "행과 열" 사고에서 "방향과 거리"의 사고로 전환하는 것, 그게 AI 시대 데이터 엔지니어가 갖춰야 할 새로운 직관이다.
함께 읽으면 좋은 글
300x250
'IT & 개발' 카테고리의 다른 글
| 바이브 코딩의 시대, 진짜 웹 개발자에게 남은 것 - 2026년 프론트엔드 생존 전략 (0) | 2026.03.16 |
|---|---|
| Docker에서 Podman으로 - 데모늬리스 아키텍처가 2026년 DevOps 표준이 되는 이유 (0) | 2026.03.16 |
| 267개 AI 모델의 충격 - 2026년 3월 에이전틱 AI가 IT 판세를 뒤흔다 (0) | 2026.03.16 |
| 6개월 후의 나를 위해 코드를 짜다 - 2026년 AI 시대에 더 중요해진 클린코드 5원칙 (0) | 2026.03.16 |
| 주니어 개발자가 사라지는 시대 - AI와 경쟁 말고 협업하는 2026년 콜리어 전략 (0) | 2026.03.16 |
댓글