Nodejs

 

 

 

Windows에 MongoDB 설치하기..

신규하 2014.05.26 18:19

윈도우에 MongoDB를 설치 하면서, 내용을 약간 정리해 봅니다.

 

1. 다운로드

 

http://www.mongodb.org/downloads

 

 

msi로 설치 된 것을 받아서 설치 해도 되지만 경로 명이 C:\Program Files\ 경로 밑에 들어가는 것 빼고는 아무런 기능이 없어 보입니다. zip 파일을 받아서 설치 하는것을 권장 합니다.

 

2. 복사 하기

 

파일의 압축을 푸시고, 폴더 명을 mongodb-win32-*에서 mongodb로 변경 합니다. 

여기서는 c:\에서 설치해서 작업 합니다.

C:\ 에 복사합니다.

 

3. 데이터 베이스 폴더 설정

 

데이터 베이스가 들어갈 폴더를 설정 합니다.

mkdir C:\mongodb\data

 

4. mongodb 실행해 보기

 

데이터베이스를 실행해 보기, 이렇게 만 하면 기본적인 사용이 가능 합니다.

C:\mongodb\bin\mongod.exe --dbpath C:\mongodb\data

 

Ctrl + C 도는 Ctrl + D 로 중단 할 수 있습니다.

 

5. 설정 파일

 

설정 파일을 설정해서 실행 옵션을 설정 합니다.

먼저 C:\mongodb\mongod.cfg 파일을 만들고 편집합니다.

 

# 데이터베이스 폴더

dbpath = C:\mongodb\data

# mongdb 포트
port = 27017

# 로그 파일

logpath = C:\mongodb\logs\mongo.log

# 웹 관리 사용
rest = true

 

C:\mongodb\logs 폴더를 만들어 줍니다.

 

6. 서비스 등록 하기

 

몽고DB는 윈도우 서비스에 등록을 지원합니다. 

 

먼저 cmd.exe를 관리자 모드로 실행을 합니다.

아래와 같이 설정 파일과 함께 설정을 합니다.

 

C:\mongodb\bin\mongod.exe -f C:\mongodb\mongod.cfg -install

 

 

 

 

 

 

웹 관리 툴 확인해 봅니다.

http://127.0.0.1:28017/

 

 

 

 

 

7. 서비스 제거 하기

 

C:\mongodb\bin\mongod.exe -f C:\mongodb\mongod.cfg -remove

 

http://gyuha.tistory.com/470

 

 

 

--------------------- 

 

 

이번 시간에는 요즘 인기 있는 NoSQL 데이터베이스 중 하나인, 몽고DB(MongoDB)를윈도우 환경에 설치하는 법을 알아보자.

 

[Windows 기준]

1. MongoDB 설치

먼저 아래의 링크에 들어가서 MongoDB 설치파일을 다운받고 설치를 진행하자

https://www.mongodb.com/download-center?jmp=homepage#community

아래는 Windows 8.1을 기준으로 스크린샷을 촬영하였다. Windows Server라고 써진 다운로드 파일 밖에 제공하지 않는데 기본 Windows도 그냥 Windows Server 2008 R2 64-bit and later, with SSL support x64를 선택해서 설치하면 된다.

 

2. MongoDB 실행(mongod.exe)

MongoDB 설치를 완료 했으면, 아래의 경로에 mongo.exe, mongod.exe 파일이 존재하는 것을 확인할 수 있다.

C:\Program Files\MongoDB\Server\3.4\bin

 

여기서 mongod.exe는 MongoDB 서버 실행파일이고, mongo.exe는 MongoDB를 조작할수 있는 MongoDB Shell 프로그램이다.

먼저 MongoDB Shell을 실행하기 전에 MongoDB 서버를 실행시켜야만 한다. 아래처럼 탐색기 창에서 Shift+우클릭을 통해 메뉴창을 열고, 여기에서 명령창 열기(W)를 눌러서 현재 폴더에서 윈도우 명령프롬프트(cmd)를 실행한다.

이제 mongod.exe로 MongoDB 서버를 실행시켜보자. 하지만 그전에, cmd창에서 아래의 명령어로 C:\data 경로에 db 폴더를 생성해주어야만한다. (MongoDB는 기본적으로 C:\data\db 경로를 참조한다.)

mkdir C:\data\db

이제 아래 그림처럼 cmd창에서 mongod.exe를 실행시켜 MongoDB 서버를 실행하자.

 

3. MongoDB Shell 실행(mongo.exe)

이제 mongoDB 서버가 실행되었다. 다시 Shift+우클릭으로 cmd 명령창을 새로 하나 더 열어서 아래와 같이 mongo.exe로 MongoDB Shell 프로그램을 실행시키고 아래 명령어를 입력해서 설치가 제대로 되었는지 체크해보자.

show dbs

위 그림처럼 나온다면 제대로 설치된 것이다. 쉘을 종료하려면 Control+C를 입력하면 된다. 다음시간에는 MongoDB의 기본적인 명령어들을 살펴보자.

 

 

 

1. NoSQL

먼저 NoSQL에 대한 개념을 공부해보겠습니다.

NoSQL 데이터베이스는 전통적인 관계형 데이터베이스에 비해 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공합니다.

NoSQL 시스템은 SQL 계열 쿼리 언어를 사용할 수 있다는 사실을 강조한다는 면에서 'Not only SQL'로 불리기도 합니다.

또한 관계형 데이터베이스가 아니므로 고정된 schema 또는 JOIN이 존재하지 않습니다.

 

2. Document Model

MongoDB 는 Relational Model 이 아닌 Document Model 입니다.

먼저 아래 사진을 확인해볼게요!

 

사진의 아래, Document Model을 확인하시면 각각의 데이터들이 Collection으로 묶인 것을 볼 수 있습니다.

MongoDB 에서는 각각의 데이터(RDMS에서는 레코드라고 하는 것)들이 Document 로써 존재합니다.

그리고 Document 들의 묶음을 MongoDB에서 Collection이라고 말합니다.

또한 Collection 들의 물리적인 컨테이너는 Database라고 하죠.

 

아래 사진을 보면 좀 더 이해가 가실 겁니다.

 

 

이해가 가시나요?

그럼 Document에 대해서 좀 더 알아보도록 하겠습니다.

위에서 언급했듯이 Document는 RDMS의 record와 비슷한 성격을 지닌 녀석입니다.

위 사진에서 볼 수 있듯이 하나의 Document 는 한개 이상의 key-value pair 로 이루어져 있습니다.

RDMS 에서 속성이라고 하는 것을 key라고 생각하시면 편할 것 같아요.

Document의 예를 확인해볼게요!

 

 

 

위의 사진을 확인하시면, _id, name, city, address, phone 라는 key를 확인하실 수 있으며 그에 대응하는 value를 확인 할 수 있습니다.

즉, 위의 Document는 총 5개의 key-value pair를 가지고 있습니다.

위의 key 중에 _id 는 12bytes 의 hexadecimal 값으로서, 각 document의 유일성을 보장합니다.

_id에 관해, 각 byte 별로 의미하는 것은 다음과 같습니다.

첫 4bytes: 현재 timestamp / 다음 3bytes: machine id / 다음 2bytes: MongoDB 서버의 프로세스 id / 마지막 3bytes: 순차번호

 

Document는 dynamic schema를 갖고있습니다. 같은 collection 안에 있는 document 끼리 다른 schema를 가질 수 있다는 것인데 쉽게 말해서 서로 다른 key들을 가지고 있을 수 있다라고 생각하시면 됩니다.

 

3.Data Modeling

간단한 데이터 모델링을 참고해보도록 할게요.

블로그를 생각해 봅시다.

블로그에서는 다수의 게시글이 존재하죠? 그리고 각 게시글은 여러개의 태그를 가질 수 있고, 각 게시글에는 여러개의 댓글을 가질 수 있습니다.

만약 RDMS에서 해당 데이터베이스를 간단히 디자인한다면 아래와 같은 3개의 테이블을 만들 것 입니다.

 

 

 

그리고 Comment와 Tag 테이블은 Post 테이블에 속하도록 디자인되겠죠.

하지만 NoSQL 에서는 이 모든 것을 하나의 Document 에 넣습니다. 아래와 같이 디자인 될 것 입니다.

{
 _id: POST_ID,
 title: POST_TITLE,
 content: POST_CONTENT,
 username: POST_WRITER,
 tags: [ TAG1, TAG2, TAG3 ],
 time: POST_TIME
 comments: [
 { 
 username: COMMENT_WRITER,
 mesage: COMMENT_MESSAGE,
 time: COMMENT_TIME
 },
 { 
 username: COMMENT_WRITER,
 mesage: COMMENT_MESSAGE,
 time: COMMENT_TIME
 }
 ]
}


 

 

 

 

RDMS 와 NoSQL의 차이에 대해서 대략적으로 이해가 가셨나요?

추가적인 사항은 댓글을 남겨주시거나 doorBW@outlook.com 으로 메일 주세요 :)

 

4. MongoDB 환경변수 설정(Windows)

마지막으로 MongoDB를 좀 더 편리하게 사용하기 위해 환경변수 설정을 하도록 하겠습니다.

환경변수 설정을 통해 매번 MongoDB의 설치 경로로 이동하실 필요가 없으실 거에요.

아래 사진의 순서대로 진행하시면 됩니다.

 

1. 제어판 -> 시스템 및 보안 -> 시스템 -> 시스템 보호

 

 

2. 시스템 속성 창에서 환경변수 클릭

 

 

3. 변수이름 Path 를 누르고 편집 클릭

 

 

 

4. 새로만들기 -> MangoDB 설치경로 입력 -> 확인 클릭

 

 

 

이렇게 설정하시면 됩니다!

이제 확인해볼까요?

 

 

 

네, 정상적으로 됩니다 :)

 

추가적으로 데이터베이스 디텍토리를 변경하고 싶으시다면 아래 명령어를 입력하시면 됩니다.

 

C:\Program Files\MongoDB\Server\3.2\bin> mongod --dbpath "원하는 디텍토리"

 

이상으로 MongoDB 환경변수 설정을 마무리하겠습니다.



출처: http://doorbw.tistory.com/16 [Tigercow.Door]

 

 

 

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

물이 너무 맑으면 고기가 없고, 사람이 너무 살피면 벗이 없다. -공자가어(孔子家語)

댓글 ( 5)

댓글 남기기

작성

Nodejs 목록    more