MongoDB - YooByWk/YooByWk.github.io GitHub Wiki
MongoDB
MongoDB ๋ํ์ ์ธ NoSQL๋ก ๋ํ๋จผํธ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
์ ํต์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)๊ฐ ํ๊ณผ ์ด์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ JSON๊ณผ ์ ์ฌํ BJON(Binary JSON) ํ์์ ๋ฌธ์๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
ํน์ง
1. ๋ฌธ์ ๋ชจ๋ธ
๋ฐ์ดํฐ๊ฐ ํ๋์ ๋ฌธ์์ ์บก์ํ ๋์ด ์ ์ฅ๋๋ค. ์ด ๋ฌธ์๋ ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์๋ค.
RDB์ Row ์ ํด๋นํ๋ฉฐ, ๋ฐ์ดํฐ์ ์ง์ญ์ฑ์ด ๋์ ๊ด๋ จ ์ ๋ณด ์ ๊ทผ์ด ๋น ๋ฅด๋ค.
2. ์ ์ฐํ ์คํค๋ง
์ปฌ๋ ์ ๋ด Document ๋ค์ ์๋ก ๋ค๋ฅธ ํ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
์ด๋ฌํ ํน์ง์ผ๋ก ์ธํด ์๋น์ค ๋ณ๊ฒฝ/ํ์ฅ์ ๋ฐ๋ฅธ ์คํค๋ง ๋ณ๊ฒฝ ๋น์ฉ์ด ๋ฎ๋ค.
3. ๊ณ ๊ฐ์ฉ์ฑ
Replica Set ์ ํตํด ์๋ ์ฅ์ ๋ณต๊ตฌ (Failover) ๋ฐ ๋ฐ์ดํฐ ๋ค์คํ๋ฅผ ์ง์.
๋ง์ฝ ํ๋ผ์ด๋จธ๋ฆฌ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์์, ์ธ์ปจ๋๋ฆฌ ์๋ฒ๋ฅผ ๋ฆฌ๋ ์๋ฒ๋ก ์ฌ์ฉ(์๋)
4. ์ํ ํ์ฅ์ฑ
์ค๋ฉ์ ํตํด ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ ์ ์ฅํ ์ ์์.
์ ํํ ๋งํ๋ฉด ์๋์ ์ผ๋ก ์งํํด์ฃผ์ด auto-sharding ์ด๋ผ ๋ณผ ์ ์์
RDB์ ๋น๊ต
| ๊ตฌ๋ถ | MongoDB (NoSQL) | RDB (SQL) |
|---|---|---|
| ์คํค๋ง | ์ ์ฐํจ (Schemaless) | ๊ณ ์ ์ (Fixed Schema) |
| ํ์ฅ | ์ํ ํ์ฅ (Sharding) ์ฉ์ด | ์์ง ํ์ฅ (Scale-Up) ์ค์ฌ |
| ๊ด๊ณ | ๋ฐ์ดํฐ ์ค๋ณต์ ํ์ฉํ๊ณ ์๋ฒ ๋ฉ(Embedding) ๋๋ ์ฐธ์กฐ(Referencing)๋ก ํํ | ์ ๊ทํ๋ฅผ ํตํ Join์ผ๋ก ํํ |
| ๋ฌด๊ฒฐ์ฑ | ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์ ๋ณด์ฅ (Mongoose ๋ฑ) | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ๋ฒจ์์ ๋ณด์ฅ (ํธ๋์ญ์ ์ ์ฝ์กฐ๊ฑด) |
์ฌ์ฉ
- ์ฝํ ์ธ ๊ด๋ฆฌ ๋ฐ ๋ธ๋ก๊ทธ ๋ฑ : ์ ํํ ๋์ง ์์ ๋ค์ํ ๋ฐ์ดํฐ์ ๋ฉํ๋ฐ์ดํฐ์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ์ฐํ๊ฒ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ
- ์์ ์ด ๋น๋ฒํ ์์ : ํ๋กํ, ์นดํ๋ก๊ทธ ๋ฑ ์์ ์ด ๋ง์ ๋ฐ์ดํฐ์ ์ฌ์ฉ
- ๋ก๊ทธ ๋ฐ ์ด๋ฒคํธ ๋ฐ์ดํฐ : "๋น์ ํ"๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ์ ์ฅ & ์ธ๋ฑ์ฑ์ ์ ๋ฆฌํจ