pile·
프론트엔드·oliveyoung올리브영 테크블로그·

새 배송지 추가 form 개발하기

문제새 배송지 등록 폼은 여러 입력 필드와 검증, 제출 흐름을 다뤄야 했고, 단순 `useState`로 묶으면 입력마다 불필요한 리렌더가 발생해 상태 관리 방식 선택이 핵심이었다.
접근`useState`·Context API·`useRef`·React Hook Form 네 가지 구현을 직접 비교했다. `useState`와 Context는 입력마다 리렌더가 일어났고, `useRef`는 리렌더를 막는 대신 React 흐름에서 벗어나 검증 처리가 어려웠다. 최종적으로 React Hook Form을 채택해 `register`로 입력 필드와 검증 규칙을 한 번에 등록하고, FormProvider로 중첩 컴포넌트까지 상태를 공유했다. Formik도 후보였지만 상태 관리 방식 차이로 리렌더가 더 잦아 제외했다.
결과입력 시 리렌더가 사라지고 검증·제출 로직이 단순해졌으며, 복잡한 중첩 폼도 FormProvider로 깔끔하게 묶어 유지보수성과 성능 모두 잡았다.
oliveyoung
올리브영 테크블로그 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2