backend-interview-guide

NoSQL

목차

NoSQL 데이터베이스

NoSQL 데이터베이스는 전통적인 관계형 데이터베이스(RDBMS)와 달리, 스키마가 없는 방식으로 데이터를 저장하며, 다양한 데이터 구조(문서, 키-값, 그래프, 컬럼 기반 등)를 지원하는 데이터베이스입니다. 주로 대규모 분산 환경에서 사용되며, 높은 확장성과 성능을 제공합니다.

특징

사용 사례

장점

단점

NoSQL과 관계형 데이터베이스의 차이점

NoSQL 데이터베이스는 RDBMS와 여러 가지 측면에서 차이점이 있습니다. 주요 차이점은 다음과 같습니다.

데이터 모델링

스케일링(Scaling)

ACID vs. BASE

사용 사례

NoSQL의 주요 데이터베이스 유형

NoSQL 데이터베이스는 데이터 구조에 따라 여러 유형으로 나눌 수 있습니다. 주요 NoSQL 데이터베이스 유형은 다음과 같습니다:

1. 문서형(Document-based) 데이터베이스

2. 키-값(Key-Value) 데이터베이스

3. 열 기반(Column-based) 데이터베이스

4. 그래프형(Graph-based) 데이터베이스

CAP 이론과 NoSQL

CAP 이론은 분산 시스템에서 Consistency(일관성), Availability(가용성), Partition Tolerance(파티션 허용성) 중 두 가지 특성만을 동시에 보장할 수 있다는 이론입니다.

CAP 이론의 적용

NoSQL 시스템은 대체로 가용성과 파티션 허용성(AP)을 우선시하는 경향이 있습니다. 즉, 네트워크 분할 시에도 시스템이 계속 작동하지만, 일관성은 시간이 지나면서 최종적으로 보장됩니다(이벤트 추정적 일관성).

NoSQL에서 스케일링(Scaling)

NoSQL은 주로 수평적 확장(Horizontal Scaling)을 통해 대규모 데이터를 처리합니다. 수평적 확장은 여러 대의 서버를 추가하여 데이터를 분산 저장하는 방식으로, 관계형 데이터베이스에서 사용하는 수직적 확장(더 강력한 서버로 업그레이드)과 차별화됩니다.

스케일링 방법

샤딩(Sharding)

리플리케이션(Replication)

분산 클러스터(Distributed Cluster)