useReducer 훅은 컴포넌트 내부에 새로운 State를 생성하는 조금 특별한 리액트 훅이다.상태 변화 함수 대신 “상태 변화 요청 함수” 를 사용한다.useState와 달리 “상태 관리 코드”(이벤트 핸들러로 쓰거나 했던 setState 함수를 사용하는 함수들)를 컴포넌트 외부로 분리할 수 있다.모든 useState는 useReducer 로 대체 가능하다.컴포넌트는 렌더링하기 위한 함수인데, 컴포넌트가 내부적으로 "도메인 로직"을 갖게 되면 책임 분리가 잘 안되게 된다.즉, State를 관리하는 코드가 컴포넌트 안에 길어지는 상황을 막기 위해 사용한다.즉, useReducer는 다음과 같은 경우에 사용한다.컴포넌트 내부에 보관해야 하는 상태가 도메인 로직과 밀접한 상태일 때컴포넌트 내부에 보관해야 ..