WIPIVERSE

NoSQL

정의
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

특징 및 장점

  1. 스키마 자유도: 사전에 스키마를 정의하지 않아도 되며, 구조 변경이 용이하다.
  2. 수평 확장성: 노드를 추가함으로써 데이터와 트래픽을 분산 처리한다.
  3. 고성능: 메모리 기반 또는 디스크 최적화 설계로 높은 쓰기·읽기 처리량을 제공한다.
  4. 다양한 일관성 모델: 강력 일관성(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 등을 활용한 컨테이너 기반 배포 및 관리가 일반적이다.

참고 문헌

  1. Stonebraker, M., & Cattell, R. (2011). “10 Years of NoSQL.” Communications of the ACM, 54(4), 10‑12.
  2. Sadalage, P., & Fowler, M. (2012). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison‑Wesley.
  3. “The NoSQL Landscape.” DB‑Engines Ranking (2024). https://db-engines.com/en/ranking

이 문서는 객관적인 백과사전 정보를 기반으로 작성되었으며, 확인되지 않은 내용은 포함하지 않았다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기