728x90

MongoDB란?

MongoDB는 현재 가장 많이 사용되고 있는 Nosql 형태의 데이터베이스다.

이 데이터베이스는 엄청나게 많은 데이터 양을 JSON형태로 저장할 수 있다는 특징을 가지고 있다.

 

SQL vs Nosql

특성 MongoDB(Nosql) RDBMS
데이터 모델 문서 기반 (JSON 형식) 관계형 (테이블, 행, 열)
데이터 저장 구조 문서, 필드, 컬렉션 테이블, 행, 열
쿼리 언어 JavaScript 기반 쿼리 언어 SQL (Structured Query Language)
SQL 인젝션 방어 거의 면역 취약할 수 있음
스케일링 수평 스케일링 가능 주로 수직 스케일링 가능
계층적 데이터 저장 용이 어려움

 

MongoDB는 유연하고 확장 가능한 구조를 가지고 있어 대량의 비정형 데이터를 다루기에 적합하며, RDBMS는 정형화된 데이터와 복잡한 관계를 다루는 데 특화되어 있음을 알 수 있다.

 

유연하고 확장 가능하다는 것은?

DB의 문제를 해결하는 스케일링 방식의 차이를 보여준다.

주로 DB의 성능이 부족하면 스케일업 또는 스케일아웃을 선택하는데, MongoDB서버는 수평적으로 여러 개의 데이터베이스를 가질 수 있다는 것이다. 

 

위 그림은 MongoDB의 Shard구조를 나타낸다.

Shard구조는 일반적인 MongoDB의 구조인 Replica Set의 묶음 형태를 갖는데, 이는 데이터베이스로 들어오는 데이터를 분산처리하기 위한 것이다.

 

Replica Set이란?

여러 서버로 구성된 클러스터로, 각각의 서버는 동일한 데이터를 복제하여 안정성과 가용성을 제공한다.

이 구성을 통해 MongoDB는 대규모 데이터베이스를 효과적으로 관리하고 확장할 수 있다.

 

 

이러한 형태를 통해 MongoDB는 Redundancy and Data Availability, 중복성과 고가용성을 갖는다.

데이터베이스는 어플리케이션이 동작하기 위해 매우 필수적인 요소이기에, 항상 사용이 가능한 상태, 가용성이 높아야 하며 전달되는 데이터가 유실되지 않도록 해야한다.

 

+ Recent posts