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;
 

RDB에서 바로 Vector Similarity Search 가능합니다.


2️⃣ AI 서비스에서 구조데이터 + 벡터 같이 관리

AI 서비스는 보통 데이터가 두 종류입니다.

종류예
구조 데이터 user, document, metadata
벡터 데이터 embedding

document
├ 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);
 

→ 대량 벡터에서도 빠른 ANN 검색 가능


4️⃣ 기존 백엔드와 궁합이 좋음

르무엘님처럼 Java / Spring 백엔드에서는 이게 중요합니다.

PostgreSQL은 이미 대부분 시스템에서 사용 중입니다.

지원

  • JDBC
  • Spring Data
  • JPA
  • MyBatis

Spring Boot

PostgreSQL + pgvector
 

바로 붙습니다.


5️⃣ 운영이 단순

Vector DB를 따로 쓰면

Postgres (업무DB)
+
Pinecone / Milvus / Weaviate (Vector DB)
 

이렇게 됩니다.

운영 복잡도 ↑

하지만

Postgres + pgvector
 

이면

  • DB 하나
  • 백업 하나
  • 운영 하나

SI / 공공 프로젝트에서는 이게 훨씬 현실적입니다.


6️⃣ RAG 시스템에서 구조가 깔끔

RAG 시스템의 기본 구조입니다.

Document 저장


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

+ Recent posts