Skip to content

Latest commit

 

History

History
61 lines (39 loc) · 1.81 KB

introduction.md

File metadata and controls

61 lines (39 loc) · 1.81 KB

MongoDB 개요

💡 MongoDB는 유연하고 확장성 높은 Opensource Document 지향 Database 이다.

왜 MongoDB 를 사용하는지

  • Schema 가 자유롭다.
  • HA와 Scale-out Solution을 자체적으로 지원해서 확장이 쉽다.
  • Secondary Index 를 지원하는 NoSQL이다.
  • 다양한 종류의 Index를 제공한다.
  • 응답 속도가 빠르다.
  • 배우기 쉽고 간편하게 개발이 가능하다.

Relational Database 장단점

장점

  • 데이터 중복을 방지할 수 있다.
  • Join의 성능이 좋다.
  • 복잡하고 다양한 쿼리가 가능하다.
  • 잘못된 입력을 방지할 수 있다.

단점

  • 하나의 레코드를 확인하기 위해 여러 개로 분리된 테이블들을 Join하기 때문에 가시성이 떨어진다.
  • 스키마가 엄격해서 변경에 대한 공수가 크다.

Scaling 측면 단점

  • Scale-Out 이 가능하지만, 설정이 어렵다. (MySQL은 Scale-Out과 관련한 기능을 제공해주지 않는다.)

  • 확장할 때마다 App 단의 수정이 필요하다.

    ⇒ 전통적으로 Scale-Up 위주로 확장했다.


Document 장단점

장점

  • 데이터 접근성과 가시성이 좋다.
  • Join 없이 조회가 가능해서 응답 속도가 일반적으로 빠르다.
  • 스키마 변경에 공수가 적다.
  • 스키마가 유연해서 데이터 모델을 App의 요구사항에 맞게 데이터를 수용할 수 있다.

단점

  • 데이터의 중복이 발생한다.
  • 스키마가 자유롭지만, 스키마 설계를 잘해야 성능 저하를 피할 수 있다.

Scaling 측면 장점

  • HA와 Sharding에 대한 솔루션을 자체적으로 지원하고 있어 Scale-Out 이 간편하다.
  • 확장 시, Application의 변경사항이 없다. (DB단에서 알아서 처리해줌)