웹 성능의 결정 요소
Reflow
를 발생시키는 속성
💡 position / width / height / margin / padding / display / top / left / right / bottom / box-sizing / background-color / border-color / text-align / border / border-width / font-family / float / font-size / font-weight / line-height / vertical-align / white-space / word-wrap / text-overflow / text-shadow
Repaint
를 발생시키는 속성
💡 color / border-style / visibility / background / background-image / background-position / background-repeat / background-size / text-decoration / outline / outline-style / outline-color / outline-width / border-radius / box-shadow
웹 성능 측정 항목
Web Vitals
웹에서 훌륭한 사용자 경험을 제공하는 데 필수적인 품질 신호에 대한 통합 지침을 제공하기 위한 일종의 Google의 이니셔티브이다.
Core Web Vitals (핵심적인 웹 성능 평가 지표)
Web Vitals의 하위 개념으로, Web Vitals의 여러 지표 중 LCP
, FID
, CLS
세가지 지표이며, 이 세가지 지표가 사용자 경험에 중요한 부분을 차지하는 가장 기본적인 핵심 요소라며 구글은 소개한다.
LCP (Largest Contentful Paint)
로딩 성능을 측정하는 지표로서, 사용자가 URL을 요청한 시점부터 페이지 내에서 현재 사용자가 보고 있는 View Port의 콘텐츠 중 가장 큰 영역을 차지하는 콘텐츠 요소가 화면에 렌더링 될 때까지 걸리는 시간을 측정하여 성능을 평가한다.
좋은 LCP 수치
이러한 LCP 성능 지표는 View Port의 콘텐츠 중 가장 큰 영역을 차지하는 콘텐츠 요소가 2.5초 이하로 화면에 렌더링 되어야 LCP 수치가 좋은 것이라고 평가할 수 있다.
FID (First Input Delay)
상호 작용을 측정하는 지표로서, 웹 페이지가 렌더링 된 이후 사용자와의 상호 작용에 대한 응답을 처리하기까지의 지연된 시간을 측정하여 성능을 평가한다.
좋은 FID 수치
FID 성능 지표가 웹 페이지가 렌더링 된 이후, 사용자와의 상호 작용에 대한 최초 입력 지연 시간이 100 ms 이하여야 FID 수치가 좋은 것이라고 평가할 수 있다.
CLS (Cumulative Layout Shift)
시각적 안정성을 측정하는 지표로서, 웹 페이지의 콘텐츠 요소가 화면에서 얼마나 많이 움직이는지에 대한 수치화를 통해 성능을 평가한다.
낮은 CLS 수치는 사용자가 과도한 콘텐츠 이동을 경험하고 있지 않는다는 신호이다.
기본적으로 CLS의 수치 계산은 아래와 같다.
CLS = impact fraction * distance fraction
여기서 impact fraction은 원래 위치에서 움직인 위치까지 화면에서 차지하는 정도로, View Port에서 콘텐츠 요소가 변경된 영향도를 측정한 값이다. distance fraction은 원래 위치에서 움직인 위치까지의 거리로 View Port에서 콘텐츠 요소가 이동한 영역의 거리를 측정한 값이다.
좋은 CLS 수치
이렇게 계산한 CLS 성능 지표가 0.1 이하여야 CLS 수치가 좋은 것이라고 평가할 수 있다.
성능 예산
성능 예산
이란 웹 성능에 영향을 미치는 다양한 요소를 제어하는 한계값을 의미한다. 웹 성능을 계량이 가능하도록 수치화하여 기업의 목표로 삼을 때 가장 많이 사용하는 방법 중 하나이다.
구글 Lighthouse
참고문헌
https://web.dev/vitals/
https://blog.mathpresso.com/seo-%EC%B5%9C%EC%A0%81%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-core-web-vitals-dcdc56ca816a