본문 바로가기

폰트 한 번만 손봐도 체감 속도 달라집니다: preload·서브셋 실험

IT세상0001 2025. 8. 21.

요약

웹폰트에 서브셋과 preload, font-display 조합을 달리해 첫 화면 지연과 깜빡임을 테스트했습니다. 본문 폰트 1개만 서브셋+preload+swap 조합이 LCP 안정화와 깜빡임 최소화에 가장 효율적이었습니다. 강조 폰트까지 모두 preload하면 모바일 저속 환경에서 오히려 LCP가 악화될 수 있습니다.

문제 정의

웹폰트는 브랜드를 살리지만 초기 로딩과 텍스트 깜빡임(FOUT/FOIT)을 유발합니다. 이미지 못지않게 성능 영향이 큽니다.

테스트 환경

기기/브라우저: 1번과 동일
폰트: 본문 Sans 1종, 강조 Sans/Bold 1종, 아이콘 1종
용량: 원본 300~500KB, 서브셋 80~150KB
네트워크: 4G, 3G
측정: 첫 표시, LCP, 깜빡임 관찰, INP

항목
본문 폰트 Sans Regular(한글+라틴)
강조 폰트 Sans Bold
아이콘 아이콘 폰트 또는 SVG sprite
파일 용량 원본 300~500KB, 서브셋 80~150KB

시나리오

A: 서브셋/Preload 없음, display:auto
B: 본문만 서브셋+preload, display:swap
C: 본문+강조 모두 서브셋+preload, display:optional
D: 아이콘을 SVG sprite로 대체

결과 요약

  • B: 가장 안정적. LCP 개선, 깜빡임 최소, 구현 난도 중간
  • C: 초기 네트워크 혼잡으로 모바일 저속 환경에서 LCP 악화 가능
  • D: 용량 절감·가시성 개선. 빌드 파이프라인 정리 필요 (전/후 스크린샷 자리)

권장 설정

  • 서브셋: 본문에 필요한 문자셋만(한글+기본 라틴)
  • Preload: 첫 화면에 실제 쓰는 본문 Regular 1개만
  • font-display: swap(콘텐츠 우선 사이트) 또는 optional
  • 폴백: 시스템 폰트 스택 정리
  • 아이콘: 가능하면 SVG sprite, 불가 시 아이콘 폰트도 서브셋

체크리스트

  • 네비/헤더 텍스트 커버리지 포함 확인
  • Preload는 1개만, 나머지는 지연 로딩
  • 아이콘은 SVG sprite 검토
  • 폰트 캐시 장기화(max-age, immutable)
  • 저사양 기기에서 FOUT/FOIT 재현 테스트

결론

가성비 최강 조합은 “본문 1종 서브셋 + preload + swap”. 강조/헤딩은 스크롤 이후 로딩하거나 사용 빈도를 낮추세요.

우선순위 폰트
1 시스템 Sans(예: Apple SD, Noto Sans KR 등)
2 BodyKR(서브셋)
3 Generic sans-serif

독자 액션

현재 폰트 파일 개수·용량을 파악하고, 본문 1종 서브셋+preload만 먼저 적용해 4G에서 첫 화면 깜빡임 변화를 확인하세요.

댓글