goldw***
2021-04-19

몽고DB 기본 개념과 동작 원리부터 활용법까지 설명하는 입문서. 다양한 예제를 통해 애플리케이션을 개발하고 관리하는 방법을 익힌다.
이번에 소개할 책은 MongoDB 완벽 가이드 3판입니다.
관계형 데이터베이스에 관련된 기초는 학교에서나 회사에서 접할 기회가 많았지만 NoSQL에 대해서는 특별히 공부할 기회가 없었는데
운 좋게도 한빛 미디어 서평 이벤트를 통해 이 책을 지원받아 이 글을 쓰게 되었습니다.
시작하기 전에
먼저 책을 읽기 전에 MongoDB가 속해있는 NoSQL Database가 무엇인지에 대해서 잠시 >찾아보기로 했습니다.
(원본 자료는 아래 "참고 자료" 링크를 참고하시기 바랍니다.)
NoSQL는 "non SQL" or "not Only SQL"의 줄임말
NoSQL의 장점
* 유연한 데이터 모형: 스키마 변경이 용이하여 외부 변화 대응에 용이
* 수평적 확장성: 서버의 하드웨어 성능을 높이지 않고 일반적인 성능의 서버 수를 늘
림으로써 확장 가능
* 빠른 조회: 조인이 필요없는 구조 (단, 저장 공간의 손해는 발생한다)
* 높은 개발 생산성: 개발 언어에서 사용하는 데이터 구조와 거의 동일한 방식으로 저
장되기 때문에 직관적이고 코드량을 줄일 수 있음
NoSQL의 단점
* 복수 문서에 대한 Transasction 기능이 없다. (MongoDB에서는 4.0부터 복수 문서에 대한 ACID Transaction 지원)
* SQL Database에 비해 저장 공간을 많이 사용한다. (하드웨어 기술의 발달로 더이상 저장 공간 비용은 큰 문제가 되지 않는다. 몇몇 NoSQL Database는 압축을 지원하여 저
장되는 데이터의 크기를 줄이고 있다)
* 특정 목적에만 적합한 NoSQL Database가 있을 수 있으므로 자신의 Use case에 맞는 Database를 골라야 한다. (MongoDB는 범용 Database)
책의 구성
이 책은 6부, 24장, 2개의 부록으로 구성되어 있으며 다음의 내용을 설명하고 있습니다.
* 몽고DB 핵심 개념과 연산, 쿼리 방법
* 데이터 집계 기술과 인덱스, 컬렉션, 트랜잭션 사용법
* 복제 셋을 구축하고 운영하는 방법
* 클러스터를 구성하고 샤드 키를 선택하는 방법
* 애플리케이션 관리를 위한 보안과 인증, 권한 구성 방법
* 서버를 모니터링하고 백업, 복구하는 방법
실습 예제 및 관련된 상세 설명이 잘 나와 있어서 하나씩 따라하면서 개념과 사용법을 손쉽게 익힐 수 있었습니다.
현재 몽고DB는 여러 유명한 서비스에서 문제없이 사용되고 있으며 공식적으로 다양한 개발 언어를 지원하고 있습니다.
(C, C++, C#, Go, Java, Node.js, PHP, Python, Ruby, Rust, Scala, Swift)
이번 기회에 이 책을 통해 몽고DB를 학습한 후 새로운 서비스에 적용해보는 것도 좋은 선택이 될 수 있을꺼라 생각합니다.
총평
* MongoDB에 대한 기초부터 활용까지 대부분의 내용을 책 하나로 배울 수 있다.
* 번역이 잘 되어 있어서 이해하는데 문제가 없었다.
* 실습 예제와 설명이 잘 나와 있어서 쉽게 따라하면서 사용법을 습득할 수 있다.
참고 자료
* https://www.mongodb.com/nosql-explained
* https://www.mongodb.com/nosql-explained/nosql-vs-sql
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.