- 모든 웹 개발자가 관심을 가져야 할 핵심 웹 지표
12.1 웹 사이트와 성능
웹사이트는 방문한 목적을 손쉽게 달성할 수 있어야하고, 목적을 달성하는 데 걸리는 시간이 짧아야 하며, 개인정보가 노출되는 등의 사고 없이 보안이 철저해야 한다.
12.2 핵심 웹 지표란?
구글이 핵심 웹 지표로 꼽는 지표
-
최대 콘텐츠물 페인트(LCP: Largest Conlentful Paint)
-
최초 입력 지연(FID: First Input Delay)
-
누적 레이아웃 이동 (CLS: Cumulative Layout Shift)
-
최초 바이트 까지의 시간 (TTFB:TimeToFirslByte)
-
최초 콘텐츠풀 시간 (FCP: Firsl Conlentful Paint)
12.3 최대 콘텐츠풀 페인트
페이지가 처음으로 로드를 시작한 시점부터 뷰포트 내부에서 가장 큰 이미지 또는 텍스트를 렌더링하는 데 걸리는 시간
LCP는 뷰포트 내부에서 가장 큰 영역을 차지하는 요소가 렌더링되는 데 얼마나 걸리는지를 측정하는 지표로, 뷰포트 영역 밖에 넘치는 요소가 있다면 해당 영역의 크기는 고려되지 않는다.
개선 방안
이미지를 어떻게 불러올 것인가?
<img>
: 이미지는 브라우저의 기능인 프리로드 스캐너에 의해서 먼저 발견되어 빠르게 요청이 일어난다. HTML 파싱이 미처 완료되지 않더라도 프리로드 스캐너가 병렬적으로 리소스를 다운로드한다.<svg>
: svg 내부의 img는 스캐너에 의해 발견되지 않아 LCP에 악영향을 미친다.<video>
의 poster: poster는 사용자가 video 요소를 재생하거나 탐색하기 전까지 요출되는 요소다. 이 역시 프리로드 스캐너에 의해 조기에 발견된다. video가 LCP에 영향을 받을 것 같다면 poster를 반드시 넣어줘야 한다.- background-img: css에 있는 리소스는 항상 느리다. 브라우저가 DOM을 그릴 준비가 될 때까지 리소스 요청을 미루기 때문이다.
12.4 최초 입력 지연(FID)
웹사이트의 반응 속도, 반응성을 측정하는 지표 사용자가 얼마나 빠르게 웹페이지와의 상호작용에 대한 응답을 받을 수 있는 지 측정하는 지표다.
개선 방안
- 실행에 오래 걸리는 긴 작업을 분리해 처리
- 자바스크립트 코드 최소화
- 타사 자바스크립트 코드 실행의 지연
<script>
의 async와 defer를 이용해 지연 불러오기를 실행- 광고와 같이 실제 사용자의 뷰포트 위치에 따라 불러와야 하는 컴포넌트라면 Intersection Observer 를 이용해 뷰포트에 들어오는 시점에 렌더링
12.5 누적 레이아웃 이동(CLS)
페이지의 생명주기 동안 발생하는 모든 예기치 않은 이동에 대한 지표를 계산하는 것이 누적 레이아웃 이동 지표