한 줄 요약
blur 이벤트와 touched 상태로 사용자가 입력한 필드에만 에러를 표시하고, 제출 전에 전체를 검증합니다.
이럴 때 필요해요
거의 모든 웹앱에서 로그인, 회원가입, 설정 변경 등의 폼이 필요합니다. 좋은 폼 검증은 사용자 오류를 줄이고 신뢰도를 높입니다.
어떻게 동작하나
사용자가 필드에 포커스 입력 blur 이벤트 발생
blur에서 touched[field] = true로 마크
touched[field]가 true일 때만 에러 메시지 표시
form 제출 시 전체 필드 검증
에러가 없으면 API 호출, 있으면 에러 표시
놓치기 쉬운 것
모든 필드에 즉시 에러를 표시하면 UX가 좋지 않습니다
비밀번호 강도는 시각적 피드백(진행바)으로 보여주는 게 효과적입니다
제출 중일 때는 중복 제출을 방지해야 합니다 (isSubmitting 플래그)
성공 후 폼을 초기화할 때는 약간의 딜레이를 두면 UX가 좋습니다
이런 곳에 써요
로그인/회원가입 폼
결제 정보 입력
프로필 수정
검색/필터링 폼
문의/피드백 양식