피드로 돌아가기
Dev.toFrontend
원문 읽기
INP 최적화의 핵심, Handler 수정 전 Input Delay 분석을 통한 Main Thread 병목 해결
INP Is Not Just a Faster FID
AI 요약
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 추적