본문 바로가기
Database2026년 5월 22일3분 읽기

SurrealDB 2.0 프로덕션 6개월 — 멀티모델 DB 실전 후기

YS
김영삼
조회 144
SurrealDB 2.0 프로덕션 6개월 — 멀티모델 DB 실전 후기

핵심 요약

SurrealDB 2.0을 사내 SaaS(MAU 2.5만, 그래프 + 관계형 혼합 워크로드)에 6개월 적용. 단일 DB로 사용자·관계·이벤트를 모두 처리하면서 코드량 -35%, 인프라 비용 Postgres + Neo4j 대비 -45%. 단, 학습 곡선과 일부 운영 도구 미성숙은 감수.

1. 무엇을 잘하나

  • 한 쿼리에 문서 + 그래프 + 관계형
  • WebSocket Live Query — 실시간 구독 1급
  • 임베디드부터 분산 클러스터까지 동일 코드
  • SurrealQL — SQL-like + 확장

2. 쿼리 예시

-- 관계 정의
RELATE user:alice->follows->user:bob;

-- 그래프 쿼리
SELECT id, name, ->follows->user.* AS following
FROM user:alice;

-- 라이브 쿼리
LIVE SELECT * FROM message WHERE room = $room;

3. 성능

워크로드Postgres+Neo4jSurrealDB
1단계 관계 조회4ms3ms
3단계 그래프 탐색45ms(Neo4j)38ms
document scan22ms30ms
writeops/s8.5K11K

4. Live Query — WebSocket 구독

채팅·알림·실시간 대시보드에서 강력. Redis Pub/Sub + 폴링 조합을 제거. 클라가 SQL 결과를 구독하면 변경 시 자동 푸시.

5. 운영

  • 분산 클러스터는 TiKV(2.0)·SurrealKV(2.0+)·FoundationDB 선택
  • 백업: 노드 별 snapshot. 증분 백업은 아직 운영자 부담
  • 모니터링: Prometheus exporter 기본 제공

6. 함정

  • 스키마 진화 — schemaless로 시작했다가 부분 schemafull로 가는 마이그레이션이 번거로움
  • SurrealQL 학습 — 팀 평균 1주
  • 오래된 ORM 도구 없음 — 직접 작성 또는 SDK 사용

7. 결정 가이드

  • 그래프·관계·문서를 모두 다루는 신규 SaaS → SurrealDB
  • Postgres 성숙 자산 큼 → Postgres + age(graph) 또는 별도 그래프 DB
  • 실시간 구독이 핵심 → SurrealDB Live Query 매력

자주 묻는 질문

Q. 한국어 풀텍스트? 2.0에서 stemming·tokenizer 한국어 지원 추가됐지만 PG nori 수준은 아님. 검색이 핵심이면 OpenSearch 별도.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록