
React์ ํ์ ๋ฐฐ๊ฒฝ์ค ์ด MVC ๋ชจ๋ธ์ ๊ทน๋ณตํ๊ธฐ ์ํ ๋ง์ ๋ค์๋ค.
ํ์ง๋ง ๋๋ React ์ด์ ์ ๊ฐ๋ฐ (jQuery, ๋ฐ๋๋ผ.js)์ ์ ํ์ง ์์๋ ํ์ ์ด๋ฐ ํจํด์ ์ต์ํ์ง ์๋ค.
๊ทธ๋์ ์ด๋ฒ์๋ MVC ํจํด์ ํ๋ฒ ์ดํดํด๋ณด๊ณ ์ ๊ธ์ ์์ฑํ๋ค.
MVC๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋ฐ์ดํฐ ๋ฐ ๋
ผ๋ฆฌ ์ ์ด๋ฅผ ๊ตฌํํ๋๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ S/W ๋์์ธ ํจํด
S/W์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํ๋ฉด์ ๊ตฌ๋ถํ๋๋ฐ ์ค์ ์ ๋๊ณ ์๋ค.
"๊ด์ฌ์ฌ ๋ถ๋ฆฌ"(๋ก์ง ๋ถ๋ฆฌ)๋ ๋ ๋์ ๊ด๋ฆฌ๋ฅผ ์ํด ์ ๊ณตํ๋ค.
S/W๋ฅผ Model, View, Controller๋ผ๋ 3๊ฐ์ง ๊ตฌ์ฑ ์์๋ก ๊ตฌ๋ถํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
MVC์ ๊ธฐ๋ฐ์ ๋ ๋ค๋ฅธ ๋์์ธ ํจํด์ผ๋ก๋ MVVM, MVP, MVW๊ฐ ์๋ค.
Model : ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ฆฌ
View : ๋ ์ด์์๊ณผ ํ๋ฉด์ ์ฒ๋ฆฌ
Controller : ๋ชจ๋ธ๊ณผ ๋ทฐ๋ก ๋ช
๋ น์ ์ ๋ฌ
Model์๋ App์ ์ ๋ณด, ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ฉฐ ์ฒ์์ ์ ์ํ๋ ์์, ์ด๊ธฐํ๊ฐ, ๋ณ์ ๋ฑ์ ๋งํ๋ค.
Model์ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ๊ฐ์ง๊ณ ์๋ค.
1. ์ฌ์ฉ์๊ฐ ํธ์งํ๊ธธ ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
โ ๊ธ์๋ด์ฉ, ๊ธ์์ ์์น, ๊ธ์์ ํฌ๋ฉง ์ ๋ณด, ํ๋ฉด์ ์์น์ ๋ณด ๋ฑ
2. View๋ Controller์ ๋ํ ์ ๋ณด๋ฅผ ์๋ฉด ์๋๋ค.
โ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ์ผ์ด๋ฌ์ ๋ UI๋ฅผ ์ง์ ์กฐ์ ํด์ ์์ ํ ์ ์๋๋ก View๋ฅผ ์ฐธ์กฐํ๋ ๋ด๋ถ ์์ฑ๊ฐ์ ๊ฐ์ง๋ฉด ์๋๋ค.
3. ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ฉด ๋ณ๊ฒฝ ํต์ง์ ๋ํ ์ฒ๋ฆฌ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผ๋ง ํ๋ค.
โ ๋ชจ๋ธ์ ์์ฑ ์ค ํ
์คํธ ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผ ๋๊ตฐ๊ฐ์๊ฒ ์ ๋ฌํด์ผํ๋ฉฐ ๋๊ตฐ๊ฐ Model์ ๋ณ๊ฒฝํ๋๋ก ์์ฒญํ๋ ์ด๋ฒคํธ๋ฅผ ๋ณด๋์ ๋ ์ด๋ฅผ ์์ ํ ์ ์๋ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผํ๋ค. ์ด๋ ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋๋ ๋ฐฉ๋ฒ์ ๋ค๋ฅธ ๊ตฌ์ฑ์์๋ค์๊ฒ ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ
1. Model์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ ๋ฐ๋ก ์ ์ฅํด์๋ ์๋๋ค.
โ ํ๋ฉด์ ํ
์คํธ๋ฅผ ํ์ํ๊ธฐ ์ํด ๋ชจ๋ธ ์ ๋ณด๋ฅผ ์ ๋ฌ ๋ฐ์ ๋ ๊ทธ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์์๋ก View ๋ด๋ถ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ์๋๋ค. ๋จ์ํ ํ
์คํธ๋ฅผ ํ์ํ๋ ์ญํ ๋งํ๊ณ ํ๋ฉด์ ๊ทธ๋ฆด ๋ ํ์ํ ์ ๋ณด๋ค์ ์ ์ฅํ์ง ์๋๋ค.
2. Model์ด๋ Controller์ ๋ํ ์ ๋ณด๋ฅผ ์ ํ์๊ฐ ์๋ค.
โ Model๊ณผ ๊ฐ์ด ์๊ธฐ ์์ ์ ๋นผ๊ณ ๋ ๋ค๋ฅธ ์์๋ ์ด๋ป๊ฒ ๋์ํ๊ฑฐ๋ ์ฐธ์กฐํ๋์ง ์์์๋ ์๋๋ค.
3. ๋ณ๊ฒฝ์ด ์ผ์ด๋ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ํต์ง์ ๋ํ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผ๋ง ํ๋ค.
โ Modle๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ์ด ์ผ์ด๋ฌ์ ๋ ์ด์ ๋๊ตฐ๊ฐ์๊ฒ ๋ณ๊ฒฝ์ ์๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผ ํ๋ค.
View์์๋ ํ๋ฉด์์ ์ฌ์ฉ์๊ฐ ํ๋ฉด์ ํ์๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ๊ฒ ๋๋ฉด ์ด๋ฅผ Model์๊ฒ ์ ๋ฌํด Model์ ๋ณ๊ฒฝํด์ผ ํ ๊ฒ์ธ๋ฐ ๊ทธ ์์
์ ์ํ ๋ณ๊ฒฝ ํต์ง๋ฅผ ๊ตฌํํ๋ค.
Controller๋ ๋ค์ ๊ท์น์ ์ดํดํด์ผ ํ๋ค.
1. Model์ด๋ View์ ๋ํด ์๊ณ ์์ด์ผ ํ๋ค.
โ Model์ด๋ View๋ ๋ณ๊ฒฝ์ ์ธ๋ถ๋ก ์๋ฆฌ๊ณ ์์ ํ๋ ๋ฐฉ๋ฒ๋ง์ ์๊ณ ์๋ก์ ์กด์ฌ๋ ๋ชจ๋ฅธ๋ค.
์๋ก ๋ชจ๋ฅด๋ ๋์ Controller๊ฐ ์ค์ฌํ๊ธฐ ๋๋ฌธ์ Controller๋ Model๊ณผ View์ ๋ํด ์๊ณ ์์ด์ผ ํ๋ค.
2. Model์ด๋ View์ ๋ณ๊ฒฝ์ ๋ชจ๋ํฐ๋ง ํด์ผํ๋ค.
โ Model๊ณผ View์ ๋ณ๊ฒฝ์ ํต์ง ๋ฐ์ผ๋ฉด ์ด๋ฅผ ํด์ํด ๊ฐ๊ฐ์ ๊ตฌ์ฑ ์์์๊ฒ ํต์ง๋ฅผ ํด์ผ ํ๊ธฐ์
๋์ ์ถ์ ํ๊ณ ์์ด์ผ ํ๋ค.

๋ ๊ตฌ์ฒด์ ์ธ MVC ํจํด์ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.


๋จํธ์ MVC์ ํ๋ฆ์์๋ Controller๊ฐ View์๊ฒ ์ํฅ์ ๋ผ์น์ง ์์์ง๋ง
์ด ๋ ๊ทธ๋ฆผ์์๋ View์๊ฒ ์ํฅ์ ๋ผ์น๊ณ ์๋ค.