프론트엔드 성능 최적화 Cheat Sheet

Seoyong Lee·2024년 4월 8일
0

개발 공부

목록 보기
19/21
post-thumbnail

참고 - 프론트엔드 성능 최적화 가이드(유동균)

웹 팀에서 성능 최적화를 위한 방향을 빠르게 찾기 위해 간단하게 Cheat Sheet을 만들어 보았습니다.

최적화가 필요한 부분이 언제인가?

렌더링 이전 → O1. 로딩 성능 최적화
렌더링 과정 → O2. 렌더링 성능 최적화

O1. 로딩 성능 최적화

이미지

  • 이미지 사이즈 최적화
    • Lighthouse - Properly size images 확인
    • 이미지 사이즈 조절 (최소 2배)
    • 이미지 형식 변경 (PNG → JPG)
    • 이미지 스프라이트 적용
  • 이미지 지연 로딩
    • react-lazyload
    • Intersection Observer API

폰트

  • 폰트 최적화
    • 적용 시점 제어 (CSS font-display)
    • 폰트 포맷 변경 (가능하다면 TTF → WOFF)

캐시 및 CDN

  • 캐시 최적화
    • header ‘Cache-Control’ (서버)
    • max-age로 유효 시간 조절 가능
  • CDN
    • 이미지 등 사용자와 가까운 위치의 Content Delivery Network에 저장
    • AWS CloudFront 등 사용

기타

  • 코드 분할
    • webpack-bundle-analyzer 확인
    • lazy import (파일)
    • preloading
  • 컴포넌트 분할
    • lazy import (컴포넌트)
    • 성능 저하시 preload 구현 (ex 마우스오버 시 로드, 클릭 시 이동)
  • 텍스트 압축
    • Lighthouse Opportunities - Enable text compression 확인
  • 불필요 파일 제거
    • Lighthouse Opportunities - Reduce unused CSS 확인

O2. 렌더링 성능 최적화

  • 병목 코드 최적화
    • Lighthouse Diagnostics - Reduce JavaScript execution time 확인
    • 중복 제거, 적절한 메소드 활용, 당장 필요한 데이터만 처리
    • 복잡한 연산 memo 사용
  • 애니메이션 최적화
    • 리플로우, 리페인트 방지
    • transform / opacity 사용 → GPU 가속
  • 레이아웃 이동 최적화
    • CLS(Cumulative Layout Shift) 확인
    • 미리 요소 사이즈 지정
  • 리렌더링 방지
    • hook 리팩토링

0개의 댓글