Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

MongoDB

몽고디비(mongoDB)는 C++로 만들어진 문서지향(Document-Oriented)데이터베이스다. 오픈소스이며 JSON형식으로 구성된 문서를 특히 잘 처리 한다.

문서지향 데이터베이스로 CouchDB, CouchBase, Cloudant, Elasticsearch, Solr등이 있다. Elasticsearch와 Solr는 검색엔진으로 알고 있는데, 이들도 정형화되지 않은 문서를 대상으로 색인 한다는 점에서 문서지향 데이터베이스의 성격을 가진다. 문서라는게 특별한 형식을 가지지 않기 때문에 Semi-structured data 형식의 데이터베이스라고 부르기도한다. NoSQL로 분류되는 대표적인 데이터베이스이기도 하다.

문서지향 데이터베이스는 키-벨루(Key-Value)형식으로 데이터를 저장한다. 이는 "제목과 내용"으로 구성되는 문서의 특징에 따른 것이다. 인터넷 상에서 가장 많은 양을 차지하는 웹 문서들도 문서제목 -> 본문의 형식이다. 인터넷 상의 정보들이 Key-value 형식을 가지고 있다는게, 몽고디비가 성공한 가장 큰 이유 중 하나일 것이다.

설치

우분투 리눅스 16.04 버전을 기준으로 한다. 우분투 패키지 관리자 도구(dpkg 및 apt)가 GPG 키를 사용 할 수 있도록 퍼블릭 키를 임포트 한다.
$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
몽고디비 패키지 저장소를 등록한다. /etc/apt/sources.list.d/mongodb-org-3.4.list 파일을 만든다음, 버전별로 아래의 내용을 입력한다.

우분투 12.04
$ echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

우분투 14.04
$ echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

우분투 16.04
$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
패키지 데이터베이스를 업데이트 한다.
$ apt-get update

몽고디비 패키지를 인스톨 한다.
$ apt-get install -y mongodb-org

운영

몽고디비 데몬을 시작한다.
$ service mongod start
몽고디비가 잘 시작했는지 확인한다.
# tail -f /var/log/mongodb/mongod.log 
2017-06-11T21:09:30.871+0900 I NETWORK  [thread1] waiting for connections on port 27017
몽고디비의 기본 포트 27017로 실행된걸 확인 할 수 있다. netstat로 바인드 정보를 확인해 보자.
# netstat -nap | grep mongod
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      16487/mongod    
루프백 주소로 바인드 된걸 확인 할수 있다. 지금은 로컬호스트 에서만 접근 할 수 있다.

stop명령으로 몽고디비를 중단할 수 있다.
$ service mongod stop

restart명령으로 몽고디비를 재 시작 할 수 있다.
$ service mongod restart