sysong7***
2021-04-18

몽고DB 기본 개념과 동작 원리부터 활용법까지 설명하는 입문서. 다양한 예제를 통해 애플리케이션을 개발하고 관리하는 방법을 익힌다.
# 시작하기
빅데이터에서 AI까지, 대용량데이터의 관리의 필요성
처음 빅데이터 교육을 이수했을 때에는 Python 문법과 데이터 수집에 중점을 두고 실습하느라 과연 수집한 데이터를 어떻게 해야 잘 관리할 수 있는지를 고려하지 못했었다. 당시 수집하는 데이터 크기도 필자가 가진 pc의 하드만으로도 커버가 되는 양이었기 때문에 몽고DB에 대해서 들어는 봤지만 공부할 필요성을 느끼지 못했었다.
그러나 프로젝트를 경험하면서 데이터베이스에 실시간으로 많은 사람들이 접근하고 있기 때문에 서버관리와 모니터링 역시 굉장히 중요하다는 것을 몸소 깨닫게 되었다. 웹 개발자로서 방대해지는 데이터를 관리하는 목적에서라도 단순 SQL 지식보다도 DB에 대해 공부할 필요성을 느끼게 되었다.
몽고DB 완벽가이드는 30%는 개발을 위해 알아야할 DB지식을, 나머지 70% 이상은 DB를 확장하고 모니터링, 관리하기 위해 필요한 지식을 담고 있다고 할 수 있다. NoSQL을 처음 접하거나 DB의 개발부터 관리까지 큰 그림에서의 DB를 알고자하는 사람들에게 유용할 것이다.
# 책 구성 살펴보기
몽고DB 완벽가이드 뒷표지
이 책은 총 6개의 Part로 나누어져 있다.
Part1. 몽고DB 시작
Part2. 몽고DB 개발
Part3. 복제
Part4. 샤딩
Part5. 애플리케이션 관리
Part6. 서버관리
Part1은 몽고DB의 철학과 핵심 개념을 시작으로 개발자의 입장에서 데이터베이스를 이용하기 위해 필요한 지식을 전달한다. shell 명령어와 몽고DB 쿼리를 통한 기본적인 연산부터 복잡한 쿼리까지 소개되고 있다.
Part2에서는 Index의 개념, 트랜젝션 처리, 몽고DB와 연동되는 애플리케이션 작성 팁을 소개한다.
Part3은 DB의 복제셋을 구성하고 관리하는 방법론을 소개하고 있다. Part4에서는 샤딩과 클러스터링 개념을 중점으로 DB 확장하는 방법을 소개한다. Part5와 6에서는 DB와 관련한 인증, 보안 등 Infra 담당자에 유용할 관리적 측면을 소개하고 있다.
Part1과 Part2는 개발자의 입장에서, Part3~6은 대체로 관리자의 입장에서 DB 활용방법을 소개하고 있다.
# 장점 골라내기
1. 각 chapter별 핵심 개념 소개와 자세한 실습
몽고DB에 관한 어렴풋한 개념만 있는 상태에서 접했을 때 생소한 용어와 개념들이 많았지만, chapter가 시작되기 전 명확하게 개념을 소개하고 있어 해당 내용을 읽을 때 어려움을 덜 수 있었다.
또한, 혼자서도 쿼리 및 shell 작업 실습이 가능하도록 간결하면서도 예시를 들어 이해를 도왔다. Github을 통해 예제 소스도 공유되고 있기 때문에 실습에는 무리가 없다고 생각되었다.
2. DB의 입문 ~ 개발 ~ 관리 전면을 아우르는 데이터베이스 서적
저자는 앞서 대상독자를 개발자와 DB관리자, 운영자로 나누었다. 첫 번째 장에서는 DB의 핵심철학을 이해하고 이어서 DB를 조작해봄으로써 이해를 돕고 있다. DB를 구축하고 관리하기 위해 필요한 지식을 각 개념별로 상세하게 소개하고 있기 때문에 독자의 목표에 맞게 취사선택이 가능한 점도 실용적이라고 할 수 있다.
전반부에서 몽고DB의 사용법이 소개되었다면, 후반부의 내용은 데이터베이스 구축과 관리의 목적을 이룰 수 있도록 단계별 이슈와 함께 소개하고 있기 때문에 꼭 몽고DB에 국한되지 않을 수 있다는 점에서 데이터베이스에 관해 전반적으로 알고자 하는 사람에게 유용할 것으로 생각된다.
# 제안하기
[단점]
'완벽가이드'라는 제목에 걸맞게 상당히 방대한 범위의 지식을 담고 있는 서적임에 틀림없다. 특히 DB의 확장 및 관리 측면에서의 내용이 절반 이상의 양을 차지하고 있기 때문에 서버에 관한 기본 지식이 전무한 상태에서는 이해하기 버거운 부분도 있으리라 생각된다. 또한, 개발한 애플리케이션과 몽고DB의 연동을 중점으로 한 실무적인 지식을 기대했다면 아쉬운 부분이며 개인적으로 커버할 방안을 찾는 것이 필요하다고 생각한다.
[기대하는 점]
이름부터 직관적인 몽고( humongous, 매우매우 큰!) DB는 개발된 지 10년 이상이 되었고 현재는 빅데이터와 관련한 대표적인 DB가 되었다. 저자는 꾸준히 최신의 지식을 업데이트하고 있기 때문에 몇 년 뒤의 몽고DB는 과연 어떻게 진화하였을지가 기대된다.
# 맺기
[추천]
빅데이터 관련 데이터베이스의 최신 지식이 필요한 사람
비관계형 데이터베이스로 개발부터 모니터링까지 커버하고자 하는 사람
데이터베이스 관리자로서 몽고DB 지식이 필요한 사람
위 사람들에게 몽고DB 완벽가이드는 폭넓은 지식을 제공할 것이다. 특히 어느정도 DB를 경험해본 사람의 입장에서는 비교해가면서 다른 쿼리를 익혀보는 재미가 쏠쏠하고, 빅데이터 분석 환경을 구축하면서 스스로가 DB구축 및 환경설정에 대해서도 가이드라인이 될 수 있기때문에 단순히 사용법에 그치지 않고 관리의 목적에서 접근한다면 굉장히 좋은 최신의 레퍼런스가 될 것이다.
[소감]
빅데이터 분석도 결국은 대용량의 데이터로부터 유의미한 결과를 도출하는 것이기 때문에 많은 데이터를 어떻게 관리하느냐도 이슈일 것이다. 필자는 DB에서 어떻게 데이터를 꺼내오고, 그것의 속도를 개선하기 위해 쿼리 공부를 했었다. 데이터베이스를 관리하기 위해 복제하고 서버를 증설하는 것은 주로 다른 부서에서 맡아하기 때문에 전혀 다른 영역인 것 같았는데, 개발자로서 모니터링이나 관리 부분도 숙지하고 있는다면 변화하는 환경에 대해서 적응하는 것에 그치지 않고 보다 효율적인 어플리케이션 작성을 고안할 수 있다는 점에서 매력적인 것 같다.