피드로 돌아가기
INP Is Not Just a Faster FID
Dev.toDev.to
Frontend

INP 최적화의 핵심, Handler 수정 전 Input Delay 분석을 통한 Main Thread 병목 해결

INP Is Not Just a Faster FID

nosyos2026년 5월 7일5intermediate

Context

단순한 Event Handler 최적화만으로는 INP(Interaction to Next Paint) 점수 개선에 한계가 존재함. Main Thread를 점유하는 Long Task로 인해 실제 핸들러 실행 전 발생하는 Input Delay가 성능 저하의 주원인으로 작용하는 구조적 문제 분석.

Technical Solution

  • INP를 Input Delay, Processing Time, Presentation Delay의 3단계 모델로 분리하여 병목 지점 정밀 식별
  • Input Delay 해결을 위해 scheduler.yield()를 도입하여 거대 데이터 처리 작업을 작은 청크 단위로 분할하고 브라우저에 제어권 양보
  • Presentation Delay 감소를 위해 useTransition을 활용하여 시각적 응답이 필요 없는 Reconciliation 작업을 비동기적으로 처리
  • PerformanceObserver를 통한 실시간 Event Timing 데이터 수집으로 Production 환경의 실제 지연 단계 정량 분석
  • Long Animation Frames API의 invokerType 분석을 통해 지연을 유발하는 스크립트의 소스 위치와 호출 경로 추적

- INP 지연 발생 시 Handler 최적화 전 `inputDelay`가 50ms를 초과하는지 우선 확인 - 대규모 루프나 동기적 계산 작업에 `scheduler.yield()` 또는 `setTimeout(0)`을 적용하여 Main Thread 블로킹 방지 - React 환경에서 렌더링 비용으로 인한 Presentation Delay 발생 시 `useTransition` 적용 검토 - LoAF API를 활용해 Production 환경에서 `event-listener` 및 `user-callback` 타입의 Long Task 추적

원문 읽기