웹 성능이 중요하다는 건 누구나 알지만,
정작 무엇을 기준으로 "성능이 좋다"고 말할 수 있을까?
바로 그 기준이 Core Web Vitals, 즉 구글이 정의한 웹 사용자 경험 지표들이다.
이번 글에서는 단순히 지표를 나열하는 데 그치지 않고,
각 지표가 어떤 의미를 갖고 실제로 어떻게 개선할 수 있는지까지 정리해봤다.
구글이 정의한 웹사이트의 사용자 경험 품질을 평가하기 위한 핵심 지표들
세 가지 주요 항목이 있고, 모두 측정 가능한 수치 기반으로 판단된다.
"사용자가 볼 수 있는 가장 큰 요소가 화면에 뜨는 데 걸리는 시간"
📏 기준
📌 주로 영향을 주는 요소들
💡 개선 방법
<img>
대신 next/image
사용priority
설정font-display: swap
)"사용자의 인터랙션 후, 화면에 피드백이 반영될 때까지 걸리는 시간"
📏 기준
📌 주로 영향을 주는 요소들
💡 개선 방법
react-window
, react-virtual
)"화면이 예상치 않게 움직이는 정도를 수치화한 값"
📏 기준
📌 주로 발생하는 원인
💡 개선 방법
width
, height
지정font-display: swap
설정transform
, opacity
사용도구 | 설명 |
---|---|
Lighthouse | Chrome DevTools 내장 성능 측정 도구 |
WebPageTest | 상세한 성능 분석 도구 |
PageSpeed Insights | 구글 웹 성능 진단 웹사이트 |
Chrome UX Report | 실제 사용자 데이터 기반의 보고서 |
Web Vitals Chrome Extension | 실시간 지표 확인 가능한 크롬 확장 프로그램 |
priority
, preload
설정React.memo
, useCallback
)회사에서 SSR 기반 Next.js 프로젝트를 할 때,
첫 배포 후 LCP가 3.2초가 나와서 next/image
, font-display: swap
, preconnect
등을 적용했고
0.9초까지 줄일 수 있었던 경험이 있다.
반대로 CLS는 무심코 들어간 position: absolute
의 사이드 이펙트로 0.3 이상이 나와서,
이미지 크기를 미리 고정하고 min-height
로 공간 확보하면서 해결했다.
성능 최적화는 "정답"이 아니라, 상황에 맞는 해석과 조정"이 필요하다는 걸 실감했다.
💡 "성능은 기능이 아니라 경험이다. 사용자 눈에 보이는 순간부터 시작된다."