-
Notifications
You must be signed in to change notification settings - Fork 1
MongoDB Data Modeling Pattern
๋๋ 8์ 31์ผ๋ถํฐ ํ์ฌ๊น์ง ๋ค์ด๋ฒ ๋ถ์คํธ์บ ํ ์น/๋ชจ๋ฐ์ผ 7๊ธฐ ์นํ์คํ ๋ฉค๋ฒ์ญ ๊ณผ์ ์์ ํ์ต์ ์งํํ๊ณ ์๋ค. ํ์ฌ๋ ๊ทธ๋ฃนํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์๊ณ , ๋๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๋ด๋นํ๊ณ ์๋๋ฐ, ์ด๋ฒ ํ๋ก์ ํธ์์ โMongoDB๋ฅผ ๋์ ํ์โ๋ ์๊ฒฌ์ด ๋์๋ค. MongoDB๋ฅผ ๋ณด๋ค ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ โ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ํจํดโ์ด ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ , ์ด ์ค โ์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ์ ๋ง๋ ํจํด์ ์ ์ฉํ ์ ์์ง ์์๊นโ๋ผ๋ ์๊ฐ์ ํด์ ํจํด์ ์กฐ์ฌํด๋ณด๊ธฐ๋ก ํ์๋ค.
์ฐ๋ฆฌ ๊ทธ๋ฃน์ โ๋ถ๋๋ผโ์ด๋ผ๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋์๋๋ฐ, โ๋ถ๋๋ผโ์ ์ ์์ผ ๊ธฐ๋ฒ ์ค ํ ์ข ๋ฅ์ธ ์คํฌ๋ผ์ ๋์์ฃผ๋ ๋๊ตฌ์ด๋ค. ์คํฌ๋ผ์ ์จ๋ผ์ธ์์ ์ฒ์ ์งํํ๊ฒ ๋๋ฉด ๊ฐ ํ๋์์ ๋ฌด์์ ํด์ผํ ์ง ๊ณ ๋ฏผํ๊ฒ ๋๊ณ , ๊ทธ ๊ณผ์ ์์ ๋ต๋ตํจ๊ณผ ์ด๋ ค์์ ๋๋ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ ๊ทธ๋ฃน์ ์คํฌ๋ผ์ ์งํํ๋๋ฐ์ ๋์์ ์ค ์ ์๋ ํ์ ํด์ ๋ง๋ค๊ธฐ๋ก ํ์๋ค.
MongoDB๋ฅผ ๋ณด๋ค ์ ์ฌ์ฉํ๊ธฐ ์ํด์ โ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ํจํดโ์ ์กฐ์ฌํ ํ ๊ฐ ํจํด์ ๋ํ ์ค๋ช ๊ณผ ์ฅ๋จ์ ์ ๊ธฐ์ ํ๊ณ , ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ๋ง๋ โ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ํจํดโ์ ์ ์ฉํ๊ณ ์ ํ๋ค.
์ฐธ๊ณ ํ ๊ฒ https://kciter.so/posts/about-mongodb
์ฐธ๊ณ ํ ๊ฒ https://velog.io/@moongq/MongoDBMongoose-ํผํฌ๋จผ์ค-ํฅ์์ํค๊ธฐ
https://marsettler.com/mongodb/mongodb-study-week-5/
Approximation Pattern์ **๋ฆฌ์์ค ๋น์ฉ(์๊ฐ, ๋ฉ๋ชจ๋ฆฌ, CPU ์ฃผ๊ธฐ)**์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ด ์์ฃผ ์ํ๋๊ณ , ์ด๋ฌํ ๊ณ์ฐ์ ์ ๋ฐ๋๊ฐ ์ต์ฐ์ ์์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฐ๊ธฐ๊ฐ ์ ์
- ํต๊ณ์ ์ผ๋ก ์ ํจํ ์ซ์๋ฅผ ์ ์งํจ
- ์ ํํ ์ซ์๊ฐ ํ์๋์ง ์์
- ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ตฌํํด์ผ ํจ
- ์ผ๋ฐ์ ์ผ๋ก 700,000๋ช ์ด ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋์ง ๋๋ 699,983๋ช ์ด ๋ฐฉ๋ฌธํ๋์ง ์๋ ๊ฒ์ ์ค์ํ์ง ์์ โ ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์นด์ดํฐ๋ฅผ ๊ตฌ์ถํ๊ณ ์๊ณ๊ฐ์ด ์ถฉ์กฑ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ฐ์ดํธ
- ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด Approximation Pattern์ ์ฌ์ฉํ์ฌ cout ์์ ์ ๋ํ ์ฐ๊ธฐ๋ฅผ ์ค์์ผ๋ก์จ, ์ํคํ ์ฒ ๋ณต์ก์ฑ๊ณผ ๋น์ฉ์ ์ค์ผ ์ ์์
Attribute Pattern์ ์ ์ฌํ ํ๋๊ฐ ๋ง์ ํฐ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ง๋ง ๊ณตํต ํน์ฑ์ ๊ณต์ ํ๋ ํ๋ ํ์ ์งํฉ์ด ์๊ณ ํด๋น ํ๋ ํ์ ์งํฉ์ ์ ๋ ฌํ๊ฑฐ๋ ์ฟผ๋ฆฌํ๋ ค๋ ๋ฌธ์ ์ ์ ์ฉํ๋ค. ์ ๋ ฌํด์ผ ํ๋ ํ๋์ ๋ฌธ์๊ฐ ์์ ํ์ ์งํฉ์์๋ง ๋ฐ๊ฒฌ๋๋ ๊ฒฝ์ฐ, ๋๋ ๋ฌธ์ ๋ด์์ ๋ ์กฐ๊ฑด์ด ๋ชจ๋ ์ถฉ์กฑ๋๋ ๊ฒฝ์ฐ.
- ๋ ์ ์ ์ธ๋ฑ์ค๊ฐ ํ์ํจ
- ์ฟผ๋ฆฌ ์์ฑ์ด ๋ ๊ฐ๋จํด์ง๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ ๋นจ๋ผ์ง
์ ์ฉ ์
{
title: "Star Wars",
director: "George Lucas",
...
release_US: ISODate("1977-05-20T01:00:00+01:00"),
release_France: ISODate("1977-10-19T01:00:00+01:00"),
release_Italy: ISODate("1977-10-20T01:00:00+01:00"),
release_UK: ISODate("1977-12-27T01:00:00+01:00"),
...
}
์ ์ฉ ํ
{
title: "Star Wars",
director: "George Lucas",
โฆ
releases: [
{
location: "USA",
date: ISODate("1977-05-20T01:00:00+01:00")
},
{
location: "France",
date: ISODate("1977-10-19T01:00:00+01:00")
},
{
location: "Italy",
date: ISODate("1977-10-20T01:00:00+01:00")
},
{
location: "UK",
date: ISODate("1977-12-27T01:00:00+01:00")
},
โฆ
],
โฆ
}
์๊ณ์ด, ์ค์๊ฐ ๋ถ์ ๋๋ ์ฌ๋ฌผ ์ธํฐ๋ท(IoT) ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํด์ผ ํ ๋ ์ ์ฉํ๋ค.
- ์ปฌ๋ ์ ์ ์ ์ฒด ๋ฌธ์ ์ ๊ฐ์
- ์ธ๋ฑ์ค ์ฑ๋ฅ ํฅ์
- ์ฌ์ ์ง๊ณ๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ์ก์ธ์ค๋ฅผ ๋จ์ํ ํ ์ ์์
์ ์ฉ ์
{
sensor_id: 12345,
timestamp: ISODate("2019-01-31T10:00:00.000Z"),
temperature: 40
}
{
sensor_id: 12345,
timestamp: ISODate("2019-01-31T10:01:00.000Z"),
temperature: 40
}
{
sensor_id: 12345,
timestamp: ISODate("2019-01-31T10:02:00.000Z"),
temperature: 41
}
์ ์ฉ ํ
{
sensor_id: 12345,
start_date: ISODate("2019-01-31T10:00:00.000Z"),
end_date: ISODate("2019-01-31T10:59:59.000Z"),
measurements: [
{
timestamp: ISODate("2019-01-31T10:00:00.000Z"),
temperature: 40
},
{
timestamp: ISODate("2019-01-31T10:01:00.000Z"),
temperature: 40
},
...
{
timestamp: ISODate("2019-01-31T10:42:00.000Z"),
temperature: 42
}
],
transaction_count: 42,
sum_temperature: 2413
}
- Document์ ํฌ๊ธฐ๊ฐ 16MB๋ก ์ ํ๋๊ธฐ ๋๋ฌธ์, ํด๋น ์ ํ์ ์ด๊ณผํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํจ
- ํด๋น Bucket์ ํฌํจ ๋ ๋ฐ์ดํฐ์ ๋ํ Aggregation ์ฐ์ฐ์ ๋จ์ผ Document ๋ด๋ถ์์ ์งํ ๊ฐ๋ฅํจ โ Aggregation ์ฐ์ฐ์ ๋ฎ์ ๋น์ฉ์ ํ ์ ์์
๋งค์ฐ ์ฝ๊ธฐ ์ง์ฝ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค ํจํด์ด ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๊ณ์ฐํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ค.
- ๋น๋ฒํ ๊ณ์ฐ์ ์ํ CPU ์์ ๋ ๊ฐ์
- ์ฟผ๋ฆฌ ์์ฑ์ด ๋ ๊ฐ๋จํด์ง๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ ๋นจ๋ผ์ง
- ๋ณธ ํจํด์ ํ์์ฑ์ ์๋ณํ๊ธฐ ์ด๋ ค์ธ ์ ์์
- ํจํด์ ์ ์ฉํ๊ฑฐ๋ ๋จ์ฉํ๋ ๊ฒ์ ํ์ํ์ง ์๋ ํ ํผํด์ผ ํจ
MongoDB์์ Document์ ์ด์ ๋ฒ์ ์ ์ ์งํด์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
- ๊ธฐ์กด ์์คํ ์์๋ ์ฝ๊ฒ ๊ตฌํํ ์ ์์
- ์ต์ ๋ฒ์ ์ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์์
- ์ฐ๊ธฐ ํ์๊ฐ 2๋ฐฐ๋ก ๋์ด๋จ
- ์ฟผ๋ฆฌ๋ ์ฌ๋ฐ๋ฅธ ์ปฌ๋ ์ ์ ๋์์ผ๋ก ํด์ผ ํจ
์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฃผ ์ก์ธ์คํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๊ธฐ ์ํด ๋ง์ JOIN ์์ ์ ์ํํ ๋ ๊ฐ์ฅ ์ ์ฉํ๋ค.
- JOIN ์์ ์ด ๋ง์ ๋ ์ฑ๋ฅ์ด ํฅ์๋จ
- ์ฝ๊ธฐ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ ์ ์ฒด JOIN ์ ๊ฐ์
- ๋ฐ์ดํฐ ๋ณต์
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ํจํด์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ง์ง ์๋ ๋ช ๊ฐ์ง ์ฟผ๋ฆฌ๋ ๋ฌธ์๊ฐ ์๊ณ , ์ด๋ฌํ ์์ธ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฃจ์ ์ ์ฃผ๋ํ ๊ฒฝ์ฐ ์ ์ฉํ๋ค.
- ๋ช ๊ฐ์ง Document ํน์ ์ฟผ๋ฆฌ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฃจ์ ์ ๊ฒฐ์ ํ์ง ๋ชปํ๋๋ก ํจ
- ์ฟผ๋ฆฌ๋ โ์ผ๋ฐ์ ์ธโ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ ์กฐ์ ๋์ง๋ง ์ด์๊ฐ์ ์ฌ์ ํ ํด๊ฒฐ๋จ
- ์ข ์ข ํน์ ์ฟผ๋ฆฌ์ ๋ง๊ฒ ์กฐ์ ๋๋ฏ๋ก ์์ ์ฟผ๋ฆฌ๊ฐ ์ ์ํ๋์ง ์์ ์ ์์
- ์ด ํจํด์ ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ก ์ํ๋จ
์ผ๋ฐ์ ์ธ ๋์ ๊ตฌ๋งค ๋ด์ญ
{
"_id": ObjectID("507f1f77bcf86cd799439011")
"title": "A Genealogical Record of a Line of Alger",
"author": "Ken W. Alger",
โฆ,
"customers_purchased": ["user00", "user01", "user02"]
}
๋ฒ ์คํธ ์ ๋ฌ : ****1000๋ช ์ด์์ ๊ตฌ๋งค์๊ฐ ์กด์ฌํ๋์ง
{
"_id": ObjectID("507f191e810c19729de860ea"),
"title": "Harry Potter, the Next Chapter",
"author": "J.K. Rowling",
โฆ,
"customers_purchased": ["user00", "user01", "user02", โฆ, "user999"],
"has_extras": "true"
}
๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ์๊ณ ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฑ์์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ค.
- ๋ฌธ์ ๊ตฌ์กฐ๊ฐ ๋ฏธ๋ฆฌ ์๋ ค์ง ๊ฒฝ์ฐ ๋์์ธ ๋จ์ํ
- ๋จ์์ฑ๊ณผ ์ฑ๋ฅ
๊ทผ๋ฌด์ผ์ ๋ฐฐ์ด๋ก ์ ์ฅ
๊ทผ๋ฌด์ผ์ ๋ฒ์ ๋ชฉ๋ก์ผ๋ก ๋ฐฐ์ด์ ์ ์ฅ
์ฐจ์ด์ ๋ณด๋ค ์ ์ฌ์ฑ์ด ๋ ๋ง์ ๋ค์ํ ๋ฌธ์๊ฐ ์๊ณ ๋ฌธ์๋ฅผ ๋จ์ผ ์ปฌ๋ ์ ์ ๋ณด๊ดํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ค.
- ๊ตฌํ์ด ์ฌ์
- ์ฟผ๋ฆฌ๋ฅผ ๋จ์ผ ์ปฌ๋ ์ ์์ ์คํํ ์ ์์
์ ์ฉ์
์ ์ฉ ํ
์ ํ๋ฆฌ์ผ์ด์ ์ย ๋ฐ์ดํฐ ์คํค๋ง์ ๋ํ ๋ณ๊ฒฝ์ด ์ ํ๋ฆฌ์ผ์ด์ ์๋ช ๋์ ์์ฃผ ๋ฐ์ํ๋ ๊ฒฝ์ฐ(๊ฑฐ์ ๋ชจ๋ ๊ฒฝ์ฐ๊ฐ ํด๋น๋จ), ์ด ํจํด์ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ ์ด์ ๋ฒ์ ๊ณผ ํ์ฌ ๋ฒ์ ์ด ์ปฌ๋ ์ ์ ๋๋ํ ์กด์ฌํ ์ ์๋ค.
- โ๋ค์ด ํ์โ์ด ํ์ํ์ง ์์
- ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์ ์ด
- ํฅํ ๊ธฐ์ ๋ถ์ฑ ๊ฐ์
- ๋ง์ด๊ทธ๋ ์ด์ ์ค์ ๋์ผํ ํ๋์ ๋ํด ๋ ๊ฐ์ ์ธ๋ฑ์ค๊ฐ ํ์ํ ์ ์์
Version 1
{
"_id": "<ObjectId>",
"name": "Darth Vader",
"home": "503-555-0100",
"work": "503-555-0110",
"mobile": "503-555-0120"
}
Version 2
{
"_id": "<ObjectId>",
"schema_version": "2",
"name": "Anakin Skywalker (Retired)",
"contact_method": [
{ "work": "503-555-0210" },
{ "mobile": "503-555-0220" },
{ "twitter": "@anakinskywalker" },
{ "skype": "AlwaysWithYou" }
]
}
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ์ง ์๋ ๋ฌธ์์ ๋ฐ์ดํฐ๊ฐ ๋ง์ ๋์ฉ๋ ๋ฌธ์๋ก ์ธํด ์์ ์งํฉ์ด RAM ์ฉ๋์ ์ด๊ณผํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ์์ ์ธํธ์ ์ ์ฒด ํฌ๊ธฐ ๊ฐ์
- ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ ๋ํ ๋์คํฌ ์ก์ธ์ค ์๊ฐ ๋จ์ถ
- ํ์ ์งํฉ์ ๊ด๋ฆฌํด์ผ ํจ
- ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ถ๊ฐ ์ด๋์ด ํ์
- ์จ๋ผ์ธ ์ผํ๋ชฐ์์ ์ต๊ทผ ๋ฆฌ๋ทฐ 5๊ฐ๋ง ํ์๋๊ณ , ๋๋ณด๊ธฐ๋ฅผ ํด๋ฆญํด์ผ ์ ์ฒด ๋ฆฌ๋ทฐ ๋ชฉ๋ก์ ๋ณผ ์ ์๋ ๊ฒ
- ์ธ๊ธฐ ์ํ ๋ชฉ๋ก์ ์ฐ์ ํ์ํ๊ณ ๋๋ณด๊ธฐ๋ฅผ ํด๋ฆญํด์ผ ์ ์ฒด ์ํ ๋ชฉ๋ก์ด ํ์ ๋๋ ๊ฒ
- ๋ฏธ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ๋๊ณ ์์ฒญ์ด ์์ ๊ฒฝ์ฐ๋ง ์ถ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์งํํ๋ฏ๋ก, MongoDB์ ์กฐํ ์์ฒญ์ ์ค์ผ ์ ์์
๋ฐ์ดํฐ๊ฐ ๊ณ์ธต์ ๊ตฌ์กฐ์ด๊ณ ์์ฃผ ์ฟผ๋ฆฌ๋ ๋ ์ ์ฉํ๋ค.
- ์ฌ๋ฌ JOIN ์์ ์ ํผํจ์ผ๋ก์จ ์ฑ๋ฅ ํฅ์
- ๊ทธ๋ํ ์ ๋ฐ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ด๋ฆฌํด์ผ ํจ
ํ ์ด๋ธ
ํธ๋ฆฌ ๊ตฌ์กฐ
ํํ : 5์ ์์ ๋ ธ๋๋ก 3, 2, 1์ด ์กด์ฌํจ
- Approximation
- Bucket
- Computed
- Extended Reference
- Preallocated
- Schema Versioning
Attribute ํจํด ํน์ Bucket ํจํด์ ์ฌ์ฉํด์ผํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ฌ์ค Attribute ํจํด๊ณผ Bucket ํจํด์ ์ ํํ ์ฐจ์ด๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ด ๋ ํจํด์ ๋ํ ๋น๊ต๋ ์ถํ์ ์์ธํ ๋ค๋ฃจ์ด ๋ณด๋๋ก ํ๊ฒ ๋ค.
๊ทธ๋ ๋ค๋ฉด Bucket ํจํด์ ์ ์ฉํ์ฌ, ํ์ฌ ์ฐ๋ฆฌ๊ฐ MongoDB๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฅํด์ผํ ๋ฐ์ดํฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
Workspace Data
{
workspaceId,
createAt,
updateAt,
}
Object Data
{
objectId,
type,
left,
top,
width,
height,
color,
text,
creator,
workspaceId,
fontSize,
scaleX,
scaleY,
}
์ข ํฉํ๋ฉด ํ๋์ Document์ ์ ์ฅํด์ผํ๋ ๋ฐ์ดํฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
{
workspaceId: 'workspaceId',
createAt: ISODate(""),
updateAt: ISODate(""),
objects: [
{
objectId, type, left, top, width, height, color, text, creator, workspaceId, fontSize, scaleX, scaleY,
},
{
objectId, type, left, top, width, height, color, text, creator, workspaceId, fontSize, scaleX, scaleY,
},
...
{
objectId, type, left, top, width, height, color, text, creator, workspaceId, fontSize, scaleX, scaleY,
}
],
...
}
ํ๋์ Document์๋ workspaceId๋ฅผ ๋ฐํ์ผ๋ก ํด๋น Workspace์ ์ ์ฅ๋์ด ์๋ Object๋ค์ ๋ฐฐ์ด์ ์ ์ฅํ๋๋ก ํ๋ค.
MongoDB๋ ๊ต์ฅํ ์์จ์ฑ์ด ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ ๊ฒ ๊ฐ๋ค. ๋จ์ํ โRDBMS๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋คโ๋ผ๋ ์๊ฐ์ผ๋ก ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ํฐ ์ฝ ๋ค์น ์ ์๋ค. ๋จ์ํ MongoDB๋ฅผ ์ฌ์ฉํด๋ณด๋ ๊ฒ๋ ์ข์ง๋ง, ๊ทธ ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ก๊ณ ๊ฐ๋ ๊ฒ์ ์ถ์ฒํ๋ค. ๋ฌดํฑ๋๊ณ ์ฌ์ฉํ๋ค๊ฐ๋ MongoDB์ ์ฅ์ ์ธ โ์ฑ๋ฅโ๊ณผ โ๊ฐ์ฉ์ฑ' ๋ ๋ง๋ฆฌ ํ ๋ผ ๋ชจ๋ ๋์น ์ ์๋ค.
๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day1] ํ ๋น๋ฉ
- [Week1-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week1-Day5] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week2-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week2-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week2-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week2-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week3-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week3-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week3-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week3-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week4-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week4-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week4-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week4-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week5-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week5-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week5-Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week5-Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week6-Day1] ์คํ๋ฆฐํธ ๊ณํ ํ์
- [Week6-Day2] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week6 Day3] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- [Week6 Day4] ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ