정의
몽고DB(MongoDB)는 문서 지향형 데이터베이스 관리 시스템으로, 비정형 또는 반정형 데이터를 유연하게 저장하고 관리할 수 있도록 설계된 NoSQL 데이터베이스 소프트웨어이다.
개요
몽고DB는 2007년에 10gen이라는 회사(현재의 MongoDB Inc.)에 의해 개발되기 시작하여 2009년에 공개된 오픈소스 소프트웨어이다. 전통적인 관계형 데이터베이스(RDBMS)와 달리 테이블 대신 컬렉션(collection), 로우 대신 문서(document)를 사용하며, 데이터는 BSON(Binary JSON) 형식으로 저장된다. 이로 인해 스키마가 유연하고, 동적인 데이터 구조를 다루는 데 적합하다. 몽고DB는 실시간 애널리틱스, 콘텐츠 관리, 모바일 애플리케이션, 인터넷 오브 씽스(IoT), 고객 데이터 플랫폼 등 다양한 분야에서 활용된다.
어원/유래
"MongoDB"라는 이름은 "humongous"라는 단어에서 유래되었으며, 이는 "거대한(humongous)"이라는 의미를 내포하고 있다. 이는 대규모 데이터를 다루는 시스템의 목적에 부합하는 명칭으로, 대량의 데이터를 처리할 수 있는 확장성 있는 데이터베이스임을 나타내기 위해 선택된 것으로 알려져 있다. "Mongo"는 "humongous"의 줄임말이며, "DB"는 "Database"의 약자이다.
특징
- 문서 지향 구조: 데이터가 JSON과 유사한 BSON 형식으로 저장되며, 각 문서는 중첩된 필드를 포함할 수 있어 데이터의 계층 구조 표현이 용이하다.
- 스키마 유연성: 각 문서가 서로 다른 구조를 가질 수 있으므로, 애플리케이션의 변화에 쉽게 대응할 수 있다.
- 수평 확장 지원: 샤딩(sharding)을 통해 데이터를 여러 서버에 분산 저장하여 대용량 처리와 고가용성을 구현할 수 있다.
- 고성능: 인덱스 지원, 메모리 기반 연산, 내장된 저장프로시저 없이도 빠른 읽기/쓰기 성능을 제공한다.
- 복제 및 고가용성: 복제 세트(replica set)를 통해 자동 장애 복구 및 데이터 복제를 지원한다.
- 크로스플랫폼 지원: 리눅스, 윈도우, macOS 등 다양한 운영체제에서 실행 가능하며, 다양한 프로그래밍 언어 드라이버(예: Python, Java, Node.js)를 제공한다.
관련 항목
- NoSQL
- BSON (Binary JSON)
- Document-oriented database
- MongoDB Inc.
- JSON
- 데이터베이스 관리 시스템(DBMS)
- 클라우드 데이터베이스 (예: MongoDB Atlas)