---
description: MongoDB 한글 사용 설명서에 대한 프롤로그입니다.
---

# 프롤로그 (Prologue)

## 나랏말싸미 미귁에 달아...

외국에서는 MongoDB 관련된 내용들이 활발히 교육중인데, 우리나라 말로 번역된것이 버전에 따라서 빠르게 업데이트가 되지 못하는 현실과 체계적인 교육이 미미하다는 점을 안타깝게 여겨, 김씨와 구씨는 널리 데이터베이스시스템을 공부하는 학생들을 이롭게 하고자 이 문서를 발간한다.

이 책은 기본적인 Mongo Shell에서 다루는 Javascript와 요즘 많이 사용되는 Python을 기반한 코딩을 중점적으로 다룬다. 어차피 Server에서 이해하도록만 프로그래밍을 해주면 되기 때문에 언어와는 상관없이 동작은 똑같이 가능하나, 실행하는 방법을 알아야 하기 때문에 부득이하게 Python의 API도 알아야 한다. Python의 API는 Javascript의 API와 비슷하지 미묘하게 다른것들이 있어 마지막에 묶어서 설명하였다.

## Contents

본 문서는 아래의 순서로 기술됩니다.

### Getting Started

1. 빠른 시작 - quick start
   * 10자로 설명하는 MongoDB: 약 10자정도로 요약한 MongoDB
   * 컨닝페이퍼 (Cheat Sheet): 빠르게 보고 기억하기 위한 컨닝페이퍼
   * 주요설명 바로가기: 주요 설명 링크들
2. 시작하기 - getting started
   * 배경: MongoDB에 들어가기에 앞서, Database가 무엇인지, Scale Up/Out, RDB와의 관계, NoSQL 왜 써야 되지?, CAP 이론, BASE <--> ACID 설명
   * MongoDB: MongoDB에 대하여 알아보고, 설치과정을 설명
   * PyMongo: Python 드라이버 라이브러리인 pymongo에 대하여
3. CRUD (이하 MongoShell 로 전부 설명)
   * 데이터베이스 조작: 데이터베이스, 콜렉션 조작 등에 관하여
   * CRUD 구문 (Syntax): CRUD 구문 설명 (`explain()` 등 존재)
   * 연산자 (Operator): 연산자에 대한 설명
   * 연습문제: 연습문제와 어려운 도전문제
4. Index with Geospatial & Text
   * 인덱스 (Index): 인덱스가 무엇인지, 어떻게 생성/삭제하는지 등에 관하여
   * 공간 인덱스 (Geospatial Index): 공간과 관련된 연산 (인덱스에서 제거 예정)
   * 텍스트 인덱스 (Text Index): 텍스트 형태의 데이터에 관련된 인덱스
   * 연습문제
5. Aggregate Framework
   * 집계 프레임워크 (Aggregate Framework): 집계 프레임워크에 대하여 (pipeline...)
6. Replication & Sharding
   * 복제 (Replication): 복제가 무엇인지, 어떻게 세팅하는지, 고려 (Concerns)에 관하여
   * 샤딩 (Sharding): 샤딩이 무엇인지, 세팅방법 등에 관하여
7. MongoDB 4.x Features
   * 다중 문서 트렌젝션 (Multi-Document Transcation): 트렌젝션, 다중 문서 트렌젝션에 관하여
8. PyMongo
   * PyMongo 환경 설정: PyMongo 설치와 관련하여
   * CRUD 구문 (Syntax): PyMongo 상에서의 CRUD 구문 설명
   * 인덱스 (Index): PyMongo 상에서의 인덱스 연산
   * 집계 프레임워크 (Aggregation Framework): PyMongo 상에서의 집계 연산
   * 연습문제&#x20;
9. Appendix
   * 관리 (Administration): 계정, 권한 등 관리 관련된 설명
   * BSON: Binary JSON
   * 유용한 도구 (Utils): MongoDB와 관련된 유용한 도구들을 설명

## Release Note

### Release Schedule

* v3.0 -- 내용추가, style 변경, 이쁘게, 교정 그림....
* v4.0: applications
  * advanced 한것들
  * challenge
  * bottle, flask 이나 sns, spark 연동
* v5.0: support our book in English

### Change Log

* v1: 모든 내용을 작성
* v2: 구성을 달리하여 보기 쉽도록 엮음

### Future work

* v3: 내용추가 (geospatial, exercise), 예쁘게 만들기
* v4: English 버전 추가
