본문 바로가기

cs(with 매일메일)

[260304수] NoSQL데이터베이스의 유형에는 어떤 것들이 있나요?

키-값 데이터베이스

- 구조 단순

- 빠른 읽기 및 쓰기 성능 제공

- Redis, Amazon, DynamoDB

 

문서 지향 데이터베이스

- JSON, BSON, XML등의 형식으로 데이터 저장

- 유연한 스키마

- 복잡한 데이터 구조를 쉽게 표현

- MongoDB, CouchDB

- ex. 콘텐츠 관리 시스템, 사용자 프로필 저장

 

열 지향 데이터베이스

- 대량의 데이터 처리에 적합

- 행마다 각기 다른 수의 열와 여러 데이터 유형을 가질 수 있음

- Apache Cassandra, HBass

 

그래프 데이터베이스

- 복잡한 관계 표현

- 레이블(그룹화된 노드)을 통해 쿼리를 쉽게 작성, 효율적으로 실행

- ex. 소셜 네트워크 분석, 추천 시스템

 

시계열 데이터베이스

- 시간에 따라 변화하는 데이터 저장

- 타임스탬프가 있는 매트릭, 이벤트 처리 등을 위해 활용

- InfluxDB, Promethus, TimescaleDB

- IoT데이터 수집, 금융 데이터 분석 

 

 

Q. 실시간 채팅 앱에 적합한 NoSQL을 사용한다면 어떻게 구성?

빠르게 주고받는 처리 속도, 유연하고 수평 확장이 가능한 저장 구조가 가장 중요한 포인트라고 생각한다. 

- 실시간 전송 -> Redis Pub/Sub기능 사용(낮은 지연 시간으로 사용자 간 메시지를 브로드캐스트 가능)

- 저장 구조 -> MongoDB(문서지향 데이터베이스로 채팅 메시지나 사용자 정보 등을 JSON형식으로 유연하게 저장 가능/ 샤딩 기능을 토해 수평 확장이 가능하기 때문에 사용자 수가 증가하거나 메시지 양이 많아져도 성능 저하 없이 안정적으로 확장 가능)