MongoDB 개념

이도형·2024년 8월 19일
0

Web 기본개념📶

목록 보기
6/10
post-thumbnail

백엔드를 하면 데이터베이스(DB)를 사용하는 경우가 많습니다.
MySQL, MariaDB 등과 달리 MongoDB는 NoSQL로 대표되는 특징이 있는데, 이에 대해 알아보겠습니다.

MongoDB ∈ NoSQL ??

MongoDBNoSQL로 분류되며 이것이 MySQL, MariaDB와 구별되는 큰 특징입니다.
그렇다면 NoSQL은 무엇일까요?

NoSQL (= Not only SQL ≈ Non-Relational SQL)

비관계형 데이터베이스 유형
(= 관계형 테이블과 다른 형식으로 데이터를 저장)

하지만 그렇다고 해서 관계형 데이터베이스를 사용하지 않는다는 뜻은 아니고,
여러 유형의 데이터베이스를 사용한다는 뜻입니다.

NoSQL은 Instagram, Facebook, X(Twitter) 등 다양한 서비스에서 사용됩니다.

NoSQL의 주요 특징은 다음과 같습니다.

  • 유연한 데이터 모델 : 스키마(Schema) 가 고정되어 있지 않아 데이터 구조를 유연하게 변경 가능
  • 수평 확장성 : Sharding(샤딩)을 통해 수평적인 확장이 가능합니다.
  • 높은 성능 : 대량의 데이터를 빠르게 읽고 쓸 수 있습니다 (대규모 데이터 처리)
  • 복잡한 쿼리 지원 : 복잡한 쿼리를 지원하여 데이터 분석에서 사용이 편리합니다

NoSQL은 DocumentDB, Key-Value DB, Graph DB 등이 있고,
MongoDB는 DocumentDB에 속합니다.
그렇다면 MongoDB의 특징과 장단점은 어떤 것이 있을까요?

MongoDB 특징

  • 문서 지향 데이터베이스 : MongoDB는 JSON과 유사한 BSON(Binary JSON) 형식으로 문서를 저장합니다

  • 유연한 스키마 (Schema-less) : 스키마(Schema)가 고정되어있지 않아 데이터 구조를 자유롭게 변경이 가능합니다.

    스키마(Schema) : 데이터가 DB 내 어떻게 저장되는가를 나타내는 데이터베이스 구조
  • 확장성 : MongoDB의 샤딩(Sharding)을 통해 데이터를 여러 서버에 분산 저장하여 성능과 용량을 확장하기 편리합니다.

    샤딩(Sharding) : 데이터베이스를 분산하여 저장하는 방법
  • Replica Set 구축 : Replica Set를 구축하여 데이터베이스의 데이터를 여러 서버에 동기화하여 데이터의 안정성, 서버 다운 방지, 접근 가능한 데이터 상태 유지등의 장점이 있습니다

  • 다양한 쿼리와 인덱스 지원 : MongoDB는 많은 쿼리와 인덱스를 지원하여 복잡한 쿼리를 효율적으로 처리 가능합니다

MongoDB의 장단점

장점

  • 유연한 데이터 모델링
  • 빠른 개발 속도
  • 대규모 데이터 처리 가능
  • 다양한 데이터 처리 지원

단점

  • RDBMS에 비해 제한적인 트랜잭션(Transaction)
    트랜잭션(Transaction) : 데이터베이스에서 하나의 논리적인 작업 단위
  • 데이터 중복 가능성
  • 인덱스 관리 필요
  • 높은 메모리 사용량

이런 장단점이 있는데 MySQL과 비교하면 어떤 상황에서 사용해야 될까요?

MongoDB vs. MySQL

DBMSMongoDBMySQL
데이터 모델문서형 (NoSQL)관계형 (RDMBS)
데이터 저장 형식BSON(Binary JSON) 형식테이블(Table) 형식
데이터 관계비정형 데이터 및 복잡한 관계에서 유리정형화된 데이터 관계
트랜잭션제한적인 트랜잭션 지원완전한 트랜잭션 지원
사용 사례실시간 분석, 빅데이터금융, ERP 시스템
상대적 특징빠른 개발 주기, 대규모 데이터 처리데이터 간 안정성, 데이터 무결성(완정성)

MongoDB 쓰지 마세요

구글에 MongoDB를 검색하면, "몽고db 쓰지 마세요"라고 있습니다.
이 글이 나온 원인은 무엇일까요?

블로터 기사에 따르면,

  • MongDB 자체의 안정성
  • 대용량 처리에서의 한계 (Hadoop으로 대체 가능)
  • 샤딩(Shading)이 정상적으로 작동하지 않을 때 문제 발생

그 외에도

  • 익숙하지 않음
  • MongoDB 자체의 무거움

등이 있었습니다.

하지만 MongoDB가 업데이트되고 정착하며 많은 사람들에게 사랑받고 있습니다.
"스키마 제약으로 부터의 자유로움",
"데이터에 대한 유연함"
등이 기존 RDBMS의 단점을 상쇄시켰고,
저 역시도 이러한 이유로 MongoDB에 대해 관심을 가지게 되었습니다.

결론

MongoDB는 개발자의 편의성을 위해 만들어진 DBMS로,
MySQL, MariaDB 등 RDBMS에 익숙한 사람들에게는 낯선 방식일 수 있습니다.
하지만 다양한 편의성으로 현재는 Stackoverflow 2023 기준 4위에 해당하는 인기를 자랑하고 있습니다.

다양한 방식을 익혀 적재적소에 사용할 줄 알면 좋은 개발자로서 한 발짝 다가서는 계기가 될 것 같습니다.

profile
열심히 살고 싶습니다! 일하고 싶습니다 :)

0개의 댓글

관련 채용 정보