๐MongoDB๋ฅผ ์ฌ์ฉํ ์ด์
์ฐ๋ฆฌ ํ๋ก์ ํธ์์ NOSQL์ ํด๋นํ๋ MongoDB ๋ฅผ ์ฌ์ฉํ๋ค. ์ค์๊ฐ ํต์ ์ด ๋ง์์ ๋น ๋ฅธ Data ์กฐํ ์๋๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ MongoDB ๋ ์์น๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ด๋ จ ์ฟผ๋ฆฌ๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์์น๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ธ ์ฐ๋ฆฌ ์ฑ์ ์ ํฉํ๊ณ ํ๋จํ๋ค. ๊ทธ๋ ๋ค๋ฉด SQL๊ณผ NOSQL์ ํน์ง๊ณผ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น?
โ๏ธ SQL?
๊ตฌ์กฐํ๋ ์ฟผ๋ฆฌ ์ธ์ด (Structured Query Language) ๋ก์ ํน์ ์ ํ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฟผ๋ฆฌ ์ธ์ด์ ๋๋ค.
SQL์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ํด์ง ์คํค๋ง(๊ตฌ์กฐ)์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ํ ์ด๋ธ์ ์ ์ฅ
- ๋ฐ์ดํฐ๋ ๊ด๊ณ๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋๊ณ ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ ๋ถ์ฐ๋์ด ์ ์ฅ
์ฒซ ๋ฒ์งธ๋ ์๊ฒฉํ ์คํค๋ง์ธ๋ฐ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ์ ๋ ์ฝ๋ ํํ๋ก ์ ์ฅํ๊ณ ํ ์ด๋ธ์ ๋ช ํํ๊ฒ ์ ์๋ ๊ตฌ์กฐ๊ฐ ์กด์ฌํฉ๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์์๋ ์คํค๋ง๋ฅผ ์ค์ํ์ง ์๋ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
โ๏ธ์คํค๋ง๋? ์คํค๋ง๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ๊ดํด ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๊ฒ์ ๋๋ค. ๋ฐ๋ก ๊ฐ์ฒด์ ํน์ฑ์ ๋ํ๋ด๋ ์์ฑ๊ณผ, ์์ฑ์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ฒด, ๊ฐ์ฒด ์ฌ์ด์ ์กด์ฌํ๋ ๊ด๊ณ, ์ด๋ค์ด ์ ์งํด์ผ ํ๋ ์ ์ฝ์กฐ๊ฑด์ ๊ธฐ์ ํ ๊ฒ์ด์ฃ .
๋ ๋ฒ์งธ๋ ๊ด๊ณ์ ๋๋ค. ๊ด๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ ๋๋์ด์ ๋ฐ์ดํฐ๋ค์ ์ค๋ณต์ ํผํ ์ ์์ต๋๋ค. ์ฆ ํ๋์ ํ ์ด๋ธ์์ ์ค๋ณต ์์ด ํ๋์ ๋ฐ์ดํฐ๋ง ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ์์ ๋ถ์ ํํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ํ์ด ์์ด์ง๋ ๊ฑฐ์ฃ .
โ๏ธ NoSQL?
NoSQL ์ ๋น ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ก SQL ๊ณผ๋ ๋ฐ๋๋๋ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅธ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
monggose ๊ฐ์ ORM์ ์ฌ์ฉํ๋ฉด ์คํค๋ง๋ ๊ด๊ณ๋ฅผ ์ฌ์ฉํ ์๋ ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก NoSQL์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์คํค๋ง๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค
- ๊ด๊ณ๊ฐ ์์ต๋๋ค.
SQL ๊ฐ ์ ํด์ง ์คํค๋ง์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๋ฉด NoSQL ์ ๋ค๋ฅธ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ์ปฌ๋ ์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ปฌ๋ ์ ์ SQL ์ ํ ์ด๋ธ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด๋ฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก SQL ์ ๋ ์ฝ๋(ํํ) ์ NoSQL ์์ Document ๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
์คํค๋ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ์ฐํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ํ๊ณ ์๋ก์ด ํ๋๊ฐ ์ถ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค. ๋ํ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๋์ผํ ์ปฌ๋ ์ ์ ๋ฃ๊ธฐ ๋๋ฌธ์ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ฒ๋ผ ์กฐ์ธํ ํ์๊ฐ ์์ต๋๋ค. ์ค์ ๋ก NoSQL ์๋ ์กฐ์ธ์ด๋ผ๋ ๊ฐ๋ ์ด ์กด์ฌํ์ง๋ ์์ต๋๋ค.
๋ค๋ง ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋ ์ ์์ด ๋ถ์์ ํ ์ธก๋ฉด์ด ์๊ธฐ ๋๋ฌธ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ ๋ชจ๋ ์ปฌ๋ ์ ์์ ๋๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ฅผ ์ํ๋๋๋ก ํด์ผ ํ์ฃ . ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๋ฐ์ดํฐ๊ฐ NoSQL์ ์ ํฉํฉ๋๋ค.
โ๏ธ์์ง์ ํ์ฅ๊ณผ ์ํ์ ํ์ฅ
์์ง ํ์ฅ์ด๋?
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์๋ฒ์ ์ฑ๋ฅ์ ํฅ์ํ๋ ๊ฒ์ ๋๋ค. CPU, RAM์ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด์ฃ . ๊ฑฐ๋ํ ํํฌ ํผ์์ ์ผ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
์ํ ํ์ฅ์ด๋?
๋ ๋ง์ ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๊ฐ ์ ์ฒด์ ์ผ๋ก ๋ถ์ฐ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ค์์ ์์ ๋ฏธ๋์ธ์ด ์ผ์ ํ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
SQL ์ ๋ฐ์ดํฐ๊ฐ ์คํค๋ง, ๊ด๊ณ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์์ง์ ํ์ฅ๋ง์ ์ง์ํฉ๋๋ค. ์ํ์ ํ์ฅ์ NoSQL์์ ๊ฐ๋ฅํฉ๋๋ค. NoSQL ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ์ค๋ฉ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๋ฏ๋ก ์ฌ๋ฌ ์๋ฒ์์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ๋ถ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ํ ํ์ฅ์ ์ ๋ฆฌํฉ๋๋ค.
โ๏ธ์ค๋ฉ?
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ๋ฐ์ดํฐ๋ฅผ ํํฐ์ ๋ ํ๋ ๊ธฐ์ ์ธ๋ฐ์. ์ค๋ฉ์ DBMS ๋ ๋ฒจ์์ ๋ฐ์ดํฐ๋ฅผ ๋๋๋ ๊ฒ์ด ์๋๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๋ฅผ ๋ถํ ํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ๋จํ๊ฒ ์๋ฅผ ๋ค๋ฉด, ํ์ฌ ์ด์ ์ค์ธ ์๋น์ค๊ฐ ํด์ธ๋ก๋ ์ง์ถ์ ํ๊ฒ ๋์ด์ ๋ ํฐ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๊ฐ ํ์ํ๊ฒ ๋๋ฉด ์ด๋ ํ๊ตญ ์ ์ ์ ์ ๋ณด๋ A ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํ๊ณ ์ ๋ฝ ์ชฝ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ B ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๊ฒ์ด์ฃ .
โ๏ธ์๋
NOSQL ์ SQL๊ณผ ๋ค๋ฅด๊ฒ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ด ์ ์ฅํ๋ฏ๋ก ์กฐ์ธ์ด ํ์ ์๊ณ ACID๋ฅผ ๋ณด์ฅํ๋๋ฐ ์๊ฐ์ ํฌ์ํ์ง ์์ผ๋ฏ๋ก ์๋๋ฉด์์ ๋น ๋ฅด๊ฒ ๋ฉ๋๋ค.
โ๏ธ์์ฝ
SQL์ ์ฅ์ ์ ๋ช ํํ๊ฒ ์ ์๋ ์คํค๋ง๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ ์ ๋ณด์ฅํ๊ณ ๊ด๊ณ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต์์ด ์ ์ฅํ๊ฒ๋ฉ๋๋ค. ๋ฐ๋ฉด์ SQL ์ ๋จ์ ์ ๊ตฌ์กฐํ๋ ์คํค๋ง์ ํ์์ฑ์ผ๋ก ์๋์ ์ผ๋ก ๋ ์ ์ฐํ๊ณ ์ฆ์ JOIN์ ๋ฐ์ดํ ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ์ํฅ์ ์ค๋๋ค. ๋ํ ์ํ์ ํ์ฅ์ด ์ด๋ ต๊ณ ์์งํ์ฅ๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ์ฑ๋ฅ ํฅ์์ ํ ์ ์๋ ํ๊ณ์ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค.
NOSQL ์ ์คํค๋ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ก์ด ๋ฐ์ดํฐ, ํ๋๋ฅผ ์ถ๊ฐํ๋๋ฐ ์์ ๋กญ์ต๋๋ค. ๋ฐ์ดํฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์๋ก ํ๋ ํ์์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํ ์๋๊ฐ ๋น ๋ฅด๊ณ ์์ง/์ํ ํ์ฅ ๋ ๋ค ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ฉด์ NOSQL์ ๋จ์ ์ ๋ฐ์ดํฐ๊ฐ ์์ ๋กญ๊ฒ ์ถ๊ฐ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์ ์ค๋ณต๋์ด ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ฐ์ด ์ ๋ฐ์ดํธํด์ค์ผ ํฉ๋๋ค.
๐๊ฒฐ๋ก
์ฌ์ฉ์์ ๋ฐ์ดํฐ์๊ฒ ๋ช ํํ ์คํค๋ง๊ฐ ์ค์ํ๊ณ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋ ์ฌ์ง๊ฐ ์๋ ๊ฒฝ์ฐ, ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์๋ SQL์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค๊ณ ์๊ฐ์ด ๋ฉ๋๋ค.
๋ฐ๋ฉด์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ, ํ์ฅ์ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๊ณ ๋ฐ์ดํฐ์ ์์ ๋ณด๋ค๋ ์ฝ๊ธฐ ์์ ์ด ๋ง์ด ์ผ์ด๋๊ณ ๋ง๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ค์ผ ํด ์ํ ํ์ฅ์ด ํ์ํ ๊ฒฝ์ฐ์๋ NOSQL์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค๊ณ ์๊ฐ์ด ๋ฉ๋๋ค.
'FrontEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ์ํธ Virtual DOM (0) | 2020.12.31 |
---|---|
Apollo Client ์บ์ ๊ด๋ฆฌ ๊ธฐ๋ฒ (0) | 2020.12.23 |