객체 상태
`name` 속성으로 필드를 구분하고 하나의 `formData` 객체에 값을 모읍니다.
필드 수, 검증 규칙, 제출 흐름이 늘어날수록 상태를 어디에 모을지 단계적으로 결정합니다.
`name` 속성으로 필드를 구분하고 하나의 `formData` 객체에 값을 모읍니다.
변경, 오류 설정, 초기화처럼 의미가 다른 전이를 액션으로 분리합니다.
`values`, `errors`, `handleSubmit`을 훅으로 묶어 폼마다 반복되는 코드를 줄입니다.
동적 필드, 비동기 검증, 렌더링 최적화가 커지면 검증된 도구로 이동합니다.
핵심폼 복잡도가 추상화를 요구하는 순간 복잡한 폼 관리는 “입력값을 저장하는 법”보다 “변경, 검증, 제출을 예측 가능한 흐름으로 나누는 법”에 가깝습니다.