0
우편번호를 맨 먼저 받으세요 — 주소 폼 UX에 대한 통렬한 비판
frontend
요약
기사 전체 정리
주소 입력 폼에서 우편번호를 맨 먼저 받으면 도시, 주, 국가 3개 필드를 자동완성할 수 있다는 주장. 미국 ZIP 코드 5자리면 충분한데, 거의 모든 사이트가 주소 → 도시 → 주 드롭다운(50개 중에서 Illinois 찾기) → ZIP → 국가 드롭다운(200개 중에서 "T"로 분류된 "The United States" 찾기) 순서로 시키고 있다는 거임
API 코드가 진짜 5줄임:
const res = await fetch(`https://api.zippopotam.us/us/${zip}`) const data = await res.json() city.value = data.places[0]["place name"] state.value = data.places[0]["state"] country.value = "United States"보너스: ZIP을 먼저 알면 주소 자동완성이 1.6억 개 주소 대신 수천 개만 검색하면 됨. 더 빠르고, 더 정확하고, 타이핑 줄고, 데이터도 깨끗해짐
치욕의 전당 분류가 웃김:
- Tier 1: ZIP을 맨 아래에 놓는 곳. Amazon, Target, Walmart 전부 여기. 3개 필드 자동완성할 데이터를 갖고 있으면서 마지막에 놓음
- Tier 2: ZIP을 수집해놓고 아무것도 안 하는 곳. 소화기를 유리 상자 안에 넣어두고 "깨지 마시오"라고 써놓은 거랑 같음
- Tier 3: 검색도, type-ahead도 없는 240개국 스크롤 드롭다운. US가 "T" 아래에 있으면 보너스 점수
- Tier 4: 뒤로가기 누르면 14개 필드 전부 리셋되는 폼. "이걸 만든 개발자는 매일 밤 8시간 숙면한다. 그게 가장 소름 끼치는 부분임"
팁
> inputmode="numeric" 하나면 모바일에서 ZIP 입력할 때 숫자 키패드가 뜸. autocomplete 속성에 postal-code, address-line1, country를 제대로 쓰면 브라우저 자동완성이 45초를 아껴줌. 브라우저가 도와주려는 걸 폼이 방해하면 폼이 잘못된 거임
- 반론에 대한 대응도 있음: "우편번호가 글로벌하게 유니크하지 않다"는 건 맞음. 그러면 국가를 먼저(IP로 미리 채워서) 받고 그다음 우편번호. 핵심은 "이미 알고 있는 걸 다시 입력시키지 말라"는 거임
댓글
댓글
댓글을 불러오는 중...