Search
๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป

MongoDB (with Atlas)

์นดํ…Œ๊ณ ๋ฆฌ
M&A
์„ธ๋ถ€ ์นดํ…Œ๊ณ ๋ฆฌ
DB
ํ™˜๊ฒฝ
boostcamp
์ž‘์„ฑ ์ƒํƒœ
์•ž์„  ๋‚ด์šฉ
์ด์–ด์ง€๋Š” ๋‚ด์šฉ
ํŒŒ์ผ

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
๋ณต์‚ฌ