관리 메뉴

JIE0025

[NoSQL] MongoDB란? 맥북(M1) 몽고디비, compass 설치 본문

백엔드/데이터베이스

[NoSQL] MongoDB란? 맥북(M1) 몽고디비, compass 설치

Kangjieun11 2023. 5. 28. 17:32
728x90

 

✅ MongoDB란?

 
필요한 쿼리 제공 및 인덱싱을 활용해 원하는 수준의 확장성과 유연성을 제공하는 문서 데이터베이스.
NoSQL 데이터베이스 시스템이다.
 

  • 문서지향 데이터베이스로JSON과 유사한 BinaryJSON (BSON)을 사용해 데이터를 저장한다.
  • 내부적으로는 BSON 형식으로 저장되지만, 사용자는 JSON과 유사하게 데이터를 다룰 수 있다.

 
 
✔️ NoSQL
Not Only SQL의 약자로, 기존 RDBMS의 한계를 극복하기 위해 만들어졌다. 
고정된 스키마, JOIN이 존재하지 않다.
 
✔️ 문서지향 (Document Oriented)

  • Document란 NoSQL에서 데이터를 저장하는 기본단위이다.
  • key-value쌍의 집합으로 구성되어 있다 (JSON과 유사한 구조)
  • 관련된 데이터를 그룹화하기 위해 사용된다.
  • 스키마가 고정되어 있지 않아 문서마다 고유한 구조를 가지게 된다.

 
✔️ BSON
JSON과 유사하지만 이진 형태로 직렬화되어 저장됨 
 
 

👩‍💻 Document

데이터를 저장하는 기본단위이다.
 
아래는 <사용자 정보>를 저장하는 문서(document)이다.

{
  "_id": ObjectId("60bfea29516e5269c59c3dc7"),
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com",
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "state": "NY"
  }
}

 

✍️   _id

각 문서는 _id 라는 고유 식별자를 가진다. (uniqueness)
12bytes의 hexadecimal값이며, 순서대로 의미가 존재한다.

  • 4bytes : timestamp
  • 3bytes : machine id
  • 2bytes : mongoDB서버의 프로세스id
  • 3bytes : 순차번호 (서버에서 문서가 생성될 때마다 증가)

 

👩‍💻 Collection 

컬렉션이란 MongoDB의 Document 의 그룹이다. 
Document들은 Collection내부에 위치한다.
 
* 비슷한 유형의 문서를 저장하기 위해 사용된다.
 
> RDBMS의 table과 유사한 개념이다. 
 
RDBMS의 특정 테이블스키마를 갖고, 데이터는 스키마에 맞추어 <행>으로 추가되는데
NoSQL에서는 유사한 데이터를 모으기 위한 Collection이 존재하고, 데이터는 <Document>로 추가되는 느낌! 
 
 

✅ MongoDB의 장점

  • Sckema-less
  • 객체의 구조가 뚜렷하다
  • 복잡한 Join이 없다.
  • 문서지향적 Query Language를 사용하여 강력한 Query성능이 제공된다.
  • 애플리케이션에서 사용되는 객체를 DB에 추가할때, Conversion/Mapping이 필요 없다.
  • 코어에서 배포된 데이터베이스로, 높은 가용성과 수평적확장에 용이하다.

 
 

✅ MongoDB 설치

 
mongoDB를 맥북에 설치해보자.
 
 
나는 14인치 2021 맥북 프로를 사용하고 있다. (M1 Pro 칩이다)

 
 

📄 MongoDB설치 가이드

 
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/

 

Install MongoDB Community Edition on macOS — MongoDB Manual

Docs Home → MongoDB Manual MongoDB AtlasMongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started.Use this tutorial to install MongoDB 6.0 Community Edition on macOS using

www.mongodb.com

 
 
 

0️⃣ homebrew가 없다면 먼저 홈브류 패키지 관리자부터 설치한다.
 

https://brew.sh/#install

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

 
 

1️⃣ MacOS 터미널에서 MongoDB Homebrew tap을 추가한다.

brew tap mongodb/brew

 
 
2️⃣ brew를 최신버전으로 업데이트 

brew update

 

 
3️⃣ brew를 이용해 몽고디비를 설치한다.

brew install mongodb-community@6.0

 
 
* 이번 설치는 버전 상관없이 실습을 위한 목적이라
버전에 대한 고민은 하지 않았다.

 
 

✚ 몽고디비 CLI로 작업 가능하게 만들기

위의 상태에서는 mongo 명령어를 쳐도 작동이 안된다.  

 
 
아래에서 해결방법을 찾았고,,
https://velog.io/@jiminnote/zsh-command-not-found-mongo
 
 
CLI에서 몽고디비를 처리하고 싶으면 아래 명령어도 입력한다

brew install mongodb-community-shell

 
 

MongoDB Installation include...
1. The mongod server
2. The mongos sharded cluster query router
3. The MongoDB Shell, mongosh

4. configuration file
   - Intel Chip : /usr/local/etc/mongod.conf
   - Apple Chip : /opt/homebrew/etc/mongod.conf
5. log directory
   - Intel Chip : /usr/local/var/log/mongodb
   - Apple Chip : /opt/homebrew/var/log/mongodb
6. data directory
   - Intel Chip : /usr/local/var/mongodb
   - Apple Chip : /opt/homebrew/var/mongodb

 
 

✅ MongoDB 실행

😉 몽고디비 실행(start)

brew services start mongodb-community@6.0

 
 
브라우저에 localhost:27017을 입력해보자.
(27017이 기본포트이다)
 
 
정상적으로 실행되었을때 아래와 같은 화면이 뜬다.

 

😉 몽고디비 정지(stop)

brew services stop mongodb-community@6.0

 
 

✅ MongoDB  GUI 도구 

 
몽고디비는 compass, Studoi 3T, Robo 3T 등 10가지의 GUI Tools를 제공한다.
 
compass는 몽고디비에서 공식적으로 배포하는 도구이다.
이번엔 compass를 설치해보자.
 
https://www.mongodb.com/products/compass

 

MongoDB Compass

Explore and interact with your data using Compass, the GUI for MongoDB. Query, modify, delete, and more — all from one interface.

www.mongodb.com

 

👩‍💻 Compass 설치

위 링크에 들어가서 download버튼을 누르고,

 
platform에 맞추어 설치를 해주면된다.
 

 

 

👩‍💻 Compass 실행

애플리케이션을 실행하면 다음과 같은 창이나오는데
아까 실행시킨 디비와 연결을 하자.

 
이제 몽고디비를 자유롭게 사용할 수 있다!
 
 
 


references

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/
https://choboit.tistory.com/95
https://zzang9ha.tistory.com/361
https://www.guru99.com/top-20-mongodb-tools.html
https://velopert.com/436
 
 
 
 
 --- 다음에 참고할 글 ---
몽고디비에 문서 만들고, CRUD 진행해보기
https://metleeha.tistory.com/entry/NOSQL%EC%9D%B4%EB%9E%91-%EC%B9%9C%ED%95%B4%EC%A7%80%EA%B8%B0-MongoDB-Compass-%EC%8B%A4%EC%8A%B5-55