Model
์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ณ , Controller
๋ฅผ ์ด์ฉํด Model
๋ฐ์ดํฐ๋ฅผ ์์ฑ / ์กฐํ / ์์ / ์ญ์ (CRUD
)ํ๊ณ , ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ View
๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ค.
facebook์์ ์ด์ผ๊ธฐํ๋ MVC
๋ชจ๋ธ์ ํฐ ๋จ์ ์ ์๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ด๋ค. Model
๋ฐ์ดํฐ๊ฐ ์
๋ฐ์ดํธ ๋๋ฉด View
๋ ๋ฐ๋ผ์ ์
๋ฐ์ดํธ๋๊ณ , ์
๋ฐ์ดํธ๋ View
์ ๋ฐ๋ผ ๋ค์ ๋ค๋ฅธ Model
์ด ์
๋ฐ์ดํธ๋๊ณ , ์ด์ ๋ฐ๋ผ ๋ ๋ค๋ฅธ View
๊ฐ ์
๋ฐ์ดํธ๋๋ค.
Model
๊ณผ View
์ฌ์ด์์ ์๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ๋ฐ์ดํฐ์ ํ๋ฆ์ด ๋ณต์กํด์ง๊ณ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ํ๊ฒ ์ ํํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
facebook์์ ๊ธฐ์กด MVC
ํจํด์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด flux
๋ผ๋ ํจํด์ ๋ง๋ค์๋ค. Flux
์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ด๋ค.
type
๊ณผ payload
๋ฅผ ํฌํจํ๋ค.type
์ ์ก์
์ด๋ฆ์ด๊ณ , payload
๋ ์ํ ์
๋ฐ์ดํธํ๋๋ฐ ํ์ํ ์ถ๊ฐ ๋ฐ์ดํฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.dispatcher
์๊ฒ ๋๊ฒจ์ค๋ค.Dispatcher
๋ ์ ๋ฌ๋ ์ก์
์ ๋ณด๊ณ , ๋ฑ๋ก๋ ์ฝ๋ฐฑํจ์๋ฅผ ์คํํ์ฌ ๋ชจ๋ store
์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.store
๋ ์ ํ๋ฆฌ์ผ์ด์
๋ด์ ๋ชจ๋ ์ํ์ ์ํ ์
๋ฐ์ดํธ ๋ก์ง์ ๊ฐ๊ณ ์๋ค.store
์์ ๊ฒฐ์ ๋๋ค.์ค๋๋ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก Redux๊ฐ ์ฌ์ฉ๋๋ค. Redux๋ flux ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก์ง๋ง ๊ทธ๋๋ก ๊ตฌํํ์ง ์์๋ค.
์ฒซ๋ฒ์งธ๋ก, Redux์๋ Dispatcher
๊ฐ๋
์ด ์๋ค. Reducer
๊ฐ flux ํจํด์์ ๋งํ๋ Dispatcher + Store
์ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค. Reducer
๋ ์ก์
๊ฐ์ฒด๋ฅผ ๋ฐ์ ์ก์
ํ์
์ ๋ฐ๋ผ ํจ์๋ฅผ ์คํํ๋ค. ํจ์ ๋ด๋ถ์์๋ ๊ธฐ์กด ์ํ์ ๋ถ๋ณ์ฑ์ ์งํค๋ฉฐ ์๋ก์ด ์ํ๋ฅผ ๋ฐํํ๋ค. ๊ฐ Reducer
๋ ์๋ก ์์กดํ ์ ์๋ค.
flux ํจํด์์๋ ์ฌ๋ฌ ์คํ ์ด๊ฐ ๊ฐ์์ ์ํ๋ง ๊ฐ์งํ ์ฑ ๊ณต์กดํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, Redux์์๋ ๋จ ํ๋์ ์คํ ์ด๋ง ์กด์ฌํด์ผ ํ๋ค. flux์์๋ ๊ฐ ๋ทฐ๊ฐ ์์ ์ด ํ์ํ ์คํ ์ด์๋ง ๊ฐ๊ฐ ์ ๊ทผํ ์ ์์ง๋ง, Redux๋ ๋จ์ผ ์คํ ์ด๋ฅผ ํตํด ๊ฐ ๋ฆฌ๋์์ ์ ๊ทผํ ์ ์๋ค.
์ํ์ ๋ถ๋ณ์ฑ์ ์งํค๋ฉฐ
side-effect
์์ด ์ํ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์ฅ์ ์ด์ง๋ง, ์ค์์ง์คํ ์คํ ์ด๋ก ์ธํด ๋ทฐ๊ฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐฉ์์ด ๋ฒ๊ฑฐ๋ก์ด ๊ฒ์ด ๋จ์ ์ด๋ค.