일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- programmers
- 데이터베이스
- java
- SW봉사
- 파이썬
- 백준알고리즘
- CJ UNIT
- 회고
- softeer
- 소프티어
- 백준 알고리즘
- 코딩봉사
- 1과목
- BFS
- 정보처리산업기사
- SQL
- kotlin
- 문제풀이
- 코틀린
- 프로그래머스
- C++
- 코딩교육봉사
- 알고리즘
- MYSQL
- 자바
- 백준
- 스프링
- 공부일지
- 시나공
- python
- Today
- Total
JIE0025
[NoSQL] MongoDB란? 맥북(M1) 몽고디비, compass 설치 본문
✅ 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가 없다면 먼저 홈브류 패키지 관리자부터 설치한다.
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
'Application > Database' 카테고리의 다른 글
[MongoDB] _id를 제거할 수 있을까? (0) | 2023.06.04 |
---|---|
[MongoDB] Collection과 Document를 생성하고 실습해보자 (0) | 2023.05.28 |
[DB] 인덱스의 자료구조 B-TREE, B+TREE (0) | 2023.04.30 |
[DB] SELECT문의 내부동작 기능 (Selection, Projection, Join) (0) | 2023.04.30 |
[MySQL] 데이터 확인시 1000개 제한 해제 (0) | 2023.04.08 |