핵심 인사이트 (3줄 요약)
- 본질: Polyglot Persistence는 각 마이크로서비스가 자신의 데이터 특성에 가장 적합한 DB 기술을 독립적으로 선택하는 패턴이며, DB per Service의 자연스러운 확장이다.
- 가치: 모든 서비스가 같은 RDBMS를 사용하면 그래프 데이터에 JOIN 지옥, 시계열에 비효율 쿼리가 발생하지만, Polyglot은 주문=RDB, 추천=그래프DB, 로그=시계열DB로 최적화한다.
- 판단 포인트: 운영 복잡도(다양한 DB 관리)가 증가하므로, **관리형 서비스(RDS·DynamoDB·Neptune)**로 운영 부담을 줄이는 것이 현실적이다.
Ⅰ. 개요 및 필요성
주문 서비스 → PostgreSQL (관계형, ACID)
카탈로그 → MongoDB (문서형, 유연 스키마)
추천 → Neo4j (그래프, 관계 탐색)
캐시 → Redis (인메모리, 고속)
로그 → InfluxDB (시계열)
- 📢 섹션 요약 비유: Polyglot은 요리마다 최적의 칼(도구)을 쓰는 것이다. 모든 요리에 식빵 칼만 쓸 순 없다.
Ⅱ. 아키텍처 및 핵심 원리
| 데이터 유형 | 최적 DB |
| 관계형 | PostgreSQL, MySQL |
| 문서 | MongoDB |
| 그래프 | Neo4j |
| 키-값 | Redis, DynamoDB |
| 시계열 | InfluxDB, TimescaleDB |
Ⅲ~Ⅴ. 결론
Polyglot Persistence는 MSA의 데이터 최적화 전략이며, 관리형 서비스로 운영 부담을 줄이는 것이 핵심이다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| Polyglot | 서비스별 최적 DB |
| DB per Service | Polyglot의 전제 |
| NoSQL | 비관계형 DB |
| 관리형 서비스 | 운영 부담 감소 |
| CAP 정리 | DB 선택 기준 |
📈 관련 키워드 및 발전 흐름도
[단일 RDBMS (모노리스)] → [NoSQL 등장 (2010s)]
→ [Polyglot Persistence (MSA, 2014~)]
→ [관리형 서비스 (AWS RDS/DynamoDB)]
→ [현재: NewSQL + Polyglot — 최적 조합]
👶 어린이를 위한 3줄 비유 설명
- Polyglot은 요리마다 최적의 칼을 쓰는 거예요. 빵에는 빵 칼, 고기에는 고기 칼!
- 모든 요리에 식빵 칼만 쓰면 비효율적이에요.
- 각 서비스에 가장 잘 맞는 DB를 골라주면 성능이 좋아진답니다!