1️⃣ pgvector 확장으로 벡터 검색 가능
PostgreSQL에는 pgvector 라는 확장이 있습니다.
이걸 설치하면 다음이 가능해집니다.
- embedding vector 저장
- cosine similarity
- inner product
- L2 distance 검색
예
CREATE EXTENSION vector;
CREATE TABLE document (
id bigserial PRIMARY KEY,
content text,
embedding vector(1536)
);
SELECT *
FROM document
ORDER BY embedding <-> '[0.12,0.98,...]'
LIMIT 5;
CREATE TABLE document (
id bigserial PRIMARY KEY,
content text,
embedding vector(1536)
);
SELECT *
FROM document
ORDER BY embedding <-> '[0.12,0.98,...]'
LIMIT 5;
즉 RDB에서 바로 Vector Similarity Search 가능합니다.
2️⃣ AI 서비스에서 구조데이터 + 벡터 같이 관리
AI 서비스는 보통 데이터가 두 종류입니다.
종류예
| 구조 데이터 | user, document, metadata |
| 벡터 데이터 | embedding |
예
document
├ id
├ title
├ content
├ author
└ embedding(vector)
├ id
├ title
├ content
├ author
└ embedding(vector)
PostgreSQL 하나로 해결 가능
RDB + Vector DB
따로 DB 두 개 운영할 필요 없습니다.
3️⃣ 인덱스 지원 (성능)
pgvector는 벡터 인덱스를 제공합니다.
대표적으로
- IVFFlat
- HNSW
예
CREATE INDEX ON document
USING ivfflat (embedding vector_cosine_ops);
USING ivfflat (embedding vector_cosine_ops);
→ 대량 벡터에서도 빠른 ANN 검색 가능
4️⃣ 기존 백엔드와 궁합이 좋음
르무엘님처럼 Java / Spring 백엔드에서는 이게 중요합니다.
PostgreSQL은 이미 대부분 시스템에서 사용 중입니다.
지원
- JDBC
- Spring Data
- JPA
- MyBatis
즉
Spring Boot
↓
PostgreSQL + pgvector
↓
PostgreSQL + pgvector
바로 붙습니다.
5️⃣ 운영이 단순
Vector DB를 따로 쓰면
Postgres (업무DB)
+
Pinecone / Milvus / Weaviate (Vector DB)
+
Pinecone / Milvus / Weaviate (Vector DB)
이렇게 됩니다.
운영 복잡도 ↑
하지만
Postgres + pgvector
이면
- DB 하나
- 백업 하나
- 운영 하나
SI / 공공 프로젝트에서는 이게 훨씬 현실적입니다.
6️⃣ RAG 시스템에서 구조가 깔끔
RAG 시스템의 기본 구조입니다.
Document 저장
│
▼
Embedding 생성
│
▼
PostgreSQL (pgvector)
│
▼
Similarity Search
│
▼
LLM Prompt
│
▼
Embedding 생성
│
▼
PostgreSQL (pgvector)
│
▼
Similarity Search
│
▼
LLM Prompt
즉
RAG = Vector Search + Metadata Query
PostgreSQL이 둘 다 처리합니다.
📊 실제 AI 서비스에서 DB 선택 패턴
상황선택
| 스타트업 / MVP | PostgreSQL + pgvector |
| SI / 공공 프로젝트 | PostgreSQL + pgvector |
| 초대형 벡터 (10억+) | Milvus |
| SaaS 서비스 | Pinecone |
| Graph 기반 AI | Neo4j |
그래서 지금 RAG 서비스 70% 이상은 Postgres 시작입니다.
정리 (개발자 관점)
왜 PostgreSQL 쓰냐?
1️⃣ 기존 RDB 그대로 사용
2️⃣ pgvector로 벡터 검색 가능
3️⃣ 메타데이터 + 벡터 같이 관리
4️⃣ Spring/JPA 호환
5️⃣ 운영 단순
6️⃣ RAG 구조에 딱 맞음
즉
PostgreSQL = AI 서비스용 "현실적인 Vector DB"
LIST
'DB' 카테고리의 다른 글
| OpenSearch (0) | 2026.03.10 |
|---|---|
| Qdrant (0) | 2026.03.10 |
| 열 기반 DB와 행 기반 DB의 차이점은 무엇인가요? (0) | 2026.03.04 |
| 코드에 Git이 있다면, DB에는 Flyway가 있다 (feat. DB Orchestrating) (0) | 2026.02.26 |
| 쿼리가 느린 게 아니라 모델이 거짓말을 하고 있다. (0) | 2026.02.06 |
