MongoDB는 크게 Community, Enterprise, Atlas 버전으로 나뉩니다.

Atlas는 쉽게 말하면 Enterprise 버전의 Cloud 버전이라고 보면 됩니다.

당연히 Enterprise 버전이 지원되는 기능도 많고, 가장 중요한 무료/유료 차이점이 있습니다.

앞으로 간단하게 Demo를 만들어볼 생각이기 때문에 Community 버전으로 설치를 진행해보겠습니다.

 

1. Community 버전 다운로드 및 설치

https://www.mongodb.com/try/download/community?tck=docs_server 

 

MongoDB Community Download

Download the Community version of MongoDB's non-relational database server from MongoDB's download center.

www.mongodb.com

2. 설치 시 설치 경로 등은 적절하게 필요에 따라 설치해주세요.

중간에 Compass 설치하는지 동의 여부가 체크가 되어 있는데 Client 툴로 보면 되고, robo 3T 같은 다른 툴도 존재합니다.

 

3. 설치가 완료되면 시스템 환경 변수를 등록합니다.

 (MongoDB설치경로\bin)

 

4. DB 디렉터리 생성

터미널 창을 열고 mongod를 입력/실행하면 로그를 확인할 수 있습니다.

 

{"error":"NonExistentPath: Data directory C:\\data\\db\\ not found. Create the missing directory or specify another path using (1) the --dbpath command line option, or (2) by adding the 'storage.dbPath' option in the configuration file."}}

 

로그 내용 중에 위와 같은 에러가 발생한 것을 확인할 수 있는데 로컬 디스크 C 하위에 data/db 폴더를 만들어주거나

--dbpath 옵션과 argument로 Data directory 경로를 직접 지정해 주면 해결이 가능합니다.

 

5. 서비스 확인

다시 터미널 창에서 mongod를 입력하면 Waiting for connections라는 문구가 나오고 mongoDB가 정상 동작 중인 것이고 로그를 통해 확인할 수 있는 것은 address=127.0.0.1(localhost), port=27017입니다. 브라우저 창을 실행하여

주소에 localhost:27017 을 입력하면 아래와 같은 메시지가 나오면 기본적인 설치가 완료됐습니다.

 

It looks like you are trying to access MongoDB over HTTP on the native driver port.

 

6. Mongo Compass 실행

프로그램 목록에서 찾아 실행시키고 아래 화면에서 Fill in connection fields individually 를 클릭하고

정보를 입력하면 DB에 접속하여 DB 정보들을 확인 가능합니다.

 

'DB > MongoDB' 카테고리의 다른 글

MongoDB 소개  (0) 2022.01.18

1. 소개

일반적으로 널리 쓰이는 관계형 데이터베이스(MySQL 등)는 데이터 중복을 제거하고 무결성을 보장하기 위해

정규화를 하게 되어 있는데 이러한 정규화가 과도해지면 어떤 데이터를 추출하기 위해 많은 조인 작업이 필요하고

인해 성능 저하가 있을수 있습니다.

하지만 NoSQL[각주:1]은 아래 구조처럼 중첩 데이터 형태를 가지므로 불필요한 조인을 최소화합니다.

NoSQL 데이터베이스는 소개하려는 MongoDB 를 포함해서 Redis 등 종류가 다양한 편이고 각각 구조에 차이가 조금씩 있습니다. 

 

2. 관계형 데이터 베이스와 비교한 MongoDB 논리적 구조

관계형 데이터베이스 MongoDB
Table Collection
Row Document
Column Field
Primary Key Object_ID field
Relationship Embbeded, Link

아래 이미지는 실제 MongoDB Compass에서 조회한 Customer Collection의 Document 예시입니다.

 

3. 특징

NoSQL 데이터베이스의 한 종류이기 때문에 비슷한 특징을 가집니다.

관계형 데이터베이스와 비교해봤는데요. 절대적인 내용이 아니라 일반적 관점에서 비교한 내용이

참고해주시기 바랍니다.

예를 들어 관계형 데이터베이스라고 해도 Scale-Up 가능한 것은 아닙니다.

MySQL 같은 경우 MySQL Cluster 같은 기능으로 Scale-Out 이 가능합니다.

  관계형 데이터베이스 MongoDB
적합한 시스템 데이터 정합성이 보장되어야하는 시스템 가용성이 중요하고 낮은 지연이 필요한 시스템
구조 정규화, 무결성이 보장된 스키마 스키마 없는 자유로운 모델 
트랜잭션 ACID 지원 완화된 ACID 지원
확장 Scale-Up Scale-Out
API SQL  객체 기반 API 제공

 

4. 마치며

여기까지 간략하게 소개와 특징들을 관계형 데이터베이스와 비교해보았고

실무에서 Redis를 먼저 접해 봤기 때문에 어떤 사례에 적합한지는 미리 경험을 해보았습니다.

빠른 응답과 빈번한 데이터 처리가 필요한 좋아요 같은 기능에 적용해보면 좋을 것 같고

Oauth 구조에서 Refresh Token 체킹 하는 기능에도 적용해보면 좋을 것 같은 생각이 듭니다.

이론적인 정리 내용은 이만 줄이고 MongoDB 기본 설치와 Spring boot를 활용한 Demo앱 제작을 다음 단계로

진행해보겠습니다.

 

  1. 비관계형 데이터베이스를 지칭. [본문으로]

'DB > MongoDB' 카테고리의 다른 글

MongoDB 설치  (0) 2022.01.19

+ Recent posts