From 57a334545ad4f47691276f63cee6e0bc1cdee166 Mon Sep 17 00:00:00 2001 From: AWESOMEDEV Date: Fri, 17 Jul 2026 12:01:36 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=A3=BC=EC=86=8C=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=EC=9D=84=20=EC=B9=B4=EC=B9=B4=EC=98=A4=20=EC=9A=B0=ED=8E=B8?= =?UTF-8?q?=EB=B2=88=ED=98=B8=20=EA=B2=80=EC=83=89=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=E2=80=94=20=EC=A3=BC=EC=86=8C=20=EC=98=A4=ED=83=80=C2=B7?= =?UTF-8?q?=EB=88=84=EB=9D=BD=20=EC=9B=90=EC=B2=9C=20=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - lib/postcode.js: 다음(카카오) 우편번호 서비스 지연 로딩 + embed 방식 (팝업은 모바일에서 차단될 수 있어 폼 안에 펼치는 embed 채택, 학습 주석 포함) - 가입·내 정보 페이지: 기본주소는 [주소찾기] 검색으로만 채워지는 읽기 전용, 상세주소(동·호수)만 직접 입력 → 저장 시 '[우편번호] 도로명주소, 상세' 로 합침 - 검색 결과: 우편번호 + 표준 도로명주소 + 건물명 자동 입력 - 배경: 학생 2명의 가입 주소가 시/군/구 누락 등 불완전했음 — '사용자의 실수는 실수할 수 없는 UI로 막는다' 운영 검증: 버튼 클릭 → 카카오 위젯(postcode.map.kakao.com) embed 로드 확인. Co-Authored-By: Claude Opus 4.8 --- frontend/src/lib/postcode.js | 61 +++++++++++++++++++++++ frontend/src/pages/MyProfilePage.jsx | 74 ++++++++++++++++++++++++---- frontend/src/pages/SignupPage.jsx | 66 +++++++++++++++++++++++-- 3 files changed, 187 insertions(+), 14 deletions(-) create mode 100644 frontend/src/lib/postcode.js diff --git a/frontend/src/lib/postcode.js b/frontend/src/lib/postcode.js new file mode 100644 index 0000000..be9aba0 --- /dev/null +++ b/frontend/src/lib/postcode.js @@ -0,0 +1,61 @@ +/** + * 이 파일이 하는 일: + * 다음(카카오) 우편번호 서비스를 불러와 주소 검색 UI를 띄운다. + * 회원가입·내 정보의 [주소찾기] 버튼이 이걸 쓴다. + * + * 학습 포인트 ① — 왜 직접 입력 대신 주소 검색인가? + * 주소는 "형식이 정해진 데이터"다. 손으로 치게 하면 시/군/구 누락, 오타, 옛 지번주소가 + * 뒤섞여 들어온다(실제로 그랬다). 검색으로 받으면 항상 표준 도로명주소 + 우편번호가 들어온다. + * — 사용자의 실수는 사용자를 탓할 게 아니라 실수할 수 없는 UI로 막는 것이다. + * + * 학습 포인트 ② — 외부 스크립트 지연 로딩(lazy loading). + * 이 스크립트는 주소찾기를 누르는 순간에만 필요하다. 앱 시작 때 미리 받으면 + * 모든 페이지가 그만큼 느려진다. 그래서 버튼을 눌렀을 때