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 아키텍처라고 이야기할 수 있지만, 순수 함수를 통해 이를 더 간단하게 만듭니다"라고 설명되어 있습니다.
반응형
'Programming > JavaScript' 카테고리의 다른 글
NodeJs - PostgreSql 연동하기. (0) | 2020.04.04 |
---|---|
[React] 불변성 관리 - Immer (0) | 2019.12.30 |
[jqGrid] 컬럼 순서 변경시 오류가 날 경우 (0) | 2019.08.23 |
바벨(Babel)과 타입스크립트(Typescript)중 어떤걸 사용해야 할까 (0) | 2019.07.16 |
Google의 JavaScript 스타일 가이드의 주목할만한 점 (0) | 2019.05.12 |