
들어가며
성능을 최적화하기 전에 측정 항목을 명확히 알고있으면 목표가 분명해질 것이다.
프론트엔드에서 성능 최적화를 위한 항목은 대표적으로 세 가지가 있다.
- 로딩 최적화
- 렌더링 최적화
- 메모리 최적화
이외에도 구글에서 성능 측정의 지침으로 정해둔 Web Vitals가 있다.
로딩 최적화
로딩 최적화와 관련된 용어는 다음과 같다.
FCP(First Contentful Paint)
- 첫 요소가 로드 될 때까지 걸리는 시간
- 보통 로딩 바가 FCP의 측정 대상 요소가 된다. 단, 로딩 컨텐츠의 경우 여전히 사용자에게 기다린다는 느낌을 줄 수 있는 요소이다. 때문에 FCP를 로딩 최적화의 지표로 사용하는 것은 적절하지 않을 수 있다.
FMP(First Meaningful Paint)
- 사용자에게 의미있는 첫 요소가 로드 될 때까지 걸리는 시간
- 사용자가 보고 싶은 컨텐츠가 나타나는 측정 지표
- 연구 결과에 의하면 약 20% 항목에서 FMP는 정확하지 않다고 밝혀졌다.
참고 자료
LCP(Largest Contentful Paint)
- 최대 컨텐츠가 로드 될 때까지 걸리는 시간
- 페이지의 메인 컨텐츠의 로드 시간을 측정하기 위해 기존에는 FMP 또는 Speed Index를 지표로 사용했지만, 해당 지표는 잘못된 경우가 빈번했다. 따라서 단순하게 가장 큰 요소가 메인 컨텐츠라고 가정하고, 메인 컨텐츠의 로드 시간을 가장 큰 요소의 로드 시간으로 측정하게 됐다.
- 만약, 가장 큰 요소가 메인 컨텐츠가 아니라면 해당 컨텐츠의 로딩 시간을 측정하기 위해 사용자 정의 메트릭을 이용할 수 있다.
- Web.dev에 의하면 LCP가 2.5초 이하인 경우에 좋은 사용자 경험을 제공할 수 있다고 한다. 그리고 4.0초 이상이면 형편없는 사용자 경험을 제공한다고 한다.