π Before start
λ©΄μ μμ Redux λμμΈ ν¨ν΄μ λν μ§λ¬Έμ΄ λμλ€. Reduxλ₯Ό μ¬μ©ν΄ λ³Έ κ²½νμ΄ μκ³ , μ΄λ€ μμΌλ‘ λμνλμ§ μκ³ μμ§λ§ μ ννκ² μ€λͺ
νμ§ λͺ»ν΄ μ΄μν λ§λ§ λμ΄ λκ³ λμλ€.
λ©΄μ μ νμ λ¨λ¦¬μ§λ§ λΆμ‘±ν λΆλΆμ νμ€ν κΉ¨λ«κ²νλ€. 곡λΆν κ±°λ¦¬κ° μ겨 μ¬λ°κΈ°λ νλ€.
리λμ€ λμμΈ ν¨ν΄μΈ Flux ν¨ν΄κ³Ό Flux ν¨ν΄μ λ±μ₯ λ°°κ²½μ λν΄ μμ보μ.
Flux Pattern
μ μ΄ν΄νκΈ° μν΄μ μ°μ MVC Pattern
μ μμμΌ νλ€.
MVC Pattern
μ Model
,View
, Controller
λ‘ μ΄λ£¨μ΄μ Έμλ€.
κ΅¬μ± | μν |
---|---|
Model | λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ€ |
View | μ¬μ©μμκ² λ³΄μ¬μ§λ UIλ₯Ό κ΄λ¦¬νλ€ |
Controller | Modelκ³Ό View μ¬μ΄μμ νμν μμ μ μννλ€ |
μ¬μ©μκ° View
μμ Actionμ λ°μμν€λ©΄ Controller
λ μ΄λ₯Ό κ°μ§ν΄ νμν μμ
μ μννλ€.
1οΈβ£ λ°μ΄ν° λ³κ²½μ΄ μλ κ²½μ° View
λ§ μ
λ°μ΄νΈ νλ€.
2οΈβ£ λ°μ΄ν° λ³κ²½μ΄ μλ κ²½μ° Model
μ μ
λ°μ΄νΈ νκ³ View
μκ² μλ € νλ©΄μ μ
λ°μ΄νΈ νλ€.
π¨ MVC Pattern
μ μ¬μ€μ λ°±μλμ μ ν©ν λμμΈ ν¨ν΄μ΄λ€.
1. ν΄λΌμ΄μΈνΈμ μμ²μ λ°λλ€.
2. μμ²μ λν μμ
μ μ²λ¦¬νλ€.
3. λ°μ΄ν°λ₯Ό κ°κ³΅νκ±°λ μμ§νλ€.
4. ν΄λΌμ΄μΈνΈμκ² μ€ μΉνμ΄μ§, μ¦ Viewλ₯Ό μμ±νκ³ μλ΅νλ€.
SPA κ°μ κ²½μ° MVC Pattern
μΌλ‘ λμνλ€κ³ μκ°ν μ μλ€. μ¬μ©μκ° μ
λ ₯ν URLμ λ°λΌ ν΄λΉ URLμ λΆμν΄ μλ§μ νμ΄μ§λ₯Ό λ λλ§νκΈ° λλ¬Έμ΄λ€. κ·Έλ°λ° MVC Pattern
μ νλ‘ νΈ μν€ν
μ³λ‘ μ μ©νκΈ°μ λΆλͺ
ν νκ³μ μ΄ μ‘΄μ¬νλ€.
νλ‘ νΈμλμμλ MVC Pattern
μ μ μ©νκΈ°λ μ½μ§ μμμ‘λλ°, μ΄μ κ³Ό λ¬λ¦¬ View
κ° λ§€μ° λ³΅μ‘ν΄μ‘μΌλ©°, κ·Έμ λ°λΌ μ¬μ©μμμ μνΈμμ©μ΄ λΉλ²νκ² λ°μνκΈ° λλ¬Έμ΄λ€.
μ¬μ€ νλ‘ νΈμλλ κ·Έ μμ²΄κ° View
λΌκ³ ν μ μλ€. λ€μν μ΄λ²€νΈλ₯Ό μ²λ¦¬ν΄μΌνλ κ³Όμ μμ View
κ° κ³§ Controller
μ κ°μ μν μ ν μλ°μ μλ μν©μ΄ μ겨λ¬κ³ , μ΄ λλ¬Έμ Model
κ³Ό View
μ¬μ΄ μμ‘΄μ±μ΄ λ§€μ° μ»€μ‘λ€.
1. μ¬μ©μ μ
λ ₯ κ° κ΄λ¦¬
2. μ΄λ²€νΈλ₯Ό κ°μ§ν΄ νλ©΄ μ
λ°μ΄νΈ
3. setTimeoutμ μ¬μ©ν μ€μΌμ€ κ΄λ¦¬
4. μλ²μ ν΅μ
etc...
MVC Patternμ νλ‘ νΈμλμμ
View
μModel
μ κ΄κ³λ₯Ό λ§€μ° λ³΅μ‘νκ² λ§λ λ€.
1οΈβ£ View
μ λ³κ²½μΌλ‘ Model
μ λ°κΏμΌ νλ κ²½μ°
2οΈβ£ Model
μ λ³κ²½μΌλ‘ View
λ₯Ό λ°κΏμΌ νλ κ²½μ°
μ¬μ©μ μ λ ₯μ΄ μμ λ λ·°κ° μ¬λ¬ λͺ¨λΈμ λ³κ²½νκ³ , λ³κ²½λ λͺ¨λΈμ λ λ€λ₯Έ λͺ¨λΈμ λ³κ²½ν΄μΌ νλ κ²½μ°κ° μλ€. μ¬μ§μ΄ λ³κ²½λ λͺ¨λΈμ΄ λ€μ μ¬λ¬ λ·°μ λ°μλμ΄μΌ νλ κ²½μ°λ μλ€. μ΄λ¬ν νμμ λ°μ΄ν° νλ¦μ μΆμ νκΈ° μ΄λ ΅κ² λ§λ€κ³ μ ν리μΌμ΄μ μ΄ μ΄λ»κ² λμνλμ§ μμΈ‘νκΈ° μ΄λ ΅λ€λ μΉλͺ μ μΈ λ¨μ μ λ°μμν¨λ€.
νλ‘ νΈμλλ μ΄λ¬ν MVC Pattern
μ νκ³λ₯Ό 극볡νκ³ μ MVVM Pattern
, Flux Pattern
λ±κ³Ό κ°μ λ€μν κΈ°μ μ λμ
νλ€. κ·Έ μ€ νμ΄μ€λΆμμ λ°νν Flux Pattern
μ λν΄ μμ보μ.
νμ΄μ€λΆμμλ μμΈ‘ κ°λ₯μ±μ λμ΄κΈ° μν΄ λ°μ΄ν°κ° λ¨λ°©ν₯μΌλ‘ νλ₯΄λ Flux μν€ν
μ³
λ₯Ό λ°ννλ€.
Action
Dispatcher
μ μ λ¬νλ€.Dispatcher
Action
μ typeμ λ§λ μμ
μ μννλ€.Store
μ λ°μ΄ν°λ₯Ό μ‘°μνλ κ²μ λ§νλ©°, Store
μ μ μλ μ½λ°± ν¨μλ₯Ό μ€ννλ€.Dispatcher
ν΅ν΄μλ§ Store
λ°μ΄ν°λ₯Ό μ‘°μν μ μλ€.Store
(Model)Dispatcher
μ λ°μ΄ν°λ₯Ό μ‘°μν μ μλ ν¨μλ₯Ό λ±λ‘νλ€.View
μ μλ¦°λ€.View
Action
μ μμ±νλ€.Store
κ° λ°μ΄ν° λ³κ²½μ μ리면 λ°μ΄ν°λ₯Ό κ°μ Έμ νλ©΄μ μ¬λ λλ§ νλ€.Redux, Recoil κ³Ό κ°μ 리μ‘νΈ μν κ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬λ μ΄λ¬ν Flux Pattern
μ κΈ°λ°μΌλ‘ λ§λ€μ΄μ‘λ€. Store
μ λ°μ΄ν°κ° λ°λλ©΄ κ·Έ λ³κ²½ μ¬νμ View
μ λ°μνλλ‘ ν΄ λ°μ΄ν° νλ¦μ μΆμ νκΈ° ν¨μ¬ μ©μ΄ν΄μ‘κ³ μμ μ μΌλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν μ μλ€.
Mozilla MVC
νλ‘ νΈμλμμ MVCλ³΄λ€ λ λ§μ΄ μ°μ΄λ ν¨ν΄μ?
A cartoon guide to Flux