일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준알고리즘
- 1과목
- 알고리즘
- python
- 시나공
- MYSQL
- 백준
- 회고
- 자바
- 코딩교육봉사
- softeer
- 파이썬
- 코딩봉사
- kotlin
- BFS
- 소프티어
- 데이터베이스
- C++
- CJ UNIT
- java
- 백준 알고리즘
- 공부일지
- SQL
- SW봉사
- 프로그래머스
- 문제풀이
- 정보처리산업기사
- 코틀린
- 스프링
- programmers
- 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/
0️⃣ homebrew가 없다면 먼저 홈브류 패키지 관리자부터 설치한다.
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
👩💻 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
'백엔드 > 데이터베이스' 카테고리의 다른 글
[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 |