dispatch는 무슨 일이 일어났는지 action으로 보내고 reducer는 이전 state와 action을 기준으로 다음 state를 순수하게 만든다.
버튼 클릭
action 전달
state 계산
render
핵심useReducer는 상태 변경 규칙이 여러 갈래일 때 action과 계산 규칙을 한곳에 모은다.