Redux의 근본적인 원칙 3가지를 알아봅시다.
Redux 공식 홈페이지에 언급된 Redux 애플리케이션의 3가지 원칙에 대해 알아봅시다.
애플리케이션의 모든 상태는 하나의 스토어 안에 하나의 객체 트리 구조로 저장됩니다. 이를 통해 애플리케이션 디버깅을 용이하게 만들 수 있습니다.
상태를 변화시키는 유일한 방법은 상태 변화를 나타내는 액션 객체를 전달하는 방법뿐입니다. 모든 상태 변화는 중앙에서 관리되고, 엄격한 순서에 의해 하나하나 실행되기 때문에 기록을 남길 수 있고, 저장할 수 있으며, 테스트나 디버깅을 위해 특정 액션을 재현하는 것도 가능합니다.
액션에 의해 상태 트리가 어떻게 변화하는지를 지정하기 위해 순수한 리듀서를 작성해야 합니다. 액션을 가지고 상태를 변경해주고, 이전의 상태는 건들지 않고 새로운 상태를 만들어 반환합니다. 그리고 똑같은 파라미터를 받아 실행된 리듀서는 언제나 똑같은 결과값을 반환해야 합니다. 이 말은 곧 리듀서 함수 내부에서 네트워크 및 데이터베이스 접근, Math와 Date같은 순수하지 않은 API를 호출하는 코드가 있으면 안 된다는 말입니다. 이러한 작업은 리듀서 바깥에서 처리해줘야 하고, 이를 위해 보통 미들웨어를 사용합니다.