🌊 Flux νŒ¨ν„΄

Lee JooamΒ·2022λ…„ 4μ›” 17일
0

λ¬Ό 흐λ₯΄λ“―이 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ°

λ°°κ²½

μ°Έκ³  및 사진 좜처: TOAST UI λ²ˆμ—­κΈ€

MVC에 λŒ€ν•œ 자료λ₯Ό 찾닀보면 자주 λ³΄μ΄λŠ” μ˜ˆμ‹œκ°€ μžˆλ‹€. λ°”λ‘œ 페이슀뢁의 버그닀.

μ‚¬μš©μžμ—κ²Œ 읽지 μ•Šμ€ λ©”μ‹œμ§€ μ•Œλ¦Όμ΄ μƒκ²ΌλŠ”λ° 막상 μ°Ύμ•„κ°€λ©΄ μƒˆλ‘œμš΄ λ©”μ‹œμ§€κ°€ μ—†λ‹€. 그리고 λ‹€λ₯Έ μž‘μ—…μ„ ν•˜λ©΄ λ‹€μ‹œ 또 μ•Œλ¦Όμ΄ 생기고 μƒˆλ‘œμš΄ λ©”μ‹œμ§€λŠ” μ—¬μ „νžˆ μ—†λŠ” μƒνƒœλ‹€.

μ •ν™•ν•œ 원인은 λͺ¨λ₯΄κ² μ§€λ§Œ μœ„μ˜ 그림같은 ꡬ쑰가 μ•„λ§ˆ κ·Έ 원인이지 μ•Šμ„κΉŒ?

MVCμ—μ„œ ViewλŠ” Modelκ³Ό μ§μ ‘μ μœΌλ‘œ μ—°κ²°λ˜μ–΄μžˆμ§€ μ•Šμ§€λ§Œ Model의 정보λ₯Ό 기반으둜 λ Œλ”λ§λœλ‹€.

λ§Œμ•½ Model의 데이터 λ³€ν™”κ°€ View의 λ³€ν™”λ₯Ό λ°œμƒμ‹œν‚€κ³  κ·Έ View의 λ³€ν™”κ°€ λ˜λ‹€λ₯Έ Model의 λ³€ν™”λ₯Ό μΌμœΌν‚¨λ‹€λ©΄?

μ†Œκ·œλͺ¨μ˜ μ•±μ—μ„œλŠ” λΉ λ₯΄κ²Œ 원인을 μˆ˜μ •ν•  수 μžˆκ² μ§€λ§Œ, λŒ€κ·œλͺ¨ μ„œλΉ„μŠ€μ—μ„œλŠ” 맀우 νž˜λ“€ 것이닀.

페이슀뢁 κ°œλ°œνŒ€μ€ 이런 고질적인 문제λ₯Ό νƒ€νŒŒν•˜κΈ° μœ„ν•΄ κ³Όκ°ν•œ 수λ₯Ό κΊΌλƒˆλ‹€. μƒˆλ‘œμš΄ νŒ¨ν„΄μ˜ λ“±μž₯, 그것이 Fluxλ‹€.

κ·Έλž˜μ„œ Flux νŒ¨ν„΄μ΄ λ­μ˜ˆμš”?

페이슀뢁 κ°œλ°œνŒ€μ€ λ°μ΄ν„°μ˜ 흐름을 ν•œ λ°©ν–₯으둜 λ°”κΎΈλ €ν–ˆλ‹€.

  • λ·°μ—μ„œ μ•‘μ…˜μ„ λ°œμƒμ‹œν‚€λ©΄ λ””μŠ€νŒ¨μ³κ°€ 그것을 μ²˜λ¦¬ν•˜κ³  μŠ€ν† μ–΄μ— λ°˜μ˜ν•œλ‹€.
  • μŠ€ν† μ–΄λŠ” λ°μ΄ν„°μ˜ λ³€ν™”λ₯Ό 컨트둀러 λ·°(그림만 κ·Έλ¦¬λŠ” 뷰와 닀름)μ—κ²Œ μ•Œλ¦°λ‹€.
  • λ·°λŠ” 컨트둀러 λ·°μ—κ²Œ 받은 정보λ₯Ό 기반으둜 λ Œλ”λ§λœλ‹€.

μœ„ μž‘μ—…μ„ μœ„ν•΄μ„œ 5λͺ…μ˜ λ…Έλ™μžκ°€ ν•„μš”ν•˜λ‹€.

  1. Action Creator
  2. Dispatcher
  3. Store
  4. Controller View
  5. View

μ•‘μ…˜ μƒμ„±μžλŠ” 말 κ·ΈλŒ€λ‘œ μ•‘μ…˜μ„ μƒμ„±ν•œλ‹€. λ·°μ—μ„œ μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λ©΄ νŠΉμ • κ·œμΉ™μ— 따라 μ•‘μ…˜μ„ μƒμ„±ν•œλ‹€.

λ””μŠ€νŒ¨μ³λŠ” μ•‘μ…˜μ„ μŠ€ν† μ–΄μ—κ²Œ μ „λ‹¬ν•œλ‹€. μ΄λ•Œ νŠΉμ • μŠ€ν† μ–΄μ—κ²Œλ§Œ μ „λ‹¬ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λͺ¨λ“  μŠ€ν† μ–΄μ—κ²Œ μ•‘μ…˜μ΄ μ „λ‹¬λœλ‹€.

μŠ€ν† μ–΄λŠ” μ•‘μ…˜μ΄ 였기λ₯Ό κΈ°λ‹€λ Έλ‹€κ°€ μžμ‹ μ΄ μ²˜λ¦¬ν•  μ•‘μ…˜μ„ κ°μ§€ν•œλ‹€. 보톡은 switch 문으둜 μ•‘μ…˜μ„ μž‘λŠ”λ‹€. 그리고 μžμ‹ μ˜ λ³€ν™”λ₯Ό 컨트둀러 λ·°μ—κ²Œ μ•Œλ¦°λ‹€.

컨트둀러 λ·°λŠ” μŠ€ν† μ–΄μ—κ²Œμ„œ 받은 정보λ₯Ό μ•Œλ§žλŠ” λ·°μ—κ²Œ μ „λ‹¬ν•œλ‹€. μ΄λ•Œ λ·°λŠ” 데이터가 μ–΄λ–»κ²Œ μ‘°μž‘λ˜λŠ”μ§€ λͺ¨λ₯Έλ‹€. κ·Έμ € μ „λ‹¬λœ 데이터λ₯Ό 그릴 뿐이닀.

μš”μ•½ν•˜μžλ©΄

λ·° -> μ•‘μ…˜ -> λ””μŠ€νŒ¨μ³ -> μŠ€ν† μ–΄ -> λ·° ν˜•μ‹μœΌλ‘œ ν•œ λ°©ν–₯의 데이터 흐름이 λ§Œλ“€μ–΄μ§„λ‹€.

λ””μžμΈ νŒ¨ν„΄κ³Ό 개발

MVC에 이어 Flux νŒ¨ν„΄μ— λŒ€ν•΄μ„œλ„ μ•Œμ•„λ΄€λ‹€. 쀑간쀑간 MVVM λ“± λ‹€λ₯Έ νŒ¨ν„΄μ— λŒ€ν•΄μ„œλ„ 살짝 μ½μ–΄λ΄€λŠ”λ° 점점 이런 생각이 λ“ λ‹€.

λͺ¨λ“  λ””μžμΈ νŒ¨ν„΄μ€ κ°œλ°œμžλ“€μ΄ κ°œλ°œμ„ νŽΈν•˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ λ‚˜νƒ€λ‚œ 게 μ•„λ‹κΉŒ?

Flux λ˜ν•œ λ°μ΄ν„°μ˜ 흐름을 단방ν–₯으둜 λ°”κΏ” μ‹œμŠ€ν…œμ„ μ˜ˆμΈ‘ν•˜κΈ° μ‰½κ²Œ λ§Œλ“œλŠ”λ° μ˜μ˜κ°€ μžˆλ‹€.

λŒ€κ·œλͺ¨ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” κ°œλ°œμžλ“€μ΄ λͺΈμ†Œ μ²΄κ°ν•œ κΉ¨λ‹¬μŒμ΄κΈ°λ„ ν•˜λ‹€.

λ‚˜λŠ” 아직 그런 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•  μ—­λŸ‰λ„, κ²½ν—˜λ„ 많이 λΆ€μ‘±ν•˜λ‹€. ν•˜μ§€λ§Œ 이런 νŒ¨ν„΄μ„ μ‘°κΈˆμ΄λ‚˜λ§ˆ μ•Œκ³  μžˆλ‹€λ©΄ μΆ”ν›„ λΉ„μŠ·ν•œ 상황이 생겼을 λ•Œ 도움이 λ˜μ§€ μ•Šμ„κΉŒ? πŸ™‚

λ‹€μ–‘ν•œ κ²½ν—˜λ“€μ„ μŒ“μ•„λ΄μ•Όκ² λ‹€.

profile
ν”„λ‘ νŠΈμ—”λ“œ 개발자둜 κ±Έμ–΄κ°€λŠ” μ€‘μž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보