useReducer는 전역 상태나 여러 컴포넌트에서 공유되는 복잡한 상태를 관리할 때 유용함. 간단한건 useState를 사용함. 둘다 상태를 변경하는 훅이라는건 동일하다. #예시 - 사용자 입력값의 상태를 나타내는 inputState와, 유효성 검사결과를 나타내는 isValid 상태가 있다고 가정. - 이때 inputState에 따라서 isValid는 true, false로 상태가 달라지게된다. 두 상태값이 서로 연결되어있음. - 요럴때 useState를 두번 작성하기보다, useReducer를 사용해도 된다는거임! 상태를 정의할 컴포넌트 바깥에 reducer 함수를 정의한다. 컴포넌트 내부에 상태를 정의하고, input의 value가 변경될때마다 실행되는 트리거함수도 정의함. 이때, 트리거함수가 실행..