
웹페이지 성능을 측정하는 다양한 방법이 있습니다. 단순히 개발자의 컴퓨터에서 확인하는 방법부터 원격 서버에서 확인하는 방법까지 다양합니다. 이번 글에서는 웹페이지의 성능을 객관적으로 확인할 수 있는 여러 지표와 도구에 대해 알아보겠습니다.
Core Web Vitals는 웹 페이지의 사용자 경험을 평가하기 위한 중요한 지표들로 구성됩니다. 주요 지표는 다음과 같습니다:
이러한 지표들을 통해 사용자가 웹 페이지를 처음 방문했을 때 느끼는 경험을 평가할 수 있습니다.
Next.js는 기본적으로 웹 성능을 측정할 수 있는 NextWebVitalsMetric을 제공합니다. _app.js 페이지에 다음과 같은 코드를 추가해서 사용할 수 있습니다:
export function reportWebVitals(metric) {
console.log(metric)
// metric을 서버로 전송하거나 다른 방식으로 처리할 수 있습니다.
}
Next.js에서 제공하는 추가적인 지표:
React 애플리케이션에서 Core Web Vitals 지표를 수집하는 방법을 살펴보겠습니다. reportWebVitals 함수를 사용하여 간단하게 지표를 수집할 수 있습니다.
reportWebVitals.js 파일을 생성합니다:const reportWebVitals = (onPerfEntry) => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;
index.js 파일에서 reportWebVitals를 호출합니다:import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
// 웹 바이탈 측정 결과를 콘솔에 출력합니다.
reportWebVitals(console.log);
지표를 서버로 전송하고자 할 때는 navigator.sendBeacon이나 fetch API를 사용할 수 있습니다. 아래는 sendBeacon을 이용한 예시입니다:
const reportWebVitals = (onPerfEntry) => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
const sendToAnalytics = (metric) => {
const body = JSON.stringify(metric);
navigator.sendBeacon('/analytics', body);
};
getCLS(sendToAnalytics);
getFID(sendToAnalytics);
getFCP(sendToAnalytics);
getLCP(sendToAnalytics);
getTTFB(sendToAnalytics);
});
}
};
export default reportWebVitals;
구글 라이트하우스는 별도의 애플리케이션 코드 수정이나 배포 없이 성능 지표를 수집할 수 있는 도구입니다. 브라우저 확장 프로그램을 설치하거나 크롬 개발자 도구를 통해 사용할 수 있습니다.
웹 페이지의 성능을 측정하는 방법은 다양합니다. Core Web Vitals와 Next.js 지표를 통해 사용자가 웹 페이지를 처음 접할 때의 경험을 평가할 수 있으며, 구글 라이트하우스를 통해 성능, 접근성, 권장사항, SEO 등을 분석할 수 있습니다. React 애플리케이션에서 reportWebVitals를 사용하여 간단하게 지표를 수집하고, 필요시 서버로 전송하여 더 자세한 분석을 할 수 있습니다. 이러한 방법들을 통해 웹 페이지의 성능을 향상시키고 사용자 경험을 개선할 수 있습니다.