useReducer란? state를 관리하기 위해 만들어짐
→ 컴포넌트에서 직접 state를 수정하지 않는 개념
useReducer는 첫 번째 인자로 state를 관리하는 함수를 등록해줘야 한다.
reducer의 두번 째 인자로는 해당 렌더링 함수에서 사용될 state의 초기값을 의미함
이렇게 객체 구조분해 할당을 통해서 state와 dispatch 두 개의 지역변수를 사용할 수 있는데,
state는 reducer 즉, 함수로 호출하였으며 선언된 부분에서 관리함
dispatch를 호출하게 되면 reducer에 등록된 함수가 호출된다.