MongoDB 소개 - architectstory/MSA_REF_PATTERN_CQRS GitHub Wiki
MongoDB 소개
(1) 개요
- 문서 지향적(NoSQL) 데이터베이스 관리 시스템
- 데이터를 문서(document) 형태로 저장하고 관리, 스키마 없음
- 문서는 JSON과 유사한 BSON(Binary JSON) 형식으로 저장되며, 파일 시스템에 문서를 저장하듯이 데이터를 관리
(2) 특징
- BASE(Basically Available, Soft state, Eventual consistency)를 기반
- 기본적으로 사용 가능(Basically Available): 시스템은 항상 응답을 제공하며, 일시적인 고장이나 네트워크 지연에도 높은 가용성을 유지
- 소프트 상태(Soft state): 시스템의 상태는 시간에 따라 변할 수 있으며, 일관성이 항상 보장되지 않음
- 최종 일관성(Eventual consistency): 시스템은 일정 시간이 지난 후에야 최종적으로 일관된 상태를 달성 이러한 BASE 기반 트랜잭션 처리의 특성 때문에, MongoDB는 높은 성능과 확장성을 제공할 수 있지만, 관계형 데이터베이스의 ACID 트랜잭션 처리만큼 엄격한 트랜잭션 처리를 보장하지 않음
- SSPL(Server Side Public License)로 라이선스를 변경
(3) 적용 시스템
- 빅 데이터: 큰 규모의 데이터를 저장하고, 빠르게 처리할 수 있어 빅 데이터 애플리케이션에 적합
- 사물인터넷(IoT): 센서에서 발생하는 대량의 데이터를 수집하고, 분석하는 데 사용 가능
- 구조가 빈번하게 변경될 수 있는 애플리케이션, 대규모 데이터를 다뤄야 하는 시스템, 빠른 개발이 필요한 프로젝트 등에 적합