적절한 데이터베이스를 선택하는 것은 핵심적인 시스템 디자인 결정입니다 — 데이터, 접근 패턴, 규모, 일관성 요구에 따라 **SQL(관계형)**과 NoSQL 유형(document, key-value 등) 사이에서 선택합니다. 서로 다른 데이터베이스는 서로 다른 요구사항에 적합합니다.
SQL vs NoSQL (주요 선택)
SQL (관계형: PostgreSQL, MySQL) → 구조화된 데이터, 테이블, 관계, ACID:
✓ 강한 일관성, 복잡한 쿼리/조인, 트랜잭션, 잘 정의된 스키마
✓ 적합: 관계형 데이터, 트랜잭션, 복잡한 쿼리 (대부분의 전통적 앱)
NOSQL → 다양한 비관계형 모델, 유연한 스키마, 종종 더 쉬운 수평 확장:
→ DOCUMENT (MongoDB) → 유연한 JSON 유사 문서
→ KEY-VALUE (Redis, DynamoDB) → 단순하고 빠른 조회, 캐싱
→ WIDE-COLUMN (Cassandra) → 막대한 규모, 높은 쓰기 throughput
→ GRAPH (Neo4j) → 관계/네트워크
✓ 적합: 유연한 스키마, 거대한 규모, 특정 접근 패턴, 높은 throughput
