본문으로 건너뛰기

NoSQL 데이터베이스의 유형

NoSQL 데이터베이스의 유형은 키-값, 문서 지향, 열 지향, 그래프, 시계열이 있습니다.

✔️ 키-값 데이터베이스 (Key-value Database)

키를 고유한 식별자로 사용하는 키-값 쌍의 형태로 데이터를 저장합니다. 구조가 단순하고, 빠른 읽기 및 쓰기 성능을 제공합니다. Redis, Amazon DynamoDB가 대표적인 예시이고, 세션 저장, 캐시, 실시간 순위 등으로 사용할 수 있습니다.

✔️ 문서 지향 데이터베이스 (Document-oriented Database)

JSON, BSON, XML 등의 형식으로 데이터를 저장합니다. 유연한 스키마를 가지고 있으며, 복잡한 데이터 구조를 쉽게 표현할 수 있습니다. MongoDB, CouchDB가 대표적인 예시이고, 콘텐츠 관리 시스템, 사용자 프로필 저장 등으로 사용할 수 있습니다.

✔️ 열 지향 데이터베이스 (Column Family Database)

데이터를 열 단위로 저장합니다. 대량의 데이터를 처리하는 데 적합하며, 행마다 각기 다른 수의 열과 여러 데이터 유형을 가질 수 있습니다. Amazon Redshift, Apache Cassandra, HBase가 대표적인 예시이고, 대규모 데이터 분석, 로그 수집 등으로 사용할 수 있습니다.

✔️ 그래프 데이터베이스 (Graph Database)

노드, 엣지 구조로 구성된 그래프로 데이터를 저장합니다. 복잡한 관계를 표현하는 데 사용되며, 레이블(그룹화된 노드)을 통해 쿼리를 쉽게 작성하고 효율적으로 실행할 수 있습니다. Neo4j, Amazon Neptune이 대표적인 예시이고, 소셜 네트워크 분석, 추천 시스템 등으로 사용할 수 있습니다.

✔️ 시계열 데이터베이스 (Time Series Database)

시간에 따라 변화하는 데이터를 저장합니다. 타임 스탬프가 있는 메트릭, 이벤트 등을 처리하기 위해 사용되며, 시간 경과에 따른 변화를 측정하는데 최적화되어 있습니다. InfluxDB, Prometheus, TimescaleDB가 대표적인 예시이고, IoT 데이터 수집, 금융 데이터 분석 등으로 사용할 수 있습니다.


실시간 채팅 앱에 적합한 NoSQL을 사용한다면 어떻게 구성할 수 있을까?

실시간 채팅 앱에서는 메시지를 빠르게 주고받는 처리 속도와, 유연하고 수평 확장이 가능한 저장 구조가 중요합니다. 먼저, 실시간 메시지 전송은 RedisPub/Sub 기능을 사용할 수 있습니다. 이 기능은 낮은 지연 시간으로 사용자 간 메시지를 브로드캐스트할 수 있기 때문입니다.

Redis는 영구 저장보다 캐시나 메시지 브로커 역할에 더 적합하므로, 실제 메시지를 영구 저장할 때는 MongoDB를 사용할 수 있습니다. MongoDB는 문서 지향 데이터베이스로서 채팅 메시지나 사용자 정보 등을 JSON 형식으로 유연하게 저장할 수 있습니다. 특히, 샤딩 기능으로 수평 확장이 가능하기 때문에 사용자 수가 증가하거나 메시지 양이 많아져도 성능 저하 없이 안정적으로 확장 가능합니다.

Loading comments...