개발 일기

[MongoDB] 채팅 데이터 저장을 위한 Mongo DB 본문

Computer Science/Database

[MongoDB] 채팅 데이터 저장을 위한 Mongo DB

개발 일기장 주인 2024. 10. 1. 17:18

채팅 데이터를 저장하기 위해 NoSQL을 사용해야겠다는 판단이 들어 Dynamo DB는 유료라 래퍼런스가 많은 Mongo DB를 한번 부트 프로젝트와 연결하기 위해 Mongo DB에 대해서 정리해보게 됐다.


Mongo DB

  •  대용량 데이터를 처리할 때 우수한 성능을 발휘하는 고성능, 고가용성 및 쉬운 확장성을 제공하는 NoSQL 데이터베이스이다.
  • Document-Oriented 지향
    데이터를 배열 및 중첩 Document와 같은 복잡한 데이터 유형을 효율적으로 저장할 수 있는 유연한 JSON과 유사한 형식인 BSON(Binary JSON)으로 저장하여 각 문서는 고유의 스키마를 가지므로, 서로 다른 구조의 문서를 하나의 컬렉션에 저장
  • Schema-less
  • 관계형 데이터베이스와 같이 트랜잭션(roll-back, commit) 개념이 적용되지 않는다.
Collection vs Document?

이 두 가지 개념이 헷갈렸는데 명확히 정리해보자.

우선 Document부터 보면 아래와 같이 기본 데이터 단위로 RDB 기준으로 행과 유사한 개념이다.  BSON 형식에 저장된 필드와 값 쌍으로 구성된다.

Document

Collection은  Document의 나열이며 관계형 데이터베이스의 테이블과 유사한 역할을 한다.

컬렉션은 단일 데이터베이스 내에 존재하며 스키마를 강제하지 않으므로 Collection내의 Document들은 다른 필드와 구조를 가질 수 있다.