NoSQL

기술노트
Admin (토론 | 기여)님의 2025년 9월 6일 (토) 05:05 판 (Gemini 벌크 업로더로 자동 업로드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

🗃️ NoSQL

NoSQL은 "Not Only SQL"의 약자로, 전통적인 관계형 데이터베이스(RDBMS)와 다른 형태의 데이터 저장 및 관리 방식을 사용하는 모든 데이터베이스를 통칭하는 용어입니다. RDBMS의 엄격한 스키마와 관계 모델에서 벗어나, 대용량의 비정형 데이터를 더 유연하고 빠르게 처리하기 위해 등장했습니다.


🧐 NoSQL의 주요 특징

  • 유연한 스키마 (Flexible Schema) : 정해진 스키마 없이, 각기 다른 구조의 데이터를 자유롭게 저장할 수 있습니다.
  • 수평적 확장 (Horizontal Scaling / Scale-out) : 고성능의 단일 서버로 성능을 높이는(Scale-up) RDBMS와 달리, 여러 대의 일반 서버를 연결하여 시스템 전체의 성능과 용량을 확장하는 데 용이합니다.
  • 다양한 데이터 모델 : 데이터의 특성에 맞춰 다양한 모델을 선택할 수 있습니다.
  • 분산 시스템 : 대부분의 NoSQL 데이터베이스는 처음부터 데이터 복제, 분산 저장을 염두에 두고 설계되어 가용성과 확장성이 높습니다.

📚 NoSQL 데이터 모델의 종류

모델 종류 설명 대표 제품
Key-Value 가장 단순한 모델. 고유한 키(Key)에 하나의 값(Value)을 저장. Redis, DynamoDB
Document JSON이나 XML과 유사한 문서(Document) 형태로 데이터를 저장. MongoDB, Couchbase
Column-Family 행이 아닌 열(Column)을 기준으로 데이터를 저장. 대규모 데이터의 읽기/쓰기에 유리. Cassandra, HBase
Graph 데이터와 그 관계를 노드(Node)와 엣지(Edge)로 표현. 소셜 네트워크, 추천 시스템에 적합. Neo4j, ArangoDB

💡 개발자 핵심 Point

  • NoSQL은 대용량의 비정형 데이터를 빠르고 유연하게 처리하는 데 강점을 가집니다.
  • 특히 실시간 로그 수집, 소셜 미디어 피드, IoT 데이터 등 스키마가 정해져 있지 않고 데이터 양이 급격하게 늘어날 수 있는 서비스에 적합합니다.
  • RDBMS의 강점인 강한 데이터 일관성(Strong Consistency)이나 복잡한 트랜잭션을 지원하지 않는 경우가 많습니다. 대부분의 NoSQL은 '최종 일관성(Eventual Consistency)' 모델을 따릅니다.
  • NoSQL은 RDBMS를 대체하는 기술이 아니라, 상호 보완적인 관계입니다. 서비스의 특징과 데이터의 성격에 맞춰 RDBMS와 NoSQL을 함께 사용하는 '폴리글랏 퍼시스턴스(Polyglot Persistence)' 전략이 일반적입니다.