
데이터베이스
NoSQLNoSQL
NoSQL(Not Only SQL)은 관계형 데이터베이스의 한계를 극복하기 위해 등장한 비관계형 데이터베이스의 총칭이다. 수평적 확장성, 유연한 스키마, 대용량 비정형 데이터 처리에 강점이 있다.
NoSQL 유형
| 유형 | 특징 | 대표 제품 | 사용 사례 |
|---|---|---|---|
| 문서 지향 | JSON 형식 문서 저장 | MongoDB, CouchDB | 콘텐츠, 사용자 프로필 |
| 키-값 | 단순 키-값 쌍 | Redis, DynamoDB | 캐싱, 세션 |
| 컬럼 지향 | 컬럼 단위 저장 | Cassandra, HBase | 시계열 데이터 |
| 그래프 | 노드-엣지 관계 | Neo4j, Amazon Neptune | SNS, 추천 시스템 |
NoSQL vs SQL
| 항목 | NoSQL | SQL (RDBMS) |
|---|---|---|
| 스키마 | 유연/동적 | 고정 |
| 확장 | 수평 확장 용이 | 수직 확장 주로 |
| 조인 | 제한적 | 강력 |
| ACID | 일부 지원 | 완전 지원 |
| 적합 데이터 | 비정형, 대용량 | 정형, 관계형 |
CAP 정리와 NoSQL
언제 NoSQL을 쓸까?
✓ 스키마가 자주 변경되는 경우 ✓ 수평 확장이 필요한 대규모 서비스 ✓ 키-값 캐싱, 실시간 데이터 처리 ✗ 복잡한 조인이 필요한 경우 ✗ 강한 ACID 일관성이 필요한 경우
관련 개념
- •MongoDB — 문서 지향 NoSQL
- •Redis — 키-값 NoSQL
- •SQL — 관계형 데이터베이스
참고문헌
- •Fowler, M. NoSQL Distilled (2012)