MongoDB ๊ตฌ์กฐ
์๋ฒ => ๋ฐ์ดํฐ๋ฒ ์ด์ค => ์ปฌ๋ ์
=> ๋ฌธ์
์๋ฒ์์๋ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ ์ ์๋ค.
๋ํ๋ฉํธ, ์ปฌ๋ ์
๋ํ๋ฉํธ : ํ๋์ ๊ฐ ์์ผ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ.
ํ๋ : ๋ฐ์ดํฐ ํฌ์ธํธ๋ฅผ ์ํ ๊ณ ์ ํ ์๋ณ์.
๊ฐ : ์ฃผ์ด์ง ์๋ณ์์ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ
์ปฌ๋ ์
: MongoDB์ ๋ํ๋จผํธ๋ก ๊ตฌ์ฑ๋ ์ ์ฅ์. ์ผ๋ฐ์ ์ผ๋ก ๋ํ๋จผํธ ๊ฐ์ ๊ณตํต ํ๋๊ฐ ์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น ๋ง์ ์ปฌ๋ ์
์ด ์๊ณ , ์ปฌ๋ ์
๋น ๋ง์ ๋ํ๋จผํธ๊ฐ ์์ ์ ์๋ค,
ํด๋ฌ์คํฐ
"๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฒ ๊ทธ๋ฃน์ผ๋ก ์ฌ๋ฌ ๋์ ์ปดํจํฐ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ์ฐ๊ฒฐํ์ฌ, ํ๋์ ๋จ์ผ ์ปดํจํฐ์ฒ๋ผ ๋์ํ๋๋ก ์ ์๋ ์ปดํจํฐ."
"์ธ์คํด์ค๋ค์ ๋ชจ์" ํ๋์ ์์คํ
์ฒ๋ผ ์๋.
๋จ์ผํด๋ฌ์คํฐ(Single cluster) ๊ฐ๊ฐ์ ์ธ์คํด์ค๋ ๋์ผํ ๋ณต์ ๋ณธ์ ๊ฐ๊ณ ์์ผ๋ฉฐ, "๋ ํ๋ฆฌ์นด์ธํธ"๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํด๋ฌ์คํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ, ์๋์ผ๋ก ๋ ํ๋ฆฌ์นด ์ธํธ๋ฅผ ์์ฑํ๋ค.
๋ ํ๋ฆฌ์นด์ธํธ
"๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์์ ์ฐ๊ฒฐ๋ ๋จธ์ ."
๋ฐ์ดํฐ์ ์ฌ๋ณธ์ ์ ์ฅํ๋ ์ธ์คํด์ค์ ๋ชจ์. ์ธ์คํด์ค์ค ํ๋์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋, ๋ฐ์ดํฐ๋ ๊ทธ๋๋ก ์ ์ง๋๋ค.
๋๋จธ์ง ๋ ํ๋ฆฌ์นด์ธํธ์ ์ธ์คํด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ก ์์
๊ฐ๋ฅํ๋ค.
๋ํ๋จผํธ๋ ์ปฌ๋ ์
์ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ, ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ์ ์ค๋ณต ์ฌ๋ณธ์ด ๋ ํ๋ฆฌ์นด ์ธํธ์ ์ ์ฅ๋๋ค.
์ธ์คํด์ค
"๋ก์ปฌ ๋๋ ํด๋ผ์ฐ๋์์ ํน์ ์ํํธ์จ์ด๋ฅผ ์คํํ๋ ๋จ์ผ ๋จธ์ , (MongoDB์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค)"
Atlas Cluster
mongodump : BSON ํ์์ ๋ฐ์ดํฐ ๋ณด๋ผ๋ ์ฌ์ฉ
mongorestore : mongodump๋ก ์์ฑํ BSON ํ์์ ๋ฐ์ดํฐ ๊ฐ์ง๊ณ ์จ๋ค
mongoexport : JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ผ์ค ํด๋ฌ์คํฐ์์ ๋ด๋ณด๋ผ๋ ์ฌ์ฉํ๋ค. ๋จ, ๋ด๋ณด๋ผ๋ ์ํ๋ผ์ค ํด๋ฌ์คํฐ์ ์ปฌ๋ ์
์ ๋ํ๋ ๋์ ์. ์ํ๋ผ์ค ํด๋ฌ์คํฐ ์ธ๋ถ์ ๋ฐ์ดํฐ ๋ณต์ฌ๋ณธ์ ๋ง๋ ๋ค.
mongoimport : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ๋ผ์ค ํด๋ฌ์คํฐ๋ก ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํ๋ค. ์ด ๋ ๋ฐ์ดํฐ๋ JSON ์ผ์๋์๊ณ , ์ ์๋๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์ผ ์๋์๋ฐ.
MongoDB ๋ํ๋จผํธ์ ๊ณตํต์ , _id
๋ชจ๋ ๋ํ๋จผํธ๋ ๊ณ ์ ํ _id ๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
MongoDB ๋ช ๋ น์ด
- db : ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์
- use sample_training : sample_training์ด๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ
- show collections : ์ฌ์ฉ๊ฐ๋ฅํ collections ํ์
create
read
update
db.collection.updateOne() db.collection.updateMany()
- $inc ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๊ฐ๋งํผ ์ฆ๊ฐ (๋ฐ์ดํฐ๋ฅผ ์ ํํ ๊ฐ์์ํค๋ ค๋ฉด ๋ณต์กํ๋ฏ๋ก, $set์ ์ด๋ค)
- $set ์ง์ ๋ ๊ฐ ์ ๋ฐ์ดํธ
- $push ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ง ํ๋์ ๊ฐ์ ์์๋ฅผ ์ถ๊ฐ
delete
db.collection.deleteOne() db.collection.deleteMany() db.collection.drop()
id๊ฐ์ ํตํด ์ญ์ ํ๋๋ก ํ์.
file based system์ ๋จ์
data redundancy (๋ฐ์ดํฐ์ค๋ณต) data inconsistency(๋ฐ์ดํฐ๋ถ์ผ์น) difficult data access security problems(unauthorized access) Difficult concurrent access(๋์์ ๊ทผ์ด ์ด๋ ค์) typically, in a file-based system, when an application opens a file, that file is locked
๋ฐ์ดํฐ๋ฒ ์ด์ค๋
database is a shared collection of related data ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ค์ ์งํฉ์ผ๋ก์ ๊ณต์ ๋๋ค database can be viewed as a repository of data that is define once
ํธ๋์ ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ๋
ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํด ํํด์ง๋ ํ๋ ์ด์์ ์ฟผ๋ฆฌ๋ฅผ ๋ชจ์ ๋์ ํ๋์ ์์
๋จ์