๐ ๊ธฐ์กด์ mvc ํจํด
- SPAํํ๋ก ๋ง๋ค๋ฉด ๋จ ํ๋์ controller๋ก ์ฌ๋ฌ๊ฐ์ง view์ model์ ๊ด๋ฆฌํ๊ฒ ๋จ
- view์์ ์ผ์ด๋ ์ํธ์์ฉ์ผ๋ก ์ธํด ์ฌ๋ฌ model์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๋ฌธ์ ๋ ์์์ ๊ฒ
๐ ํ์ด์ค๋ถ์ ์ด๋ฌํ ์ํฉ์ ์ค์ด๊ณ ์ Flux ํจํด์ ๋ง๋ค์ด๋
flux ํจํด์ ํค์๋๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ด๋ค
๊ธฐ๋ณธํ
- action์ด ๋ฐ์ํ๋ฉด dispatcher์์ ์ด๋ฅผ ๋ฐ์์ ํด์ํ ํ store์ ์ ์ฅ๋ ์ ๋ณด์ ๋ณ๊ฒฝ์ ๊ฐํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๊ฐ view๋ก ์ ๋ฌ๋จ
๋ฐ์ ํ
- ๋ชจ๋ฐ์ผ์์ ํฐ์น๋ฅผ ํ๋ ๊ฒ์ฒ๋ผ, ์น์์๋ ์ฌ์ฉ์๊ฐ View๋ฅผ ํตํด์ ํด๋ฆญ ๊ฐ์ ์ก์ ์ ๋ฐ์์ํฌ ์ ์๋ค.
- action์ด ๋ฐ์ํ๋ฉด dispatcher ํตํด ๋จ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํ๋ฆ
๐ ๋จ๊ณ๋ณ ์ค๋ช
Action
Action์ ์ผ์ข ์ Action Creator, ํด๋ฆญ ๊ฐ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์์ action ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด dispatcher์ ์ ๋ฌ
Dispatcher
๋ค์ด์ค๋ action ๊ฐ์ฒด ์ ๋ณด๋ฅผ ๋ฐ์ ์ค์ ๋ก ์ด๋ค ํ๋์ ํ ์ง ๊ฒฐ์
action ๊ฐ์ฒด์ type์ ๊ตฌ๋ถ
์ฃผ๋ก store์ ์๋ ์ ๋ณด์ ์ ๊ทผํด ์์ ํ๋ ๋ช
๋ น์ ์ํ
Store
๋ฐ์ดํฐ, ์ํ๋ฅผ ๋ด๊ณ ์์. store๋ฅผ dispatcher์ ์ฐ๊ฒฐํด store์ ์ ๊ทผํด์ state๋ฅผ ๋ณ๊ฒฝํ ์ ์์
view
store์์ ์ด๋ค ์ด๋ฒคํธ(๋ณ๊ฒฝ)์ด ๋ฐ์ํ๋ฉด view๋ ๋ณ๊ฒฝ๋ ๊ฒ์ ๊ฐ์ ธ์์ ๋ ๋๋ง
๐ redux
๋ฆฌ๋์ค๋ ๊ฐ์ฅ ์ฌ์ฉ๋ฅ ์ด ๋์ ์ ์ญ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค
์ฅ์
๋จ๋ฐฉํฅ ๋ชจ๋ธ๋ง
ํ ๊ฐ์ง ๋ฐฉํฅ์ผ๋ก๋ง ๋ฐ๋๋ ๊ฒ์ ์๋ฏธํ๋๋ฐ, action์ dispatchํ ๋๋ง๋ค histroy๊ฐ ๋จ์์์๋ฌ๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ฝ๋ค.
๋ํ,ํ์๋จธ์ ๊ธฐ๋ฅ
์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ด์ ์ํ๋ก ๋์๊ฐ ์ ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.์ํ์ ์ค์ํ
์คํ ์ด(Store)๋ผ๋ ์ด๋ฆ์ ์ ์ญ ์ ์ฅ์๋ฅผ ํตํด ์ํ๋ฅผ ์ด ์คํ ์ด ํ ๊ณณ์์ ๊ด๋ฆฌ๋ฅผ ํ๋๋ฐ ์ด๋ฅผ, ์ํ์ ์ค์ํ๋ผ๊ณ ํ๋ค.์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ ๋ ๊ต์ฅํ ํจ๊ณผ์ ์ด๋ค.
๋ฆฌ๋์ (Reducer)
๋ณํ๋ฅผ ์ผ์ผํค๋ ํจ์์ด๋ค.
๋ฆฌ๋์๋ ๋๊ฐ์ง์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์์จ๋ค.ํ์ฌ์ ์ํ
,์ก์
์ ๋ฐ๋๋ฐ ์ด ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์๋ก์ด ์ํ๋ฅผ ๋ง๋ค์ด์ ๋ฐํํ๋ค.
๋ฆฌ๋์ค์์๋ ํ ์ ํ๋ฆฌ์ผ์ด์ ๋น
ํ๋์ ์คํ ์ด
๋ฅผ ๋ง๋ฆ
๐ ๋ฏธ๋ค์จ์ด
- ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด๋ ์ก์ ์ ๋์คํจ์นํ์ ๋ ๋ฆฌ๋์์์ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์ ์์ ์ฌ์ ์ ์ง์ ๋ ์์ ์ ์คํํ ์ ์๊ฒ ํด์ค๋ค. ์ฆ, ์ก์ ๊ณผ ๋ฆฌ๋์ ์ฌ์ด์ ์ค๊ฐ์
- ์ผ๋ฐ์ ์ธ ๋ฆฌ๋์ค๋ ๋๊ธฐ์ ์ผ๋ก ์๋ํ๋ค. ์ก์ ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ , ๋์คํจ์น๋ฅผ ํตํด ์ก์ ์ ๋ฐ์์์ผ ์คํ ์ด์๊ฒ ์๋ฆฌ๋ฉด, ๋ฆฌ๋์๋ ์ ํด์ง ๋ก์ง์ ์ํด ์ก์ ์ ์ฒ๋ฆฌํ ํ ์๋ก์ด ์ํ๊ฐ์ ๋ฐํํ๋ ๊ณผ์ ์ด๋ค. ํ์ง๋ง, ์ด๋ฌํ ๋๊ธฐ์ ์ธ ํ๋ฆ๋ง์ผ๋ก๋ ์ฒ๋ฆฌํ๊ธฐ ํ๋ ์์ ๋ค์ด ์๋ค. ๊ฐ๋ น, ์๊ฐ์ ๋๋ ์ด ์ํจ๋ค๋์ง, ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ฌ ๊ทธ์ ๋ฐ๋ฅธ ์๋ต์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ค๋์ง ์ด๋ฌํ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋๋ฐ ์์ด ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด๊ฐ ์ฌ์ฉ๋๋ค.
- ๋ํ์ ์ธ ๋ฆฌ๋์ค ๋ฏธ๋ค์จ์ด๋ก Redux-Saga์ Redux-Thunk๊ฐ ์๋ค.
'CS ๊ณต๋ถ - front' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์น] ๊ฒ์์์ง์ต์ ํ, SEO (0) | 2023.03.09 |
---|---|
[์น/์ต์ ํ]Image Lazy Loading (2) | 2023.02.27 |
[JS] ๊น์๋ณต์ฌ vs ์์๋ณต์ฌ (0) | 2023.02.15 |
[React] ๊ฐ์๋ (0) | 2023.02.15 |
[JS] var vs let vs const (0) | 2023.02.15 |