들어가며: 웹 폰트 최적화가 필요한 이유

웹 개발에서 폰트는 브랜딩과 사용자 경험에 중요한 역할을 한다. 하지만 최적화되지 않은 웹 폰트는 성능 저하와 사용자 경험 악화를 초래할 수 있다. 특히 웹 바이탈 측정 요소 중 하나인 Cumulative Layout Shift (CLS)와 관련된 문제는 매우 중요하다.

Cumulative Layout Shift (CLS) 이해하기

CLS란?

CLS는 Google의 Core Web Vitals 중 하나로, 페이지 로딩 중 발생하는 예기치 않은 레이아웃 변화를 측정하는 지표다.

CLS가 중요한 이유

  1. 사용자 경험
  2. SEO 영향

폰트 로딩이 CLS에 미치는 영향

일반적인 폰트 로딩 과정

  1. 초기 렌더링: 시스템 폰트 사용
  2. 웹 폰트 다운로드
  3. 폰트 교체
  4. 레이아웃 변화 발생
/* 전통적인 방식의 웹 폰트 적용 */
@font-face {
  font-family: 'CustomFont';
  src: url('/fonts/CustomFont.woff2') format('woff2');
}

body {
  font-family: 'CustomFont', system-ui, sans-serif;
}

발생하는 문제점

  1. FOUT (Flash of Unstyled Text)
  2. FOIT (Flash of Invisible Text)
  3. 레이아웃 변화

Next.js의 폰트 최적화 솔루션