MongoDB 란?

전영호·2021년 10월 27일
0

MongoDB

목록 보기
1/1

SQL과 NoSQL

SQL

SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.

대중적으로 많이 사용되는 MySQL, Oracle 등이 이에 포함된다.

NoSQL

NoSQL (non SQL or non relational) 데이터 베이스는 전통적인 관게형 데이터베이스 보다 덜 제약, 제한적인 모델로 이러한 시스템을 통틀어 NoSQL 이라고 한다. 가장 큰 특징은 확장성과 기용성, 높은 성능, 그리고 다양한 형태의 데이터를 수용 할 수 있다.

그 중 많이 사용되는 MongoDB, Cassandra, AWS(DynamoDB,Redis) 등이 있다.

각각의 장단점이 있어 용도에 따라 선택하여 사용한다.

MongoDB 샬펴보기

1. Document

Document는 RDBMS에서의 Row와 동일한 개념이다.
보통 JSON 형태의 key-value 로 이루어진 데이터 구조를 하나의 Document라고 본다.

{
    "_id": "5f2ad6b54866e5109dd2367b"
    "email": "star@gmail.com",
    "password": "암호화된 비밀번호",
}

각 Document는 _id를 가지고 있는데 이 값은 Primary Key와 동일한 개념이다.

2. Collection

Collection은 Document의 그룹이다. RDBMS에서의 Table과 비슷한 개념이다. (다만 스키마를 가지고 있지는 않는다)

3. Database

Database는 Collection들의 물리적인 컨테이너이고 또한 가장 상위의 개념이다. RDBMS와 동일.

4. BASE

BASE는 ACID와 대립되는 개념이다.

  • Basically Avaliable
    • 기본적으로 언제든지 사용할 수 있다는 의미를 가지고 있다.
    • 즉, 가용성이 필요하다는 뜻을 가진다.
  • Soft state
    • 외부의 개입이 없어도 정보가 변경될 수 있다는 의미를 가지고 있다.
    • 네트워크 파티션 등 문제가 발생되어 일관성(Consistency)이 유지되지 않는 경우 일관성을 위해 데이터를 자동으로 수정한다.
  • Eventually consistent
    • 일시적으로 일관적이지 않은 상태가 되어도 일정 시간 후 일관적인 상태가 되어야한다는 의미를 가지고 있다.
    • 장애 발생시 일관성을 유지하기 위한 이벤트를 발생시킨다.

위와같이 BASE는 ACID와는 다르게 일관성을 일부분 포기하고 가용성을 더 우선시하는 로직을 가진다. 즉, 데이터가 완벽하지 않더라도 일단 내려준다는 뜻이다.

MongoDB의 핵심

1. 분산 시스템

MongoDB에서 분산 시스템은 매우 중요하며 기본적인 시스템으로 반드시 알아야하는 부분이다.

데이터 무결성을 포기하며. 더 많은 데이터, 빠른 성능, 수평적인 확장이 가능한 데이터베이스가 필요해졌고 이를 토대로 만들어진 것이 MongoDB이다.

1-1. CAP 이론

CAP 이론은 어떠한 분산 시스템이더라도 Consistency (일관성), Availability (가용성), Partition tolerance (분할 내성)를 모두 만족할 수 없다는 이론이다.

  • Consistency
    • 모든 노드가 같은 시간에 데이터를 볼 수 있다는 의미를 지님.
    • 일관성 있는 시스템이며 동기화를 위해 유저가 대기해야하는데, 대기 시간이 길어진다면 가용성이 떨어지는 시스템.
  • Availability
    • 모든 요청에 성공 혹은 실패 결과를 반환 할 수 있다는 의미.
    • 하나의 노드가 망가져도 다른 노드를 통해 데이터를 제공할 수 있는 가용성이 좋은 시스템.
    • 다만 노드가 복구되었을 때 다른 노드와 데이터가 달라 일관성이 떨어 질 수 있는 문제점.
  • Partition tolerance
    • 통신에 실패해도 시스템이 계속 동작해야 한다는 의미를 가짐.
    • 노드가 아닌 노드를 연결해주는 네트워크가 고장난 경우를 의미.
    • 동기화가 불가능하면 일관성이, 통신이 복구되고 동기화를 기다린다면 가용성이 떨어짐. 즉 둘 다 만족할 수 없음.

1-2. PACELC 이론

기본적으로 네트워크 파티션 상황은 반드시 발생한다를 가정하고 그에 따른 선택을 정리한 이론.

구분 구성 설명
Partition Availability 가용성
Partition Consistency 일관성
Else Latency 시간 지연
Else Consistency 일관성

Partition은 네트워크 파티션이 발생한 상태. Else는 정상 상태를 의미.
각 패턴 상황에 맞게 가용성과 일관성 중 무엇을 우선시 할 것인지 정한다.


참고사이트 : MongoDB 이해하기

profile
인생 1회차 주니어 개발자

0개의 댓글