
내가 아는 NoSQL DB는 말 그대로 데이터베이스 저장 형식이 자유로운 것으로 알고 있다.
RDB나 벡터 디비처럼 어떤 연관성을 갖는 데이터를 관리하는 것이 아닌, 자신이 데이터를 정의하고 그 안에서 저장하고 사용할 수 있는 것으로 알고 있다. (예시 type:Graph)
매일메일의 설명으로는,
NoSQL 데이터베이스의 유형은 키-값, 문서-지향, 열 지향, 그래프, 시계열이 있다고 한다.
키 - 값 데이터베이스
: 키를 고유한 식별자로 하는 키 - 값 쌍의 형태로 저장 (Redis, Dynamo DB)
문서 지향
: JSON, BSON, XML 등의 형식으로 데이터 저장 (MongoDB, CouchDB)
열 지향
: 대량의 데이터를 처리하는데 적합, 행마다 각기 다른 수의 열과 여러 데이터 유형을 가질 수 있음 (Apache Cassandra, HBase)
- 대규모 데이터 분석, 로그 수집 등
그래프
: 노드, 엣지 구조로 구성된 그래프로 데이터를 저장 (Neo4j, Amazon Neptune)
- 소셜 네트워크 분석, 추천 시스템
시계열
: 시간에 따라 변화 데이터 저장, 타임스탬프가 있는 메트릭, 이벤트 등을 처리하기 위해 사용 (InfluxDB, Prometheus, TimescaleDB)
- IoT 데이터 수집, 금융 데이터 분석 등 사용 가능
만약 실시간 채팅 앱에 적합한 NoSQL을 사용한다면?
:
실시간 메시지 전송 - Redis의 Pub / Sub 기능을 사용 (낮은 지연 시간으로 사용자 간 메시지를 브로드 캐스트)
실제 메시지를 영구 저장 시, MongDB 사용
MongoDB는 샤딩 기능으로 수평 확장이 가능하기 때문에 사용자 수가 증가하거나 메시지 양이 많아져도 성능 저하 없이 안정적으로 확장할 수 있음.
| [매일메일] 어떤 이유로 코루틴을 사용한 작업 처리가 기존 스레드 방식보다 가벼운 지 설명해주세요 (0) | 2025.09.03 |
|---|---|
| [매일메일] 템플릿 메서드 패턴이란 무엇인가요? (0) | 2025.08.20 |
| [매일메일] PRG 패턴에 대해서 설명해 주세요 (1) | 2025.07.29 |
| [매일메일] 멀티 쓰레딩에 대해서 설명해주세요 (0) | 2025.07.28 |
| [매일메일] 낙관적 락과 비관적 락에 대해 설명해 주세요. (0) | 2025.07.24 |