정의
NoSQL(Not Only SQL)은 관계형 데이터베이스(RDBMS)와 달리 고정된 스키마를 요구하지 않고, 다양한 데이터 모델(키-값, 문서, 컬럼 패밀리, 그래프 등)을 지원하는 데이터 저장 시스템을 총칭한다. 일반적으로 대용량 데이터 처리, 높은 쓰기·읽기 처리량, 확장성을 목표로 설계된다.
어원 및 용어 사용 배경
1998년 캐시 레이시(Cached Systems)에서 “NoSQL”이라는 용어가 처음 등장했으며, 2009년 히에락스(Hector Garcia‑Molino)와 마이클 타운스(Michael Stonebraker)의 논문에서 현재와 같이 “Not Only SQL”이라는 의미로 재사용되었다. 이후 웹 서비스와 빅데이터 환경에서 관계형 데이터베이스의 한계를 극복하기 위한 대안으로 널리 사용되었다.
주요 데이터 모델
| 모델 | 특징 | 대표 구현체 |
|---|---|---|
| 키‑값(key‑value) | 단순한 키와 값의 쌍으로 저장, 빠른 조회 | Redis, Riak, Amazon DynamoDB |
| 문서(document) | JSON, BSON 등 구조화된 문서 형태, 유연한 스키마 | MongoDB, CouchDB |
| 컬럼 패밀리(column-family) | 행을 컬럼 그룹으로 묶어 저장, 대규모 분산에 최적 | Apache Cassandra, HBase |
| 그래프(graph) | 정점과 간선으로 복잡한 관계를 모델링 | Neo4j, Amazon Neptune |
특징 및 장점
- 스키마 자유도: 사전에 스키마를 정의하지 않아도 되며, 구조 변경이 용이하다.
- 수평 확장성: 노드를 추가함으로써 데이터와 트래픽을 분산 처리한다.
- 고성능: 메모리 기반 또는 디스크 최적화 설계로 높은 쓰기·읽기 처리량을 제공한다.
- 다양한 일관성 모델: 강력 일관성(Strong Consistency)부터 최종 일관성(Eventual Consistency)까지 선택 가능하다.
단점 및 고려 사항
- 일관성 보장 제한: 대부분이 CAP 정리에서 일관성(C)보다 가용성(A)와 파티션 허용성(P)을 우선시한다.
- 표준화 부재: SQL과 달리 표준 쿼리 언어나 API가 없으며, 벤더마다 인터페이스가 다다.
- 복잡한 트랜잭션: 다중 문서·다중 컬럼에 대한 ACID 트랜잭션 지원이 제한적이다.
주요 사용 사례
- 실시간 로그·이벤트 스트리밍
- 사용자 프로필·세션 저장소
- 대규모 소셜 그래프 및 추천 시스템
- IoT 센서 데이터 저장
- 캐시 계층 및 메시지 큐 백엔드
관련 기술 및 생태계
- 분산 파일 시스템: Hadoop HDFS, Amazon S3 등과 연동되어 대용량 데이터 파이프라인을 구성한다.
- 쿼리 언어: Apache Drill, Presto, Spark SQL 등은 NoSQL 저장소에 대한 통합 질의를 제공한다.
- 운영 도구: Kubernetes, Docker, Helm 등을 활용한 컨테이너 기반 배포 및 관리가 일반적이다.
참고 문헌
- Stonebraker, M., & Cattell, R. (2011). “10 Years of NoSQL.” Communications of the ACM, 54(4), 10‑12.
- Sadalage, P., & Fowler, M. (2012). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison‑Wesley.
- “The NoSQL Landscape.” DB‑Engines Ranking (2024). https://db-engines.com/en/ranking
이 문서는 객관적인 백과사전 정보를 기반으로 작성되었으며, 확인되지 않은 내용은 포함하지 않았다.