MongoDB란?
MongoDB는 강력하고 유연하며 확장성 높은 데이터 저장소이다. 범위 쿼리(range query), 보조 색인, 정력 기능 같은 관계형 데이터베이스의 유용한 기능들과 함께 분산 확장 기능을 제공한다. 또한 MongoDB는 내장된 맵리듀스(MapReduce)방식의 집계 연산이나 공간 정보(geospatial)색인과 같은 다양한 기능도 제공한다.
1. 특징
다양한 데이터 모델
MongoDB는 관계형 데이터베이스가 아니라 문서 지향 데이터베이스이다. 문서 지향 모델은 복잡한 계층관계를 하나의 레코드로 표현할 수 있게 한다. 이 방식은 최신 객체지향 언어를 사용하는 개발자의 관점에 매우 적합하다.
MongoDB는 또한 문서의 키가 미리 정의되거나 고정된 형태의 스키마가 없다. 스키마 변경이 없기 때문에 대단위 데이터 변환이 그리 필요치 않다. 새로운 키 또는 없어진 키는 모든 데이터에 똑 같은 형태를 강제하지 않더라도 애플리케이션 수준에서 처리할 수 있다. 이는 계속 바뀌는 데이터 모델을 처리하는 데 있어 높은 유연성을 제공한다.
손쉬운 확장
MongoDB는 처음부터 분산 확장을 염두에 두고 설계하였다. 문서 지향 데이터 모델은 데이터를 여러 서버에 자동적으로 분산해 준다. 문서를 자동으로 재 분배함으로써 클러스터 내 데이터의 양과 부하를 조절할 수 있다. 이 덕분에 개발자는 데이터베이스 확장이 아닌 프로그래밍에 더 집중 할 수 있다. 용량이 더 필요하다면 그저 새 장비를 클러스터에 추가하고 나머지 모든 것은 데이터베이스가 알아서 정리하도록 두면 된다.
다양한 기능
MongoDB는 다른 솔루션이 제공하지 않는 정말 멋지고 독특한 기능을 제공한다
기능 : 색인, 저장 자바스크립트, 집계, 고정 크기 컬렉션, 파일 저장소
고성능
MongoDB는 주 목표가 뛰어난 성능에 있기에 이 기준은 설계에 지대한 영향을 미쳤다. MongoDB는 서버와 상호작용하는 주 프로토콜에 HTTP/REST처러 추가 부담이 큰 프로토콜보다 이진 와이어 프로토콜을 기본으로 사용한다. 문서에 추가 공간을 동적으로 미리 할당해 두고 저장소를 더 쓰더라도 일관된 성능을 유지할 수 있도록 했다. 기본 저장소 엔진은 메모리-매드 파일 (memory-mapped file)을 사용하고 이를 통해 메모리 관리의 책임을 운영체제에 넘겼다. 또한, 쿼리의 가장 빠른 실행 방법을 기억하는 동적 쿼리 옵티마이저를 제공한다. 요약하자면 MongoDB의 모든 측면은 고성은을 위해 설계되었다.
간편한 관리
MongoDB는 가능하면 서버들이 스스로를 관리하게 설계하여 쉽게 데이터베이스를 관리할 수 잇다. 따라서 데이터베이스를 시작시키는 일을 빼고는 거의 손이 가질 않는다. 만약 마스터 서버가 작동하지 않으면, MongoDB는 자동으로 백업 슬레이브를 마스터로 바꾸어 작동한다. 분산 환경에서는 클러스터에 새로운 노드가 생성된 것만 알려주면 알아서 노드를 추가하고 설정한다.
2. 참고 서적
MongoDB 완벽 가이드 – 크리스티나 초도로우, 마이클 디롤프 지음 – 한빛미디어.
'IT > WebProgramming' 카테고리의 다른 글
helloworld.js (0) | 2014.12.19 |
---|---|
File System 모듈 (0) | 2014.12.19 |
인터넷 - TCP/IP - OSI 7 계층 개략 [퍼온글] (0) | 2014.12.19 |
Buffer가 문자열을 가지고 있는 경우 사용 가능한 인코딩 (0) | 2014.12.19 |
웹2.0 web2.0 정의 (0) | 2014.12.19 |