[flutter] Redux의 작동 원리는 무엇인가요?

Redux는 상태 관리 패턴 중 하나로, 애플리케이션의 상태를 예측 가능하게 만들어주는 패턴입니다. Redux는 세 가지 주요 개념인 액션(Action), 상태(State), 그리고 리듀서(Reducer)로 이루어져 있습니다.

  1. 액션(Action): 액션은 애플리케이션에서 어떠한 변화가 발생했음을 나타내는 객체입니다. 사용자의 입력이나 네트워크 응답과 같은 이벤트에 의해 생성될 수 있습니다. 액션은 type이라는 필수 속성을 가지며, 추가적인 데이터를 포함할 수도 있습니다.

  2. 상태(State): 상태는 애플리케이션의 데이터를 저장하는 객체입니다. 상태는 불변성(Immutable)을 유지해야 하며, 하나의 Redux 스토어에서 단 하나의 상태를 가집니다. 상태는 액션에 의해 변경됩니다.

  3. 리듀서(Reducer): 리듀서는 현재 상태와 이전 상태를 바탕으로 액션에 따른 새로운 상태를 계산하는 함수입니다. 리듀서는 순수 함수로 작성되어야 하며, 이전 상태를 변경하지 않고 새로운 상태를 반환해야 합니다.

Redux의 작동 원리는 다음과 같습니다. 사용자가 애플리케이션에서 어떤 액션을 발생시키면, 해당 액션은 리듀서에 전달됩니다. 리듀서는 현재 상태와 액션을 받아서 새로운 상태를 계산한 뒤, 이를 반환합니다. 반환된 새로운 상태는 Redux 스토어에 저장되고, 애플리케이션의 모든 컴포넌트에 자동으로 전달됩니다. 이후 컴포넌트는 새로운 상태를 반영하여 뷰를 업데이트합니다.

이렇게 Redux는 상태의 변화를 예측 가능하게 만들어줍니다. 모든 상태 변화는 액션을 통해 일어나며, 리듀서를 통해 상태를 업데이트합니다. 이를 통해 애플리케이션의 상태 변화를 추적하고 디버깅하기 쉬워집니다.

참고 자료: