

NoSQL(Not Only SQL)은 전통적인 관계형 데이터베이스(RDBMS)와는 다른 방식으로 데이터를 저장하고 관리하는 데이터베이스 유형을 말합니다. NoSQL은 스키마가 없는 데이터 구조, 수평적 확장성, 빠른 읽기/쓰기 성능 등을 제공하며, 다양한 형태의 데이터 모델을 지원합니다.
NoSQL 의 사전적 정의는 다음과 같다.
하지만 그냥 텍스트로 보니 잘 와닫지가 않았다.
1. 스키마 유연성:
NoSQL은 스키마리스(Schema-less) 또는 유연한 스키마 구조를 지원한다.
데이터를 저장할 때 사전에 엄격한 스키마 정의가 필요 없으며, 필요에 따라 데이터 구조를 변경할 수 있다.
예: JSON, BSON, Key-Value 형식.
2. 수평적 확장성 (Scalability):
NoSQL은 서버의 성능을 높이는 수직 확장(vertical scaling)이 아닌, 여러 서버를 추가하여 확장하는 수평 확장(horizontal scaling)을 지원한다.
빅데이터 환경에서 적합.
예: 1대의 Redis 서버로 처리 가능한 데이터 용량이 10GB라면, 10대의 서버를 추가하면 이론적으로 100GB 데이터를 저장 가능.
3. 빠른 읽기/쓰기 성능:
메모리 기반의 NoSQL(예: Redis)은 매우 빠른 데이터 읽기/쓰기 성능을 제공한다.
대규모 데이터를 병렬로 처리하기에 유리.
4.다양한 데이터 모델:
Key-Value: Redis, DynamoDB 등
Document: MongoDB, CouchDB 등
Column-family: Cassandra, HBase 등
Graph: Neo4j, ArangoDB 등
각 데이터 모델은 특정 유형의 애플리케이션에 최적화되어 있다.
(추후 추가)
5. CAP 이론:
NoSQL은 일관성(Consistency), 가용성(Availability), 파티션 허용성(Partition Tolerance) 중 두 가지를 주로 우선시함.
예: MongoDB는 가용성과 파티션 허용성을 우선시함.

장점
단점

장점
단점
