MongoDB
MongoDB๋ NoSQL์ ํ ์ข
๋ฅ๋ก ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฐ์ดํฐ๋ฅผ json ํ์์ผ๋ก ์ ์ฅ์ ํ๋ค๋ ์ ์ด๋ค.
๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ ๋์ ์ผ๋ก ๋ฐ๋ ๊ฐ๋ฅ์ฑ์ด ํฌ๊ฑฐ๋
json์ ํ์ฉํ์ฌ ๊ด๋ฆฌํ๋ ๊ฒ์ด ํธํ๋ค๋ฉด ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
(์ฌ์ค ์ค์ ์ ์ฅ ํํ๋ bson์ ํํ์ธ๋ฐ ์ด๋ json์ binaryํํ๋ก ์ ์ฅํ ๊ฒ์ด๋ค)
MongoDB Atlas ๋ก DB server ๋ง๋ค๊ธฐ
์ด๋ ํ๋์ DB ์๋ฒ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์ ํ๋์ DB ํ๋ก์ ํธ ์๋ฒ๋ฅผ cluster ๋ผ๊ณ ํ๋ค.
์์๋ HEY-I๋ผ๋ cluster๊ฐ ์ด๋ฏธ ํ๋ ์์ฑ๋ ์ํ์ด๊ณ ์๋กญ๊ฒ ๋ง๋ค๊ณ ์ถ์ผ๋ฉด ์ฐ์ธก ์๋จ์ create๋ฅผ ํตํด ๋ง๋ค ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ ํ์ด์ง๊ฐ ๋จ๋๋ฐ ์๋จ 3๊ฐ์ ์นดํ
๊ณ ๋ฆฌ ์ค์ Shared ๋ก ์ค์ ํ ๋ค์ ์ฌ์ฉํ Cloud๋ฅผ ์ ํด์ค๋ค.
Cluster tier, setting ๋ฑ ๊ทธ ์ด์ธ์ ์ค์ ์ ๋ฐ๊พธ๋ฉด ์ถ๊ฐ ๋น์ฉ์ด ๋ค์ด๊ฐ๋ Cluster name๋ง ๋ฐ๊ฟ์ฃผ๊ณ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ๋
๋๋ค.
(HEY-I ํ๋ก์ ํธ์์ Google Cloud๋ฅผ ์ฌ์ฉํจ)
๊ทธ๋ ๊ฒ ๋ง๋ค๋ฉด ์๊น ํ๋ฉด๊ณผ ๊ฐ์ ํ์ด์ง๊ฐ ๋จ๋๋ฐ ์ฌ๊ธฐ์ ์ํ๋ Cluster ์นธ์ ๋ณด๋ฉด ๋นจ๊ฐ ๋ฐ์ค ๋ถ๋ถ์ Connect ๋ฒํผ์ด ์๋๋ฐ ํด๋น ๋ฒํผ์ ๋๋ฅธ๋ค.
๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋จ๋๋ฐ ํด๋น ์๋ฒ ํด๋ฌ์คํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ๋จ๋๋ฐ ์ด์ค์์ MongoDB Compass๋ผ๋ ํด์ ์ด์ฉํ๋ค.
MongoDB Compass๋ฅผ ๋๋ฅด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋จ๋๋ฐ ์ฌ๊ธฐ์ ์ค์น๋ MongoDB Compass๋ฅผ ํ์ธํด์ฃผ๊ณ ์๋์ ์ฃผ์๋ฅผ ๋ณต์ฌํ๋ค.
๊ทธ๋ฐ ๋ค์ MongoDB Compass๋ก ๋์ด์์ New connection์ ํ๋ค์
URI ๋ถ๋ถ์ ๋ณต์ฌํ ์ฃผ์๋ฅผ ๋ถ์ฌ๋ฃ๊ณ ์๋ mongodb+srv ๋ฅผ ๋๋ฌ์ค๋ค.
๊ทธ๋ฌ๊ณ connect๋ฅผ ๋๋ฅด๋ฉด Compass๋ฅผ ํตํด Atlas ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ธ๋ถ IP์์ ์ ๊ทผ
์๋น ํ๋ก์ ํธ๋ฅผ ํ๊ฒ ๋๋ค๋ฉด ๋ก์ปฌํ๊ฒฝ์์๋ง ์ ๊ทผํด์๋ ํ๊ณ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ์๋ฒ์์ ์ ๊ทผ์ ํ ์ ์๊ฒ ์ค์ ์ ํด์ฃผ์ด์ผ ํ๋ค.
๋ค์ Atlas ํ์ด์ง๋ก ๋์์์ ์ฐ์ธก์ Network Access ์ค์ ์ผ๋ก ๋ค์ด๊ฐ์ ADD IP ADDRESS๋ฅผ ํตํด ์ํ๋ IP์ฃผ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
MongoDB Compass
์ด๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ GUIํด์ด๋ค.
MongoDB์ ๊ตฌ์กฐ๋ RDBMS์ ๋น๊ตํ์์ ๋ ์๋์ ๊ฐ๋ค.
HEY-I ํ๋ก์ ํธ๋ฅผ ์๋ก ๋ค์ด์ ์ค๋ช
ํ๋ฉด
Database - heyi
Collections - pose, face recognition
Documents - ํน์ Collection์ ํ์ ๋ถ๋ฅ์ ์ํ ๋ฐ์ดํฐ (์ ์ด๋ฏธ์ง์์ id, name, frame, video, anno ๊ฐ์ด ๋ค์ด๊ฐ ํ๋์ ๋ฐ์ดํฐ)
Fields - ํ๋์ ๋ฐ์ดํฐ ์์ id, name, frame ๋ฑ์ ์ ๋ณด๋ค
๋ฐ์ดํฐ๋ฅผ ํ๋ ๋ฃ์ด๋ณด๊ณ ์ถ๋ค๋ฉด ์๋์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๋๋ค.
from pymongo import MongoClient
# ๋ฐฉ๋ฒ1 - URI
mongodb_URI = "--"
client = MongoClient(mongodb_URI)
# ๋ฐฉ๋ฒ2 - HOST, PORT
# client = MongoClient(host='localhost', port=27017)
db = client['pose_db'
data = {'name' : 'aaaaaaaa',
'frame#' : 'eqwqweeqwweqew',
'video' : '2',
'anno':'[1,2,3,4,5]'}
dpInsert = db.pose.insert_one(data)
Python
๋ณต์ฌ