Redux 상태관리의 주요 개념들과 연결 관계를 설명해주세요. 다른 상태관리 도구와 비교 설명 해주세요

Redux는 flux구조를 따르고 있는 전역상태관리 라이브러리이다. 

액션 - 디스패쳐 - 스토어 - 뷰 그리고 다시 액션을 통해 디스패쳐로 이어지는 구조로 되어 있다.

디스패처의 특정 메소드를 실행하면 스토어에 변화를 일으킬 수 있는데, 이 메소드를 호출할 때는 데이터 묶음을 인수로 전달한다. 이 때 이 데이터 묶음을 액션(Action)이라 한다.

Flux 애플리케이션의 모든 데이터 흐름을 관리하는 허브 역할을 한다.

액션이 발생하면 디스패처로 메시지가 전달되고 디스패처는 디스패처에 등록된 콜백 함수를 통해 이 메시지를 스토어에 전달한다.

스토어는 상태를 저장한다. 모든 상태 변경은 스토어에 의해 결정되며 상태 변경을 위한 요청을 스토어에 직접 할 수는 없다. 상태 변경을 위해서는 꼭 액션 생성자를 통해 디스패쳐 단계를 거친 후 액션을 보내야만 상태값 변경이 가능하다.

뷰는 상태를 가져와서 보여주고 사용자로 부터 입력 받을 화면을 보여준다.

Redux는 단방향으로 한번만 이루어지는 구조이기 때문에 변화를 감지하고 화면을 업데이트하는 코드를 매번 작성해야 하는 단점이 있지만, 데이터 변화에 따른 성능 저하 없이 DOM 객체 갱신이 가능하다는 장점이 있다.

액션이 이루어지면 디스패쳐를 통해 스토어로 전달이되고 그리고 스토어에서 useSelector 함수를 통해 뷰로 다시 가져와서 적용 할 수 있다.

 

 

 

+ Recent posts