티스토리 뷰

웹페이지 속도 측정 시 CLS
웹페이지 속도 측정 시 CLS

웹페이지의 사용자 경험을 최적화하는 것은 사이트의 성공을 위해 매우 중요합니다. 그 중에서도 CLS(Cumulative Layout Shift, 누적 레이아웃 이동)는 사용자 경험을 해치는 주요 요소 중 하나입니다. CLS는 페이지가 로드되면서 예상치 못한 레이아웃 이동이 발생할 때 사용자에게 불편을 줄 수 있는 문제를 측정합니다. 이 글에서는 CLS를 이해하고 개선하는 방법에 대해 자세히 알아보겠습니다.

CLS란 무엇인가?

CLS는 웹 페이지의 시각적인 안정성을 측정하는 중요한 웹 성능 지표입니다. 이는 페이지 로드 중 예상치 못한 요소 이동을 감지하여 점수를 매깁니다. 높은 CLS 점수는 사용자가 콘텐츠를 읽거나 상호작용하는 동안 불편함을 겪게 만듭니다. 따라서 낮은 CLS 점수를 유지하는 것이 중요합니다.

  • CLS 계산 방법: CLS는 두 가지 요소, 이동 거리와 뷰포트 크기를 기반으로 계산됩니다. 각 레이아웃 이동은 이동 요소의 화면 비율과 이동된 거리의 비율을 곱하여 계산됩니다.
  • CLS에 영향을 미치는 요소: 이미지, 광고, 동영상 등이 로드되면서 페이지 레이아웃을 변경시키는 경우가 많습니다. 또한 폰트 로드 지연도 CLS에 영향을 미칠 수 있습니다.

이미지와 동영상 크기 지정

이미지나 동영상이 로드되면서 레이아웃을 이동시키는 문제를 해결하기 위해서는 고정된 크기를 지정하는 것이 중요합니다.

  • 고정된 크기 사용: HTML에서 이미지와 비디오 요소에 widthheight 속성을 지정하여 요소가 로드되기 전에 그 자리를 확보합니다. 이는 페이지가 로드되는 동안 요소가 크기 변화를 일으키지 않도록 도와줍니다.
  • 미디어 쿼리 사용: 반응형 디자인에서는 미디어 쿼리를 사용하여 다양한 화면 크기에 맞게 이미지와 비디오의 크기를 조절할 수 있습니다.
<img src="example.jpg" width="600" height="400" alt="Example Image">

광고 및 동적 콘텐츠 관리

광고와 동적 콘텐츠는 예기치 않게 페이지 레이아웃을 이동시킬 수 있습니다. 이를 방지하기 위한 몇 가지 전략이 있습니다.

  • 고정 크기 광고 슬롯: 광고 배너는 고정된 크기의 슬롯을 할당하여 페이지가 로드될 때 광고 로딩으로 인한 레이아웃 이동을 최소화합니다.
  • 동적 콘텐츠 예약 공간: 동적 콘텐츠를 로드하기 전에 해당 영역에 미리 공간을 확보하여 나중에 콘텐츠가 추가될 때 레이아웃이 이동하지 않도록 합니다.

폰트 로드 최적화

웹 폰트는 페이지 로드 시 폰트 파일을 다운로드하는 동안 잠재적으로 텍스트가 이동할 수 있습니다. 이를 최소화하는 방법은 다음과 같습니다.

  • 폰트 디스플레이 전략 사용: font-display 속성을 사용하여 폰트 로드가 완료될 때까지 텍스트가 레이아웃을 이동시키지 않도록 합니다.
  • 사전 로드 및 캐싱: 중요한 폰트를 사전 로드하고 브라우저 캐싱을 사용하여 폰트 로드 시간을 줄입니다.
@font-face {
  font-family: 'MyFont';
  src: url('myfont.woff2') format('woff2');
  font-display: swap;
}

애니메이션과 전환 효과 최적화

애니메이션과 전환 효과는 부드럽게 구현되지 않으면 레이아웃 이동을 유발할 수 있습니다. 이를 개선하기 위한 방법은 다음과 같습니다.

  • CSS 트랜스폼 사용: 애니메이션과 전환 효과는 transformopacity 속성을 사용하여 성능을 최적화할 수 있습니다. 이 속성들은 레이아웃 계산을 트리거하지 않기 때문에 안전합니다.
  • 애니메이션 지연 최소화: 애니메이션 시작 지연 시간을 최소화하여 사용자 경험을 개선하고 레이아웃 이동을 줄입니다.
.element {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

CLS 개선을 위한 도구 활용

다양한 도구를 활용하여 CLS 문제를 식별하고 개선할 수 있습니다.

  • Google Lighthouse: 이 도구는 웹페이지의 성능을 분석하고 CLS를 포함한 다양한 메트릭을 제공합니다.
  • Web Vitals Extension: Chrome 확장 프로그램으로, 실시간으로 웹페이지의 핵심 웹 성능 지표를 모니터링할 수 있습니다.
  • DevTools Performance Panel: Chrome DevTools의 성능 패널을 사용하여 레이아웃 이동을 시각적으로 확인하고 분석할 수 있습니다.

이와 같은 도구들을 사용하여 CLS 문제를 식별하고 구체적인 개선 방법을 적용할 수 있습니다.

결론

CLS는 웹페이지 사용자 경험에 큰 영향을 미치는 중요한 요소입니다. 이미지와 동영상의 크기 지정, 광고 및 동적 콘텐츠 관리, 폰트 로드 최적화, 애니메이션과 전환 효과 최적화 등의 방법을 통해 CLS를 개선할 수 있습니다. 또한, 다양한 도구를 활용하여 CLS를 모니터링하고 최적화하는 것이 중요합니다. 이를 통해 사용자에게 더욱 안정적이고 쾌적한 웹 경험을 제공할 수 있습니다.

추가적인 정보나 자료가 필요하다면 아래 링크들을 참고하세요: