한 줄 요약
긴 폼을 단계로 쪼개고, 각 단계가 유효할 때만 다음으로 넘어가게 게이팅하는 회원가입 위저드입니다.
이럴 때 필요해요
입력 항목이 많은 폼을 한 화면에 다 펼치면 사용자는 압도당하고 이탈합니다. 회원가입온보딩결제처럼 항목이 많을 때, 단계로 나누면 한 번에 집중할 양이 줄고 "지금 어디쯤인지"가 명확해집니다. 핵심은 잘못된 입력을 다음 단계로 끌고 가지 않는 것 단계 경계에서 막아야 마지막에 몰아서 터지지 않습니다.
어떻게 동작하나
단일 form 상태와 step 인덱스로 전체를 관리하고,
validateStep(step, form)한 함수가 단계별 에러 맵을 반환합니다."다음"을 누르면 현재 단계만 검증 에러가 없으면 진행, 있으면 각 필드에 표시합니다.
진행 인디케이터는 완료/현재/예정 상태로 그려지고, 통과한 단계는 눌러서 되돌아갈 수 있습니다(앞 단계로만).
놓치기 쉬운 것
검증 로직을 컴포넌트 곳곳에 흩지 말고
validateStep한 곳에 모아야 단계가 늘어도 관리됩니다.앞으로 점프는 막아야 합니다 검증을 건너뛴 단계로 가버리면 게이팅이 무의미해집니다.
단계 전환 시 제목으로 포커스를 옮기고
aria-live로 알려야 스크린리더 사용자가 맥락을 잃지 않습니다.
이런 곳에 써요
회원가입온보딩 플로우
결제/체크아웃
설문신청서