Skip to content

MongoDB 특징 #
Find similar titles

MongoDB의 특징 #

MongoDB는 데이터 객체들이 컬렉션 내부에서 독립된 문서로 저장되는, 문서 모델을 기반으로 하는 NoSQL 데이터베이스다.

Document-oriented database #

NoSQL 중 에서도 유명한 MongoDB는 비즈니스 요구에 맞도록 시스템을 확장하는 기능이 유연한 문서지향의 데이터베이스이다. 문서 지향 데이터베이스에서는 RDBMS에서 사용하는 행 개념 대신에 더욱 유연한 모델인 문서를 이용하는데, 내장 문서와 배열 같은 표현이 가능하기 때문에 복잡한 객체의 계층 관계를 하나의 레코드(열)로 표현할 수 있다. 이것은 객체지향 언어(자바, 파이썬)들을 사용하는 개발자에게 편리함을 가져다줄 수 있다.

Schemaless #

MongoDB는 스키마가 없다는 것이 가장 유명한 특징 중 하나이다. 이것은 필요할 때마다 필드를 추가하거나 제거하기가 매우 쉬워졌음을 의미한다. 따라서 개발 과정이 매우 단순해지고 빠르게 개발할 수 있다.

Scale Out #

소프트웨어 마에스트로라는 국가인재양성 프로그램에서 뉴스를 추천해주는 서비스를 프로젝트로 하고 있다. 언론사들을 크롤러가 돌며 뉴스를 수집하여 개인의 선호에 맞게 추천하는 서비스다. 이때 엄청난 양의 사용자 선호 Log Data를 필요할 때마다 필드를 바꾸며 빠른 속도로 쌓여야 하는데, 이것에 적합하다고 판정된 DB가 MongoDB이다. Database에 엄청난 로그가 쌓여야 하는데 Scale out도 가능할뿐더러 스키마가 없어 필요할 때마다 필드를 변형시킬 수 있기 때문이다.

Universal Database #

MongoDB는 Universal Database를 목적으로 만들어졌기 때문에 CRUD의 작업 이외에도 다양한 기능을 제공한다. 또한, NoSQL이지만 조금 어렵더라도 쿼리를 사용할 수 있다. 아래는 MongoDB가 제공하는 기능 중 일부이다.

  • 인덱싱 제공
  • 집계 파이프라인의 지원
  • 특수한 컬렉션 유형 제공.
  • 파일 저장소의 지원

Joinless and Transactionless #

관계형 데이터베이스(RDBMS)에서 지원하는 transaction과 join이 없다. transaction과 join이 없는 것은 정말 치명적인데 MongoDB는 분산 시스템을 위해 포기했다. 해당 기능들을 제공하는 데에 비용이 크기 때문이다.

High performance #

MongoDB는 쓰기와 읽기에서 기존의 RDBMS보다 수십 배의 성능을 발휘한다. 이는 여러 제약조건에 대한 처리를 고스란히 어플리케이션 개발자나 드라이버 개발자에게 맡겼기 때문이다. 따라서 실제 서비스에서 사용하려면 상당히 많은 공이 필요하다.

Suggested Pages #

0.0.1_20140628_0