React, Flux ํจํด์ด๋? ๐ค
status
publish
thumbnail
date
Apr 3, 2022
slug
react-flux-pattern
summary
Flux ํจํด ์์๋ณด๊ธฐ
MVC ํจํด์ ํ๊ณ
MVC ํจํด
ย ์ย Model์ ๋ฐ์ดํฐ๋ฅผ ๋๊ณ ,ย Controller๋ฅผ ์ด์ฉํดย Modelย ๋ฐ์ดํฐ ์์ ๋ฐ ์ ๊ทผ, View๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํฉ๋๋ค.Model - View ์์กด์ฑ (์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ)ย ๋์
์ด๋ฌํ ๊ด๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์
๊ท๋ชจ๊ฐ ๋์ด๊ฐ์ ๋ฐ๋ผย Model,ย Viewย ์๋ฅผ ์ฆ๊ฐ์ํค๊ฒ ๋๊ณ , ์ด๋ ๊ฒฐ๊ตญย ๋ฐ์ดํฐ ํ๋ฆ์ ๋ณต์ก๋๊ฐ ๋์ด๊ฐ๊ฒ ๋๋ ๋ฌธ์ ์ ์ด ๋ฉ๋๋ค. ๋ณต์กํ ํ๋ฆ์ ์ฌ์ฉ์, ๊ฐ๋ฐ์๊ฐ ์์ํ์ง ๋ชปํ๋ย ๋ฒ๊ทธ๋ฅผ ์ผ๊ธฐํ๊ฒ ๋ฉ๋๋ค.
Facebook Notification ๋ฒ๊ทธ ๐ชฒ
Facebook ์ฐ์ธก ์๋จ (Header)
, ์๋ก์ด ๋ฉ์ธ์ง ์๋ฆผ์ด ์์ง๋ง ํ์ธ์ ํด๋ ์๋ก์ด ๋ฉ์์ง๊ฐ ์๋ ๋ฒ๊ทธ์
๋๋ค. ํ์ธ์ ์ํดย ๋ฉ์ธ์ง ๋ฆฌ์คํธ
ย ์ ๋ค์ด๊ฐ๋ฉด ์๋ฆผ์ ์ฌ๋ผ์ง์ง๋ง, ์๊ฐ์ด ์ง๋๋ฉด ์๋ฆผ์ด ๋ค์ ๋ํ๋๊ณ ์ฌ์ ํ ์๋ฌด๋ฐ ๋ฉ์์ง๋ ์กด์ฌํ์ง ์์ต๋๋ค.์ด๋ฌํย ๋ฒ๊ทธ๋ ๊ฒฐ๊ตญย
MVC
์ ํ๊ณ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ณต์กํ๊ฒ ์ฝํย Model - View ๋ฐ์ดํฐ ํ๋ฆ์์ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค์ผํ๋ย View๊ฐ ์๋ก ๋ค๋ฅธ ๋ชจ๋ธ์ ๊ฐ๋ฅดํค๊ณ ์์ด ์ฌ์ฉ์๊ฐ ์ํ๋๋๋ก ์
๋ฐ์ดํธ ๋์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.์ย ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉดย ๋ฉ์ธ์ง ๋ฆฌ์คํธ Modelย ๊ณผย facebook ์ฐ์ธก ์๋จ (Header) Modelย ์๋ย ๊ด๊ณ์ฑ์ด ์กด์ฌํด์ผ ๊ฒ ์ฃ ..? โก๏ธย ๋ฐ์ดํฐ ํ๋ฆ์ด ๋์ฑ ๋ณต์กํด์ง๋๋ค. ๐
๐ Flux ํจํด ์ ๋ฑ์ฅ
Facebook ํย ์ด ์ด๋ฌํ ๋ฒ๊ทธ๋ฅผ ๊ฐ๋งํ ๋๋ฆฌ๊ฐ ์์ต๋๋ค.
Flux ํจํด
ย ์ย MVC ํจํด
ย ์ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ํจํด์ ๋์ฒด ํ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ํจํด์
๋๋ค.์๋๋ฐฉ์
Action์ด Dispatcher์๊ฒ ํน์ ์ฌ์ฉ์ Action ์ ๋ฌDispatcher๋ ํน์ Action Type ํ์ ํ Store์ ์ ๋ฌStore๋ Dispatcher์๊ฒ ์์ฒญ์ ๋ด๋ถ ์ํ๋ฅผ ์์ View๋ Store์ ๋ณํ๊ฐ ๊ฐ์ง๋๋ฉด View๋ฅผ ์ ๋ฐ์ดํธ
Action
์ฌ์ฉ์์ View์์์ ํ๋์ ๊ฐ์งํฉ๋๋ค. Action ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ย ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด Dispatcher์ ์ ๋ฌํฉ๋๋ค.
Dispatcher
Flux์ ๋ชจ๋ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ด๋ฆฌํ๋ ์ญํ ย Action์ด ๋์ด์ค๋ฉดย Action์ ๊ตฌ๋ถํ์ฌย Store์ ๋ณด๋
๋๋ค.
Store
์ดํ๋ฆฌ์ผ์ด์
์ย ๋ชจ๋ ์ํ๊ฐ ์กด์ฌํฉ๋๋ค.
Store๊ฐ ๋ณ๊ฒฝ๋๋ฉดย Viewย ์ ๋ณ๊ฒฝ๋์๋ค๋ ์ฌ์ค์ ์๋ ค์ค๋๋ค.
Store๋ ํ์์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.
View
๊ธฐ์กด View ์ฑ๊ฒฉ์ ๊ฐ์ง๊ณ ์๋ ๋์์,ย ์ปจํธ๋กค๋ฌ-๋ทฐ (Controller-View)ย ๋ก์ย ์ต์์ View์์ Store์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ด๋ฅผ ์์ View ๋ก ๋ด๋ ค๋ณด๋ด์ฃผ๋ ์ญํ ์ ํ๊ธฐ๋ ํฉ๋๋ค.