목록 보기
React 비제어 입력으로 타이핑 지연 해결하기
프론트엔드

React 비제어 입력으로 타이핑 지연 해결하기

넥스트리
넥스트리
2026년 10월 26일

두줄요약

최상위 제어 입력과 고비용 라벨 함수가 결합한 댓글 타이핑 지연을 측정해 원인을 분석했습니다. ref 기반 비제어 입력으로 전환해 리렌더와 라벨 호출을 제거하고 입력 성능을 개선했습니다.

문제 상황

  • VoC 상세 페이지 댓글 입력 중 커서 멈춤, 한글 조합 깨짐, 일괄 입력 발생
  • 재현 시점이 달라 원인 파악이 어려운 간헐적 타이핑 지연

원인 분석

  • 최상위 commentText state 갱신에 따른 상세 화면 전체 리렌더
  • 렌더마다 다수 호출된 label()의 localStorage 읽기, JSON.parse, 라벨 맵 복사 비용
  • 라벨 사전 크기와 화면 문구 수에 비례하는 키 입력 지연

해결 방법

  • 댓글 작성 영역 분리 후에도 남은 라벨 호출 비용을 줄이기 위한 ref 기반 비제어 입력 전환
  • 제출 시점에만 inputRef.current.value 조회 및 성공 후 직접 초기화
  • 최신 accent의 라벨 사전 파싱 결과 메모이즈 확인, 라이브러리 버전 업그레이드 후속 과제

주의할 점

  • 비제어 전환 후 빈 입력 비활성화, 실패 시 입력 보존, 중복 등록 방지 동작 별도 유지
  • React 18 StrictMode의 state updater 부수효과 중복 실행 주의
  • MUI TextField와 react-hook-form 연동 시 inputRef와 register ref 분리

다음 읽기

#React 주제를 이어서 읽기

선언적 폼 바인딩

다이얼로그 수정 폼에서 useEffect 기반 수동 바인딩으로 발생한 상태 꼬임 문제를 정리했습니다. React Hook Form의 values로 선언적 동기화를 적용해 잔상과 레이스 컨디션을 줄였습니다.

넥스트리
넥스트리
프론트엔드
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...