Core Web Vitals 최적화: Offscreen
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
프론트엔드 개발자, 웹 성능 최적화 담당자
난이도: 중급 (React 및 웹 성능 기초 지식 필요)
핵심 요약
setTimeout
을 사용해의
src
업데이트를 지연시켜 사용자 상호작용 우선순위 유지startTransition
으로 상호작용 차단 방지 및 비동기 상태 업데이트 처리memo
를 통해 불필요한 리렌더링 방지 및 성능 향상React.useEffect
와useTransition
의 조합으로 자원 로딩 우선순위 최적화
섹션별 세부 요약
1.
setTimeout
을 사용해 iframe의src
상태 업데이트를 100ms 지연src
값이 이미 목표 URL과 동일할 경우useEffect
조기 종료startTransition
으로 상태 업데이트를 비동기 처리하여 사용자 상호작용 방해 방지
2. 성능 최적화 기술 적용
React.memo
를 통해LazyIframe
컴포넌트의 불필요한 리렌더링 방지useTransition
과setTimeout
조합으로 자원 로딩 우선순위 조정useEffect
의 정리 함수로clearTimeout
을 통해 리소스 누수 방지
3. 코드 구조 및 핵심 API
useState
로 iframesrc
상태 관리useEffect
로 타이머 및 상태 업데이트 로직 구현startTransition
을 통해 비동기 상태 변경 처리memo
로 컴포넌트 재렌더링 최소화
결론
- 사용자 상호작용 우선순위 유지 및 자원 로딩 최적화를 위해
setTimeout
+startTransition
+memo
조합 사용 - Core Web Vitals(FCP, LCP) 개선을 위한 비동기 처리 전략과 리렌더링 최소화가 핵심
React.useTransition
은 상태 업데이트 동기화를 위한 핵심 API로, 성능 최적화 시 반드시 고려해야 함