์ฌํฌ๋ฆฌ์ฒ๋ผ ํ๋ก๊ทธ๋จ๋ง๋ค ์กฐ๊ธ์ฉ ๋ค๋ฅธ SQL๊ณผ ๋ฌ๋ฆฌ
NoSQL(๋ ธ์์คํ์)์ ์ธ์ด์ ํน์ง๋ง ์๋ ๊ฒ ์๋๋ผ ๊ทธ๋ค์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด์ ์ฑ์ง๋ ๋ค๋ฅด๋ค.
NoSQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข ๋ฅ
๋ํ๋จผํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค(document DB), ํค๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(key-value DB), ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(graph DB) ...
๋ฐ์ดํฐ ํ์์ด ๋งค์ฐ ์์ ๋กญ๋ค.
๋ชฝ๊ณ ๋๋น(MongoDB)๊ฐ ๋ํ์
๋ฐ์ดํฐ๋ฅผ "์ ์ด์จ(JSON) ๋ํ๋จผํธ" ํํ๋ก ์ ์ฅ
- JSON : JavaScript Object Notation
- ์ ์ด์จ ๋ํ๋จผํธ(JSON document) : ์ ์ด์จ ํ์์ผ๋ก ์ ์ฅ๋ ํ์ผ
- ์ ์ด์จ ํ์ : {ํค1: ๊ฐ1, ํค2: ๊ฐ2, ...} ํํ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ์ ๋ชจ์
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ์ต
ID | Name | Price |
---|---|---|
1 | ์ฌ๋ฆฌํผ | 30000 |
2 | ๋ฐ์ง | 50000 |
โ SQL๋ก ๋ค๋ฃจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ ํํ๋ก ๋งค์ฐ ์ ์ ์ด๋ค.
โ ์ด์ ๋๋ฆฌ๊ณ ์ถ์ผ๋ฉด ๋ค๋ฅธ ํ์๋ ๋ฐ๋์ ๊ทธ ์ด์ ํด๋นํ๋ ๊ฐ์ ๋ฃ์ด ์ฃผ์ด์ผ ํ๊ณ , ๋ง์ฝ ๊ทธ ๊ฐ์ด ์์ผ๋ฉด ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์ด ์๋ค.
์) ๋ฐํ์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ๊ฐํ๋ ค๋ฉด id, name์ ํด๋นํ๋ ๊ฐ์ "๋ค" ๋ง๋ จํด์ผ ํ๋ค.
[
{"id": 1, "name": "์ฌ๋ฆฌํผ", "price": 30000},
{"id": 2, "name": "๋ฐ์ง", "price": 50000}
]
โ JSON ๋ํ๋จผํธ ํํ๋ ๋๊ดํธ์ ์ค๊ดํธ๋ก๋ง ๊ตฌ์ฑํ๋ฉด ๋๊ณ , ๋ฐ์ดํฐ๋ง๋ค ๊ตฌ์ฑ์ด ๊ฐ์ ํ์๊ฐ ์๋ค.
โ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ์ด๋ ํ ๋ชจ์, ์ด๋ ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ผ๋ ์ ์ฅํ ์ ์๋ค.
์ฝ๊ณ ์ฐ๋ ์๋๊ฐ ์์ฒญ ๋น ๋ฅด๋ค.
์นด์ฐ๋๋ผ๋๋น(CassandraDB), ๋ค์ด๋๋ชจ๋๋น(DynamoDB)๊ฐ ๋ํ์
ํ ํ์ ์ด์ด ์์ฒญ ๋์(column wide) ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ฝ๊ณ ์ฐ๋ ์๋๊ฐ ์ ๋ง ๋น ๋ฅด๋ค! ์๋ง ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ 1์ด ๋ง์ ์ธ ์ ์๋ค.
์ ํ์ ์นด์ฐ๋๋ผ๋๋น๋ก 10ํํ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ค.
- 10 ํํ๋ฐ์ดํธ(PB) = 100๋ง ๊ธฐ๊ฐ๋ฐ์ดํธ(GB)
- 1 ํํ๋ฐ์ดํธ(petabyte, PB) = 1,024ํ
๋ผ๋ฐ์ดํธ(TB)
- 1 ํ
๋ผ๋ฐ์ดํธ(TB) = 1๋ฐ์ดํธ * 10
๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ฅํด์ผ ํ๊ฑฐ๋ ์ฝ์ด์ผ ํ ๋ ์ข์ ์ ํ์ง
์๋ง์กด์ด ๋ง๋ค์๋ค.
๋์ค๋ง๊ณ (Duolingo) ๋ผ๋ ์ธ์ด ํ์ต ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ
์ด์ด๋ ๋ํ๋จผํธ ์์ด ๋ ธ๋๋ก ๊ด๊ณ๋ฅผ ํํํ๋ค.
๋ฐ์ดํฐ๋ฅผ ๊ด๊ณ๋ง์ผ๋ก ์ฐ๊ฒฐํ๋ค.
์)
์ฌ์ฉ์1์ด ์ฌ์ง1์ ์ข์์๋ฅผ ๋๋ ๋ค.
์ฌ์ฉ์1๊ณผ ์ฌ์ฉ์2๋ ์น๊ตฌ๋ค.