moo***
2021-04-15

몽고DB 기본 개념과 동작 원리부터 활용법까지 설명하는 입문서. 다양한 예제를 통해 애플리케이션을 개발하고 관리하는 방법을 익힌다.
몽고DB는 웹 애플리케이션, 특히 백엔드 개발에서 자주 등장하는 단골 손님이라고 할 수 있습니다. 특히 빅데이터가 대중화되면서 기존의 RDBMS 의 한계가 드러나고 noSQL DB가 DBMS의 한 축을 담당하면서 몽고DB가 대표 주자로서 부각되고 있습니다.
실제 개발 시에는 아직 MySQL이나 SQLite를 주로 사용하고 있는 관계로 noSQL을 그리 사용할 기회는 없었습니다. 최근에는 웹 관련 개발을 하면서 redis나 neDB를 도입하게 되면서 key/value 기반의 DB를 조금이나마 맛을 보았습니다. key/value 는 개념적으로는 단순하게 와닿기 때문에 몽고DB라고 별거 있을까하는 마음으로 이 책을 접하게 되었습니다.
그러나, 우선 책의 두께부터 흠칫 놀라게 되었습니다. 책의 분량이 무려 600페이지 가까이 되어서, 처음의 자신감에서 두려움으로 조금씩 변해갔습니다. 책 표지는 오라일리의 특징처럼 동물의 그림이 등작하는데, 몽구스여우원숭이라고 합니다. 몽구스가 몽고DB를 접근하여 제어할 수 있는 드라이버와 같은 역할을 하는데, 아마 이와 연관이 있거나 발음이 비슷해서 이 동물을 소개한 것이 아닐까 하는 짐작을 잠깐 해봅니다.
지은이는 3명이나 되는데 — 그래서 책 내용이 많은가 봅니다 — 몽고DB를 개발하시는 소프트웨어 엔지니어와 교육을 담당하시는 두 분이 참여하셨습니다. 실무적인 부분과 내용전달이 잘 될 수 있도록 교육적인 부분이 잘 어울어져 구성이 되어 있을 것이라 기대할 만 했습니다.
초반에는 역시나 몽고DB에 대한 기본적인 개념과 간단한 사용방법들이 등장합니다. 설명이 자세하고 예제도 풍부하기 때문에 굉장히 재미있고, 술술 읽을 수 있는 부분이었습니다. 그래서 3판까지 인쇄가 된 것 아니겠는가 라는 생각도 잠깐 들었습니다. 읽다가 느낀 것이지만, 몽고DB가 역동적으로 기능이 발전하고 개선하고 있기 때문에, 이로 인해 새로운 판이 나온 큰 이유겠구나 하는 생각도 하게 됩니다.
중반부터는 개념이 어려워집니다. DB를 다루어 본 경험이 거의 없기 때문이기도 하지만, 초반 나오는 검색, 읽기, 쓰기 등의 단순한 개념의 내용과는 달리, 인덱싱, 트랜잭션, 설계 등의 내용은 데이터베이스의 기반 지식이 있어야 이해도를 높일 수 있지 않을까 합니다. 갑자기 이 부분부터 조금씩 집중도가 떨어지는 느낌이 들었습니다.
복제 파트에서는 신선한 느낌이 듭니다. 저장소의 안정성이나 성능을 높이기 위해서 RAID를 이용해서 사용하기도 합니다. 이와 유사하게 여러 개의 복제 셋을 구성해서 안정성이나 성능을 높이는 방법입니다. 다루기가 복잡할 것 같기도 하고, 몽고DB의 위력을 맛볼 수 있는 부분이기도 합니다.
샤딩 파트부터는 아직 읽어보진 못했습니다. 그래서 지금 글은 아직 중간 서평이라고 할 수 밖엔 없을 것 같습니다. 이전에 블록체인 관련 업무를 할 때 트랜잭션 속도를 올리기 위해서 샤딩을 도입해야 한다는 얘기를 종종 들었습니다. 같은 개념이라면, 데이터를 분산해서 노드의 부하를 줄이고 속도를 올릴 수 있는 방법일 것이라 짐작합니다. 흥미롭게 읽을 수 있는 부분일 것 같습니다.
이 책은 몽고DB의 바이블이라 할 수 있습니다. 몽고DB를 사용하는 방법부터, 몽고DB를 구성하고 관리하는 방법까지 다루고 있기 때문에, 이 책 하나면 몽고DB에 대해서 충분한 지식을 얻어갈 수 있을거라 생각합니다. 물론 이 책을 읽기 전에 데이터베이스에 대한 기본적인 지식을 갖추고 접근하는 것이 더 유익할 것 같습니다.
“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”