MongoDB

MongoDB ๊ตฌ์กฐ

์„œ๋ฒ„ => ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค => ์ปฌ๋ ‰์…˜ => ๋ฌธ์„œ
์„œ๋ฒ„์•ˆ์—๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–์„ ์ˆ˜ ์žˆ๋‹ค.

๋„ํ๋ฉ˜ํŠธ, ์ปฌ๋ ‰์…˜

๋„ํ๋ฉ˜ํŠธ : ํ•„๋“œ์™€ ๊ฐ’ ์Œ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ.
ํ•„๋“œ : ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ์œ„ํ•œ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž.
๊ฐ’ : ์ฃผ์–ด์ง„ ์‹๋ณ„์ž์™€ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ
์ปฌ๋ ‰์…˜ : MongoDB์˜ ๋„ํ๋จผํŠธ๋กœ ๊ตฌ์„ฑ๋œ ์ €์žฅ์†Œ. ์ผ๋ฐ˜์ ์œผ๋กœ ๋„ํ๋จผํŠธ ๊ฐ„์˜ ๊ณตํ†ต ํ•„๋“œ๊ฐ€ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹น ๋งŽ์€ ์ปฌ๋ ‰์…˜์ด ์žˆ๊ณ , ์ปฌ๋ ‰์…˜ ๋‹น ๋งŽ์€ ๋„ํ๋จผํŠธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค,

ํด๋Ÿฌ์Šคํ„ฐ

"๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์„œ๋ฒ„ ๊ทธ๋ฃน์œผ๋กœ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋ฅผ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜์—ฌ, ํ•˜๋‚˜์˜ ๋‹จ์ผ ์ปดํ“จํ„ฐ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋„๋ก ์ œ์ž‘๋œ ์ปดํ“จํ„ฐ."
"์ธ์Šคํ„ด์Šค๋“ค์˜ ๋ชจ์ž„" ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ์ž‘๋™.
๋‹จ์ผํด๋Ÿฌ์Šคํ„ฐ(Single cluster) ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šค๋Š” ๋™์ผํ•œ ๋ณต์ œ๋ณธ์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ, "๋ ˆํ”Œ๋ฆฌ์นด์„ธํŠธ"๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ, ์ž๋™์œผ๋กœ ๋ ˆํ”Œ๋ฆฌ์นด ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๋ ˆํ”Œ๋ฆฌ์นด์„ธํŠธ

"๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์†Œ์Šˆ์˜ ์—ฐ๊ฒฐ๋œ ๋จธ์‹ ."
๋ฐ์ดํ„ฐ์˜ ์‚ฌ๋ณธ์„ ์ €์žฅํ•˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๋ชจ์Œ. ์ธ์Šคํ„ด์Šค์ค‘ ํ•˜๋‚˜์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„, ๋ฐ์ดํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค.
๋‚˜๋จธ์ง€ ๋ ˆํ”Œ๋ฆฌ์นด์„ธํŠธ์˜ ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—… ๊ฐ€๋Šฅํ•˜๋‹ค.
๋„ํ๋จผํŠธ๋‚˜ ์ปฌ๋ ‰์…˜์„ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ, ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์‚ฌ๋ณธ์ด ๋ ˆํ”Œ๋ฆฌ์นด ์„ธํŠธ์— ์ €์žฅ๋œ๋‹ค.

์ธ์Šคํ„ด์Šค

"๋กœ์ปฌ ๋˜๋Š” ํด๋ผ์šฐ๋“œ์—์„œ ํŠน์ • ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹จ์ผ ๋จธ์‹ , (MongoDB์—์„œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)"

Atlas Cluster

mongodump : BSON ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ๋ณด๋‚ผ๋•Œ ์‚ฌ์šฉ
mongorestore : mongodump๋กœ ์ƒ์„ฑํ•œ BSON ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค
mongoexport : JSON ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•„ํ‹€๋ผ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋‚ด๋ณด๋‚ผ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹จ, ๋‚ด๋ณด๋‚ผ๋•Œ ์•„ํ‹€๋ผ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ์ปฌ๋ ‰์…˜์„ ๋”ํ•˜๋Š” ๋Œ€์‹ ์—. ์•„ํ‹€๋ผ์Šค ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์— ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ ๋‹ค.
mongoimport : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์•„ํ‹€๋ผ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ด ๋•Œ ๋ฐ์ดํ„ฐ๋Š” JSON ์ผ์ˆ˜๋„์žˆ๊ณ  , ์ œ์›๋˜๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํ˜•์‹์ผ ์ˆ˜๋„์žˆ๋”ฐ.

MongoDB ๋„ํ๋จผํŠธ์˜ ๊ณตํ†ต์ , _id

๋ชจ๋“  ๋„ํ๋จผํŠธ๋Š” ๊ณ ์œ ํ•œ _id ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

MongoDB ๋ช…๋ น์–ด

  1. db : ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ‘œ์‹œ
  1. use sample_training : sample_training์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ
  1. show collections : ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ collections ํ‘œ์‹œ

create

read

update

db.collection.updateOne() db.collection.updateMany()
  1. $inc ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ๊ฐ’๋งŒํผ ์ฆ๊ฐ€ (๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํžˆ ๊ฐ์†Œ์‹œํ‚ค๋ ค๋ฉด ๋ณต์žกํ•˜๋ฏ€๋กœ, $set์„ ์“ด๋‹ค)
  1. $set ์ง€์ •๋œ ๊ฐ’ ์—…๋ฐ์ดํŠธ
  1. $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

ํŠธ๋žœ์ ์…˜

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ–‰ํ•ด์ง€๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฟผ๋ฆฌ๋ฅผ ๋ชจ์•„ ๋†“์€ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„