Files
2026-05-04 10:30:04 +09:00

2.8 KiB

id, created, tags, aliases
id created tags aliases
NoSQL 20260420 2026-04-20 10:07

💡 생각

결국 NoSQL은 빠른속도로 데이터베이스를 구축해서 사용하는 경우에 유용하다.


📑 개념

'Not Only SQL'의 약자로, 전통적인 관계형 데이터베이스(RDBMS)의 한계를 극복하기 위해 만들어진 비관계형 데이터베이스를 의미합니다. 표(Table) 형태의 엄격한 스키마를 따르지 않고, 데이터의 형태에 따라 유연하게 저장 구조를 선택할 수 있다는 것이 가장 큰 특징입니다.

NoSQL의 특징

  • 유연한 스키마 (Schema-less): 고정된 테이블 구조가 없습니다. 데이터의 필드를 언제든지 추가하거나 변경할 수 있어, 형태가 일정하지 않은 로그 데이터나 SNS 포스트 등을 저장하기에 유리합니다.

  • 수평적 확장성 (Scalability): RDBMS가 주로 서버의 사양을 높이는 수직 확장(Scale-up)에 집중한다면, NoSQL은 여러 대의 저렴한 서버를 클러스터로 묶어 데이터를 분산 저장하는 수평 확장(Scale-out) 에 최적화되어 있습니다.

  • 고성능: 단순한 데이터 모델을 사용하여 읽기/쓰기 성능이 매우 빠릅니다. 복잡한 JOIN 연산을 지양하기 때문에 대규모 데이터를 처리할 때 유리합니다.


NoSQL의 4가지 주요 유형

유형 특징 대표적인 DB
Key-Value 가장 단순한 형태. 키와 값의 쌍으로 저장 Redis, Amazon DynamoDB
Document JSON이나 XML 같은 문서 형식으로 저장 MongoDB, CouchDB
Column-family 행이 아닌 열(Column) 단위로 데이터를 저장 Cassandra, HBase
Graph 데이터 간의 관계를 노드와 간선으로 표현 Neo4j

NoSQL의 트랜잭션 (BASE)

RDBMS의 ACID와 대조적으로, NoSQL은 보통 BASE 원칙을 따릅니다.

  • Basically Available (기본적 가용성): 언제든 접근 가능해야 함.

  • Soft State (소프트 상태): 외부의 개입 없어도 정보가 변경될 수 있음 (일시적 불일치 허용).

  • Eventually Consistent (결과적 일관성): 일시적으로 정합성이 깨질 수 있지만, 시간이 지나면 결국 모든 노드의 데이터가 일치하게 됨.

데이터 중복(Data Redundancy)

NoSQL에서 데이터 중복(Data Redundancy) 은 실수가 아니라 성능을 위해 의도적으로 선택하는 핵심 전략입니다.

RDBMS에서는 데이터 중복을 죄악시하며 정규화(Normalization)를 통해 중복을 제거하지만, NoSQL은 그 반대인 비정규화(Denormalization) 를 지향합니다.