1. Redux란 무엇인가.

 

한 문장으로 말하자면 "Redux는 상태를 좀 더 효율적으로 관리할 수 있게 해주는 라이브러리"입니다.

 

 

 

2. Flux 패턴

 

Redux 공식 홈페이지의 소개에 따르면 "Redux는 Flux의 중요한 특징들로부터 영감을 얻었습니다. Flux와 마찬가지로 Redux에서는 애플리케이션의 특정 레이어에 있을 모델 업데이트 로직에 집중할 수 있도록 해줍니다"라고 명시되어 있습니다.

그렇다면 Flux란 무엇일까요?

 

Flux 패턴은 MVC 패턴의 양방향 통신이 가진 복잡함을 제거하기 위해 컴포넌트 간 통신을 단일화시킨 패턴을 말합니다.

위의 그림과 같이 데이터는 디스패처에 의해 단방향으로 흐르게 되는 것이 Flux 패턴의 핵심입니다.

 

 

 

3. Redux

 

다시 Redux로 돌아와서 결국 Redux는 Flux패턴의 구현체 중 하나란 것이다.

물론 공식 홈페이지에 따르면 "Redux를 Flux의 구현 중 하나라고 생각할 수 있을까요? 그렇기도 하고, 아니기도 합니다."라고 적혀있습니다. 

Redux는 Flux패턴의 철학을 추구한 구현체가 맞습니다만 정확히 같지는 않습니다. 가장 큰 차이점은 Flux와 달리 Redux에는 디스패처라는 개념이 존재하지 않는다는 것입니다.

좀 더 명확히 하자면  "Flux는 (state, action) => state 형식으로 묘사되곤 합니다. 따라서 Redux 역시 Flux 아키텍처라고 이야기할 수 있지만, 순수 함수를 통해 이를 더 간단하게 만듭니다"라고 설명되어 있습니다.

 

 

 

 

반응형

+ Recent posts