์ด๋ฒ์๋ ๋ฆฌ์กํธ์์ ๋ง์ด ์ฌ์ฉ๋๋ fluxํจํด์ ๋ํ ๊ณต๋ถ๋ฅผ ํด๋ณด๊ณ ์ ํฉ๋๋ค.
REACT๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ปดํฌ๋ํธ๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๊ต๋ฅํ ๋ ๊ธ๋ก๋ฒ ์ด๋ฒคํธ ์์คํ ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ธ flux ๋์์ธ ํจํด์ ๋ํด ์์๋ณด๊ณ MVC๊ฐ ์๋ FLUXํจํด์ ์ ์ฉํ๋์ง์ ๋ํด ์์ ๋ณด๊ฒ ์ต๋๋ค.
๋์์ธ ํจํด์ ์ฌ์ฉํ๋ ์ด์
- ์ ์ง๋ณด์์ฑ ํฅ์: ๋์์ธ ํจํด์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ์ผ๊ด์ฑ์ด ์ ์ง๋๊ณ , ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ฌ์์ง๋๋ค. ๋ฐ๋ผ์ ํ๋ก์ ํธ๊ฐ ์ปค์ ธ๋ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ ์ฆ๊ฐ: ๋์์ธ ํจํด์ ํ์ฉํ๋ฉด ์ ์ฌํ ์ํฉ์์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถ์ํค๊ณ ์ฝ๋์ ํจ์จ์ฑ์ ๋์ ๋๋ค.
- ํ์ฅ์ฑ ๊ฐํ: ๋์์ธ ํจํด์ ์์คํ ์ ํ์ฅํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ์ ์ฉํฉ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด ๊ธฐ๋ฅ์ ์์ ํ ๋ ์ฝ๋์ ์ผ๋ถ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋๋ฏ๋ก ์์คํ ์ ์ ์ฐํ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
- ์ฝ๋ ํ์ง ํฅ์: ๋์์ธ ํจํด์ ์ผ๋ฐ์ ์ผ๋ก ์ข์ ์ํํธ์จ์ด ๊ณตํ ์์น์ ๋ฐ๋ฆ ๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฅ์๋์ด ๋ ๋์ ํ์ง์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ค๊ณ ํจํด ์ ์ฉ: ๋์์ธ ํจํด์ ํน์ ํ ์ํฉ์์ ํจ๊ณผ์ ์ธ ์ค๊ณ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ค์ ๊ณตํต๋ ๋ฌธ์ ์ ๋ํ ์ผ๋ฐ์ ์ธ ํด๊ฒฐ์ฑ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ปค๋ฎค๋์ผ์ด์ ํฅ์: ๋์์ธ ํจํด์ ๊ฐ๋ฐ์๋ค ๊ฐ์ ์์ฌ์ํต์ ์ํํ๊ฒ ํฉ๋๋ค. ํจํด ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ฝ๋์ ์๋๋ฅผ ๋ช ํํ๊ฒ ์ ๋ฌํ ์ ์์ต๋๋ค.
- ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ ํฅ์: ๊ฒ์ฆ๋ ๋์์ธ ํจํด์ ์ฌ์ฉํ๋ฉด ์ค๋ ๊ธฐ๊ฐ ๋์ ์ฌ์ฉ๋์ด ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ๊ฒ์ฆ๋ ์๋ฃจ์ ์ ํ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ์ ๊ฐ ์ค๋ฆฝ์ฑ: ๋์์ธ ํจํด์ ํน์ ๊ธฐ์ ์ ์ข ์๋์ง ์์ผ๋ฉฐ ๋ค์ํ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ์ฉํ ์ ์์ต๋๋ค.
MVC์ ํ๊ณ
- ๋ณต์ก์ฑ ์ฆ๊ฐ: ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ MVC ํจํด์ด ๊ณผ๋ํ๊ฒ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ํนํ ์ปจํธ๋กค๋ฌ์ ๋ทฐ ๊ฐ์ ์์กด์ฑ์ด ๋ณต์กํด์ง ๊ฒฝ์ฐ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค.
- ์ค๋ณต ์ฝ๋: ๋ทฐ์ ์ปจํธ๋กค๋ฌ ๊ฐ์ ์ฝ๋๊ฐ ์ค๋ณต๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋ ๋ก์ง์ด ๋ทฐ์ ์ปจํธ๋กค๋ฌ ์์ชฝ์์ ์ค๋ณต๋ ์ ์์ต๋๋ค.
- ํ ์คํธ ์ด๋ ค์: ์ผ๋ถ MVC ๊ตฌํ์์๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ ๋ ํ ์คํธ๊ฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค.
- ๋ทฐ์ ๋ชจ๋ธ์ ์ง์ ์ ์ธ ์์กด์ฑ: ์ผ๋ถ ๊ฒฝ์ฐ์๋ ๋ทฐ๊ฐ ๋ชจ๋ธ์ ์ง์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ๋ ํฉ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ทฐ์ ๋ชจ๋ธ ๊ฐ์ ๊ฐ๋ ฅํ ์์กด์ฑ์ด ํ์ฑ๋ฉ๋๋ค.
- ๋ชจ๋ธ์ ๋ณต์ก์ฑ: ๋ชจ๋ธ์ ์ข ์ข ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ฏ๋ก ๋ณต์กํด์ง ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๋ชจ๋ธ์ด ๋ฌด๊ฒ๊ณ ๋ณต์กํด์ง ์ ์์ต๋๋ค.
- ์ ์ง๋ณด์ ์ด๋ ค์: ์ผ๋ถ ๊ฒฝ์ฐ์๋ ๋ชจ๋ธ, ๋ทฐ ๋ฐ ์ปจํธ๋กค๋ฌ ๊ฐ์ ์ํธ ์์กด์ฑ์ด ๋์์ ธ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ ์ด๋ ค์: ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ MVC ํจํด์ด ์ ์ง๋ณด์ ๋ฐ ํ์ฅ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๋ณต์กํ ์์กด์ฑ๊ณผ ๊ตฌ์กฐ ๋๋ฌธ์ ์ ์ ํ ๋์์ธ ํจํด์ ๊ณ ๋ คํด์ผ ํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ์์ ์ด๊ธฐ์๋ ์ง๋์น๊ฒ ๋ณต์กํ ์ ์์: ๊ฐ๋จํ ํ๋ก์ ํธ์์๋ MVC ํจํด์ ๋์ ํ๊ธฐ์๋ ์ง๋์น๊ฒ ๋ณต์กํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ด๊ธฐ ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค.
์์ฝํ๋ฉด, MVC ํจํด์ ๋ง์ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง, ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ ์ง๋ณด์ ๋ฐ ํ์ฅ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ๋์์ธ ํจํด์ด๋ ์ํคํ ์ฒ๋ฅผ ๊ณ ๋ คํด ๋ณผ ์ ์์ต๋๋ค.
Flux ํจํด์ด๋?
FLUXํจํด์ facbook์์ ๊ฐ๋ฐํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ณ์ ๋๋ค.
์ด ํจํด์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํ ๊ฒ์ธ๋ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๊ณ ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค.
Flux ์ํคํ ์ฒ๋ ๋ค์์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Actions: ์ฌ์ฉ์ ์ ๋ ฅ์ด๋ API ์๋ต๊ณผ ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด์ ๋๋ค. Action์ ์ด๋ค ๋ณํ๊ฐ ์ผ์ด๋ฌ๋์ง ์ค๋ช ํ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- Dispatcher: Action์ ๋ฐ์์ Store์ ์ ๋ฌํ๋ ์ญํ ์ ํฉ๋๋ค. Dispatcher๋ ์ ์ญ์ ์ผ๋ก ์ ์ผํ ์ญํ ์ ํ๋ฉฐ, Action์ ๋ฐ์ผ๋ฉด ๋ฑ๋ก๋ ๋ชจ๋ Store์ ํด๋น Action์ ์ ๋ฌํฉ๋๋ค.
- Stores: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ(๋ฐ์ดํฐ)๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๊ฐ๊ฐ์ Store๋ ํน์ ๋ถ๋ถ์ ์ํ๋ฅผ ๋ด๋นํ๊ณ ์์ต๋๋ค. Store๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ๋ณ๊ฒฝ๋๋ฉด ๋ฑ๋ก๋ View์๊ฒ ์๋ ค์ค๋๋ค.
- Views: ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ถ๋ถ์ ๋๋ค. View๋ Store์ ์ํ๋ฅผ ๊ตฌ๋ ํ๊ณ , ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ํ์ํฉ๋๋ค.
Flux์ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ฌ์ฉ์ ์ก์ ๋๋ API ์์ฒญ ๋ฑ์ผ๋ก๋ถํฐ Action์ด ์์ฑ๋ฉ๋๋ค.
- Action์ Dispatcher๋ฅผ ํตํด ๋ฑ๋ก๋ ๋ชจ๋ Store์ ์ ๋ฌ๋ฉ๋๋ค.
- ๊ฐ๊ฐ์ Store๋ Action์ ์ฒ๋ฆฌํ์ฌ ์ํ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด Store๋ ๋ฑ๋ก๋ View์๊ฒ ์๋ฆฝ๋๋ค.
- View๋ ์๋ก์ด ์ํ๋ฅผ ๋ฐ์์ ํ๋ฉด์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ฌ์ฉ์ ์ด์
Flux ํจํด์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์์ธก ๊ฐ๋ฅํ๊ณ ๋๋ฒ๊น ํ๊ธฐ ์ฌ์ด ์ฅ์ ์ด ์์ต๋๋ค.
๋ํ ์ฌ๋ฌ ๊ฐ์ Store๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ์ ์ญํ ์ด ๋ช ํํ๊ฒ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
Flux ํจํด์ ๋ํ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ Redux๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์ ๋จ์
- ๋ณต์ก์ฑ ์ฆ๊ฐ: ์์ ๊ท๋ชจ์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๊ฐ๋จํ ์ํ ๊ด๋ฆฌ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง๋ง, ํฐ ๊ท๋ชจ์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ Flux ์ํคํ ์ฒ๊ฐ ๋ณต์ก์ฑ์ ๋ํ ์ ์์ต๋๋ค. ๋ง์ Actions, Stores, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฐ์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด์ด ์์ต๋๋ค.
- Boilerplate ์ฝ๋: Flux ํจํด์ ๋ง์ boilerplate ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. Store์ Action์ ์์ฑํ๊ณ ์ฐ๊ฒฐํ๋ ๊ณผ์ ์ด ๋ฐ๋ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค.
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ํ๊ณ: ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ๋จํ๊ณ ์์ธก ๊ฐ๋ฅํ์ง๋ง, ์ผ๋ถ ์ํฉ์์๋ ๋ณต์กํ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋๋ ์กฐ๊ฑด๋ถ ์ ๋ฐ์ดํธ๊ฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- Store ์์กด์ฑ ๊ด๋ฆฌ: ์ฌ๋ฌ ๊ฐ์ Store์ด ์กด์ฌํ ๋, ๊ฐ๊ฐ์ Store์ด ๋ค๋ฅธ Store์ ์์กด์ฑ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ Store ๊ฐ์ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- ํ๋ ์์ํฌ ์ข ์์ฑ: Flux ํจํด์ React์ ๊ฐ์ ๋ทฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฌ์ฉ๋ ๋ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค. ๋ค๋ฅธ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํธํ์ฑ์ด ๋จ์ด์ง ์ ์์ต๋๋ค.
์ด๋ฌํ ๋จ์ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ท๋ชจ์ ๋ณต์ก์ฑ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๋ค์ ๊ฒฝํ๊ณผ ์ ํธ๋์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค. Flux ํจํด์ด ํญ์ ์ต์ ์ ์ ํ์ ์๋๋ฉฐ, ํ๋ก์ ํธ์ ํน์ฑ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ํ ๊ด๋ฆฌ ํจํด์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
https://oliviakim.tistory.com/93#Action-1
https://blog.naver.com/backsajang420/221368106022
https://bestalign.github.io/translation/cartoon-guide-to-flux/
'๊ฐ๋ฐ ์๋๋ธ๋ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
c++ ๋ฐ์ดํฐ ๊ตฌ์กฐ (0) | 2024.04.21 |
---|---|
Lazy Loading (0) | 2023.08.12 |
github action .env file ์ถ๊ฐ (0) | 2023.08.11 |
์น ํ์ด์ง ์ฑ๋ฅํฅ์ (0) | 2023.08.02 |
promise (0) | 2023.05.21 |