Skip to content

Commit

Permalink
[MongoDB] MongoDB 개념 학습
Browse files Browse the repository at this point in the history
  • Loading branch information
ac2dia committed Jan 16, 2023
1 parent 354ca0a commit fb153e7
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions MongoDB/MongoDB_230116.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# MongoDB 개념

## NoSQL

- NoSQL은 Not Only SQL, SQL 뿐만 아니다라는 의미를 지니고있다. 즉, SQL을 사용하는 관계형 데이터베이스가 아닌 데이터베이스를 의미한다. 대표적인 관계형 데이터베이스로는 MySQL, Oracle, PostgreSQL이 있고, NoSQL 진영에는 이 포스트에서 다루는 MongoDB와 Redis, HBase 등이 있다. 더 다양한 NoSQL 제품을 보고 싶다면 링크를 들어가면 지금까지 출시된 NoSQL 데이터베이스 목록을 볼 수 있다.

## MongoDB 특징

- MongoDB는 앞서 설명한 것 처럼 NoSQL 데이터베이스고 다음 세 가지 특징을 가지고있다.

- Document
- BASE
- Open Source

![MongoDB 구조](./MongoDB_structure.jpeg)

## BASE

BASE는 ACID와 대립되는 개념으로 다음 세 가지로 이루어져있다.

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

## ACID

- Atomicity (원자성)
- Consistency (일관성)
- Isolation (고립성)
- Durability (지속성)

## 마무리!

- MongoDB와 RDBMS는 적합한 사용처가 다르다.
- NoSQL은 최대한 단순하면서 많은 데이터, RDBMS는 복잡하면서 무결성이 중요한 데이터에 적합하다고 생각한다.
- 물론 데이터를 단순화하는 것도 쉬운 일은 아니기 때문에 만약 당신이 MongoDB를 사용할 계획이 있다면 꼭 위 모델링 패턴을 참고하여 데이터 구조를 잡는 것을 추천한다.
Binary file added MongoDB/MongoDB_structure.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit fb153e7

Please sign in to comment.