티스토리 뷰

개발공부/🟦 React.js

[React] Flux Pattern

2022. 8. 19. 21:39
 

React – A JavaScript library for building user interfaces

A JavaScript library for building user interfaces

reactjs.org

 

 

 Flux Pattern 

 

 

▶  Flux Pattern 이란?

 

2014년에 Facebook에서 제안한 웹 애플리케이션 아키텍처 패턴

 

-  Unidirectional data flow를 활용, 데이터의 업데이트와 UI 반영을 단순화한다.

-  React의 UI 패턴인 합성 컴포넌트와 어울리도록 설계되었다.

-  redux, react-redux 라이브러리의 Prior art.

 

 

 

 

 

▶  Flux Pattern   vs.   MVC Pattern

 

 

MVC Pattern

 

애플리케이션을 Model, View, Controller로 분리하여 개발하는 소프트웨어 디자인 패턴 중 하나

 

-  MVC 패턴에서는 View에서 특정 데이터를 업데이트하면 연쇄적인 업데이트가 일어난다.

-  앱이 커지면 업데이트의 흐름을 따라가기 힘들다.

-  특정 유저의 인터렉션이 여러 UI 컴포넌트가 사용하는 데이터에 영향을 줄 때 MVC만으로는 앱의 복잡도를 낮추거나 업데이트의 흐름을 따라가기 어렵다.

 

 

 

Flux Pattern

 

-  Flux는 하나의 Action이 하나의 Update만을 만들도록 한다. (하나의 유저 인터렉션 당 하나의 Update)

-  data와 업데이트가 한 방향으로 흐르므로 UI의 업데이트를 예측하기 쉽다.

 

하나의 유저 인터렉션이 무조건 하나의 업데이트만 만들 수 있는 것은 아니다.

예를 들어, 특정 버튼을 클릭했을 때 여러개의 액션을 만들 수 있다.

 

 

 

 

 

▶  Flux 구조

 

Action  →  Dispatcher  →  Store  →  View 순으로 데이터가 흐른다.

 

-  store  :   미리 dispatcher에 callback을 등록해 자신이 처리할 action을 정의

-  action  :  creator는 action을 생성하여 dispatcher로 보냄

-  dispatcher  :  action을 store로 넘김

 

유저 인터렉션이 발생하면 View는 action을 발생

→  store는 action에 따라 데이터를 업데이트 후 관련 view로 변경 이벤트 발생

→  view는 그에 따라 데이터를 다시 받아와 새로운 UI를 만듦

 

이미지출처 : 엘리스 React 심화 Ⅰ - 04 상태관리 강의자료

 

 

 

 

 

 

 

 


 이 글은 엘리스의 AI트랙 5기 강의를 들으며 정리한 내용입니다.

반응형

'개발공부 > 🟦 React.js' 카테고리의 다른 글

[React] class와 hooks 비교하기  (0) 2023.02.14
[React] 상태 관리에 사용되는 Hooks  (0) 2022.08.19
[React] 상태 관리  (0) 2022.08.19
[React] POSTMAN, OpenAPI, CORS  (0) 2022.08.16
[React] 비동기 통신과 Promise  (0) 2022.08.16
프로필사진
개발자 삐롱히

프론트엔드 개발자 삐롱히의 개발 & 공부 기록 블로그