backend-interview-guide

MongoDB

목차

MongoDB란?

MongoDB는 문서 지향(Document-oriented) 데이터베이스로, 데이터를 BSON(Binary JSON) 형식으로 저장합니다. 이는 비정형 데이터를 처리하기에 매우 적합하며, 복잡한 관계형 데이터베이스의 스키마 제약 없이 유연하게 데이터를 관리할 수 있는 NoSQL 데이터베이스입니다.

주요 특징

사용 사례

실시간 웹 애플리케이션, 로그 데이터 저장, 비정형 데이터 처리, 콘텐츠 관리 시스템(CMS) 등.

스키마리스(Schema-less)

MongoDB는 스키마리스(Schema-less) 구조를 갖고 있어, 데이터베이스에 저장되는 각 문서가 서로 다른 필드와 데이터 구조를 가질 수 있습니다. 이는 데이터의 유연성을 극대화하며, 미리 데이터 구조를 정의하지 않아도 데이터를 저장할 수 있다는 장점을 제공합니다.

장점

단점

리플리카셋(Replica Set)

MongoDB의 리플리카셋(Replica Set)은 데이터베이스의 고가용성을 보장하기 위한 기능으로, 동일한 데이터를 여러 노드에 복제하여 장애 발생 시 자동으로 복구할 수 있도록 돕습니다.

구성 요소

동작 방식

장점

단점

샤딩(Sharding)

샤딩(Sharding)은 MongoDB에서 수평적 확장을 지원하는 방식으로, 대규모 데이터를 여러 노드에 분산하여 저장하는 기술입니다. 이를 통해 데이터가 특정 서버에 집중되지 않고 분산되어, 성능 및 저장 용량의 한계를 극복할 수 있습니다.

구성 요소

샤딩의 동작

장점

단점

MongoDB VS MySQL

데이터 모델링 및 구조

MongoDB

MySQL

대규모 트래픽 관점에서

확장성(Scaling)

MongoDB

MySQL

대규모 트래픽 관점에서

일관성 vs. 가용성 (CAP 이론)

MongoDB

MySQL

대규모 트래픽 관점에서

트랜잭션 및 복잡한 쿼리 처리

MongoDB

MySQL

대규모 트래픽 관점에서

복제 및 고가용성

MongoDB

MySQL

대규모 트래픽 관점에서

결론: 대규모 트래픽에서의 선택

MongoDB

MySQL

MongoDB와 MySQL은 각각의 강점과 약점을 가지고 있으며, 대규모 트래픽이 발생하는 환경에서는 MongoDB가 더 나은 확장성과 유연성을 제공합니다. 하지만, 트랜잭션 무결성이 중요한 환경에서는 여전히 MySQL이 강력한 선택입니다.