사용자 의도를 type과 payload로 표현해 상태 변경의 이유를 이름으로 남깁니다.
reducer
useReducer action 이름
상태 변경 규칙이 많아지면 setter 여러 개보다 action과 reducer로 전이를 모으는 편이 흐름을 설명하기 쉽습니다.
현재 state와 action을 받아 새 state를 반환하는 순수 함수로 전이 규칙을 모읍니다.
컴포넌트는 직접 계산보다 dispatch 호출로 어떤 일이 일어났는지만 알립니다.
action 이름이 사용자 의도를 충분히 설명하는지 본다.
상태 변경에 필요한 최소 데이터만 담는다.
초기 state와 초기화 함수를 분리할 필요가 있는지 본다.
dispatch를 여러 컴포넌트가 쓰면 Context 결합을 고려한다.