flux 패턴이란
#resource
#react
작성일:2025. 4. 19.
수정일:2025. 4. 20.

1745105037-flux-pattern.png
Flux 패턴은 Facebook(현 Meta)에서 개발한 단방향 데이터 흐름 아키텍처 패턴이다. 복잡한 UI를 가진 웹 애플리케이션에서 데이터 흐름을 관리하기 위해 만들어 졌으며, 특히 React와 함께 사용하기 위해 설계되었다.
주요 특징#
- 단방향 데이터 흐름: 데이터는 항상 한방향(Dispatcher -> Store -> View)으로만 흐른다.
- 예측 가능한 상태 관리: 애플리케이션의 상태가 어떻게 변하는지 추적하기 쉽다.
- 중앙 집중식 Dispatcher:모든 액션이 중앙 Dispatcher를 통과한다.
핵심 구성 요소#
-
액션(Actioin): 사용자 상호작용이나 API응답 등으로 발생하는 이벤트이다. 각 액션은
type
과 관련payload
(데이터)를 가진다. -
디스패처(Dispatcher): 액션을 받아서 등록된 모든 스토어에 전달하는 중앙 허브이다. Flux의 디스패처는 단일 디스패처로, 모든 액션은 이를 통과한다.
-
스토어(Store): 애플리케이션의 상태와 비즈니스 로직을 포함한다. 디스패치로부터 액션을 받아 처리하고, 상태를 업데이트한다. 스토어는 상태가 변경되면 뷰에게 알린다.
-
뷰(View): 주로 React 컴포넌트로 구현하다. 스토어의 상태를 화면에 렌더링하고, 사용자 입력에 반응하여 새로운 액션을 생성한다.
데어터 흐름#
Flux 데이터 흐름은 다음과 같은 단계로 진행된다.
- 사용자가 뷰와 상호작용한다.(예: 버튼 클릭)
- 뷰는 액션 크리에이터(Action Creator)
- 액션은 디스패처로 전달된다.
- 디스패처는 액션을 모든 스토어에 전달한다.
- 스토어는 액션에 따라 상태를 업데이트하고, 변경 이벤트를 발생시킨다.
- 뷰는 스토어의 변경 이벤트를 감지하고, 새로운 상태에 따라 리렌더링된다.
Flux 패턴의 장단점#
-
장점
- 예측 가능한 데이터 흐름
- 상태 관리의 일관성
- 디버깅 용이성
- 코드 구조의 명확성
-
한계점
- 간단한 애플리케이션에서는 과도한 보일러플레이트 코드가 발생
- 비동기 작업 처리를 위한 추가 라이브러리 필요
- 학습 곡선이 있음