Ⅰ. MongoDB 란?
NoSQL 데이터베이스로, 문서 지향(Document-Oriented) 데이터 모델을 채택한 데이터베이스 관리 시스템(DBMS)입니다. 고성능, 확장성, 유연성을 제공하며, 구조화된 스키마가 필요하지 않은 데이터를 저장, 쿼리, 인덱싱하는 데 적합합니다. MongoDB는 특히 대규모 데이터 처리를 필요로 하는 애플리케이션에서 많이 사용됩니다.
Ⅱ. MongoDB 주요 특징
ⅰ. 문서 지향 저장: MongoDB는 데이터를 JSON과 유사한 BSON(Binary JSON) 형식으로 저장합니다. 각 문서는 동적으로 스키마를 정의할 수 있어 유연한 데이터 구조를 가질 수 있습니다.
ⅱ. 스키마리스 데이터 모델: 각 문서는 고유한 구조를 가질 수 있으며, 동일한 컬렉션 내에서도 문서 간의 필드 및 데이터 형식이 다를 수 있습니다.
ⅲ. 고가용성 및 복제: MongoDB는 자동 장애 조치와 데이터 중복을 제공하는 레플리카 세트(replica set)를 통해 고가용성을 보장합니다. 레플리카 세트는 하나의 기본(primary) 노드와 하나 이상의 보조(secondary) 노드로 구성됩니다.
ⅳ. 수평적 확장: 샤딩(Sharding)을 통해 데이터를 여러 서버에 분산하여 저장할 수 있습니다. 이를 통해 대규모 데이터 세트를 효율적으로 관리하고 성능을 향상시킬 수 있습니다.
ⅴ. 강력한 쿼리 기능: MongoDB는 다양한 쿼리 언어를 지원하여 데이터 필터링, 집계, 정렬, 조인 등을 수행할 수 있습니다.
ⅵ. 인덱싱: 다양한 인덱스 타입을 지원하여 빠른 쿼리 성능을 제공합니다. 단일 필드, 복합 필드, 텍스트, 지리공간 인덱스를 생성할 수 있습니다.
ⅶ. 집계 프레임워크: 데이터 집계 작업을 효율적으로 수행할 수 있는 집계 파이프라인을 제공합니다. 파이프라인 단계에서 데이터를 필터링, 그룹화, 변환할 수 있습니다.
Ⅲ. MongoDB 구성 요소
ⅰ. 컬렉션 (Collection): SQL 데이터베이스의 테이블과 유사합니다. 문서의 그룹을 나타내며, 스키마가 없습니다.
ⅱ. 문서 (Document): SQL 데이터베이스의 행(row)과 유사합니다. BSON 형식으로 저장되며, 각 문서는 유일한 _id 필드를 가집니다.
ⅲ. 레플리카 세트 (Replica Set): 데이터 복제를 통해 고가용성과 데이터 안정성을 보장하는 구성 요소입니다.
ⅳ. 샤드 (Shard): 데이터 분산 저장을 위한 단위로, 샤드 클러스터를 구성하여 수평적 확장을 지원합니다.
Ⅳ. MongoDB 설치 및 기본 사용법
ⅰ. 설치: MongoDB는 다양한 플랫폼에서 사용할 수 있습니다. 예를 들어, CentOS 8 에서는 다음 명령어를 통해 MongoDB를 설치할 수 있습니다.
dnf install -y mongodb |
ⅱ. MongoDB 서버 시작
systemctl start mongod |
ⅲ. MongoDB 셸 접속
mongo |
Ⅴ. MongoDB 기본 사용법
ⅰ. 데이터베이스 선택/생성
use myDatabase |
ⅱ. 컬렉션 생성 및 문서 삽입
db.myCollection.insert({ name: "Alice", age: 25 }) |
db.myCollection.find({ name: "Alice" }) |
db.myCollection.update({ name: "Alice" }, { $set: { age: 26 } }) |
ⅴ. 문서 삭제
db.myCollection.remove({ name: "Alice" }) |
Ⅵ. MongDB 백업 방법
ⅰ. mongodump 사용
MongoDB에서 가장 많이 사용하는 백업 도구입니다. 데이터베이스나 컬렉션을 BSON 파일로 백업합니다.
ⅱ. 기본 전체 백업
ⅲ. 특정 데이터베이스 백업
ⅳ. 특정 컬렉션 백업
Ⅶ. MongDB 복구 방법
ⅰ. mongorestore 사용
mongodump로 백업한 데이터를 복구할 때 사용합니다.
ⅱ. 기본 전체 복구
Ⅷ. MongoDB 사용 사례
ⅰ. 빅데이터 애플리케이션: 대규모 데이터 처리가 필요한 애플리케이션
ⅱ. 실시간 분석: 빠른 데이터 입출력과 실시간 분석을 요구하는 경우
ⅲ. 콘텐츠 관리 시스템: 다양한 형식의 데이터를 저장 및 관리하는 시스템
ⅳ. IoT 애플리케이션: 다량의 센서 데이터와 로그를 처리하는 경우
'데이터베이스' 카테고리의 다른 글
Prepared Statement에 대해 알아보겠습니다. (0) | 2024.07.05 |
---|---|
SQL 인젝션에 대해 간단히 알아보겠습니다. (0) | 2024.07.03 |
MSSQL에서되는 프로시저에 대해 알아보겠습니다. (0) | 2024.06.14 |
NoSQL과 RDBMS(Relational Database Management System)에 대해 알아보겠습니다. (0) | 2024.06.07 |
DB 암호화 방식에 대해 알아보겠습니다. (0) | 2024.05.13 |