# [[Frontend Performance Checklist]] ## πŸ“Œ Brief Summary ν”„λ‘ νŠΈμ—”λ“œ μ„±λŠ₯ 체크리슀트(Frontend Performance Checklist)λŠ” μ›Ήμ‚¬μ΄νŠΈμ˜ λ‘œλ”© 속도와 νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν•˜κΈ° μœ„ν•œ 핡심 ν”„λ‘ νŠΈμ—”λ“œ λͺ¨λ²” 사둀와 μ΅œμ ν™” μ „λž΅μ„ μ •λ¦¬ν•œ 포괄적이고 ν”Œλž«νΌμ— ꡬ애받지 μ•ŠλŠ” κ°€μ΄λ“œμž…λ‹ˆλ‹€ [1]. 2025λ…„ κΈ°μ€€, 이 μ²΄ν¬λ¦¬μŠ€νŠΈλŠ” κ΅¬κΈ€μ˜ μ½”μ–΄ μ›Ή λ°”μ΄νƒˆ(Core Web Vitals)의 엄격해진 κΈ°μ€€(LCP, INP, CLS)을 λ‹¬μ„±ν•˜κ³ , 에셋 μ΅œμ ν™” 및 μ½”λ“œ 뢄할을 톡해 λ‘œλ”© μ‹œκ°„μ„ λ‹¨μΆ•ν•˜λŠ” 기술적 μ„ΈλΆ€ ν•­λͺ©λ“€λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€ [2], [3], [4], [5]. 이λ₯Ό 톡해 κ°œλ°œμžλŠ” μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚€κ³  SEO μˆœμœ„λ₯Ό λ†’μ΄λŠ” λΉ λ₯΄κ³  효율적인 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€ [1], [6], [7]. ## πŸ“– Core Content **μ½”λ“œ 및 μžλ°”μŠ€ν¬λ¦½νŠΈ μ΅œμ ν™” (Code & Script Optimization)** * **라우트 기반 μ½”λ“œ λΆ„ν•  및 μ§€μ—° λ‘œλ”©:** 라우트 λ‹¨μœ„λ‘œ μ½”λ“œ λΆ„ν• (Code splitting)을 μ„€μ •ν•˜κ³  화면에 λ‹Ήμž₯ 보이지 μ•ŠλŠ” μ»΄ν¬λ„ŒνŠΈ(Below-fold components)λŠ” μ§€μ—° λ‘œλ”©(Lazy loading)을 μ μš©ν•©λ‹ˆλ‹€ [4], [5], [6]. * **λ²ˆλ“€ 크기 μ΅œμ†Œν™”:** μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ½”λ“œλ₯Ό μ œκ±°ν•˜λŠ” 트리 쉐이킹(Tree-shaking)을 μ˜¬λ°”λ₯΄κ²Œ κ΅¬μ„±ν•˜κ³ , μ••μΆ•λœ(gzipped) 메인 μžλ°”μŠ€ν¬λ¦½νŠΈ λ²ˆλ“€μ˜ 크기λ₯Ό 200KB μ΄ν•˜λ‘œ μœ μ§€ν•©λ‹ˆλ‹€ [4], [5]. * **λ Œλ”λ§ 차단 λ¦¬μ†ŒμŠ€ 제거:** μ€‘μš”ν•˜μ§€ μ•Šμ€ 타사(Third-party) μŠ€ν¬λ¦½νŠΈμ™€ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ§€μ—°(defer)μ‹œν‚€κ±°λ‚˜ 비동기(async)둜 λ‘œλ“œν•˜μ—¬ 메인 μŠ€λ ˆλ“œ 점유λ₯Ό μ΅œμ†Œν™”ν•©λ‹ˆλ‹€ [8], [9], [4], [5]. * **INP(Interaction to Next Paint) κ°œμ„ :** 50ms μ΄μƒμ˜ κΈ΄ μž‘μ—…(Long tasks)을 잘게 μͺΌκ°œκ±°λ‚˜, 무거운 연산을 μ›Ή μ›Œμ»€(Web Workers)둜 μ˜€ν”„λ‘œλ“œν•˜μ—¬ λΈŒλΌμš°μ €μ˜ μƒν˜Έμž‘μš© 지연을 μ€„μž…λ‹ˆλ‹€ [10], [11], [12], [13], [14], [15]. **에셋 및 λ―Έλ””μ–΄ μ΅œμ ν™” (Asset & Media Optimization)** * **μ°¨μ„ΈλŒ€ 이미지 포맷 μ‚¬μš©:** 이미지λ₯Ό κΈ°μ‘΄ 포맷보닀 μš©λŸ‰μ΄ μž‘μ€ WebPλ‚˜ AVIF둜 μ••μΆ• 및 λ³€ν™˜ν•˜μ—¬ μ œκ³΅ν•©λ‹ˆλ‹€ [16], [17], [18], [4], [5]. * **μ‘λ‹΅ν˜• 이미지 및 μš°μ„ μˆœμœ„ μ§€μ •:** 기기에 λ§žλŠ” λ°˜μ‘ν˜• 이미지(`srcset`)λ₯Ό μ‚¬μš©ν•˜κ³ , νŽ˜μ΄μ§€μ˜ κ°€μž₯ 큰 핡심 μ½˜ν…μΈ (LCP 이미지)μ—λŠ” `fetchpriority="high"` 속성을 λΆ€μ—¬ν•˜μ—¬ λ Œλ”λ§ μš°μ„ μˆœμœ„λ₯Ό λ†’μž…λ‹ˆλ‹€ [16], [4], [5]. * **CLS(Cumulative Layout Shift) λ°©μ§€:** μ‹œκ°μ  μ•ˆμ •μ„±μ„ μœ„ν•΄ λͺ¨λ“  이미지와 λΉ„λ””μ˜€, 그리고 κ΄‘κ³  슬둯 등에 λͺ…μ‹œμ μΈ λ„ˆλΉ„μ™€ 높이(`width`/`height`) λ˜λŠ” μ΅œμ†Œ 높이(`min-height`) 속성을 사전에 μ§€μ •ν•΄ λ‘‘λ‹ˆλ‹€ [19], [20], [21], [4], [5]. **λ Œλ”λ§ 및 λ„€νŠΈμ›Œν¬ μ „λž΅ (Rendering & Network Strategy)** * **크리티컬 CSS 인라인 처리:** 슀크둀 없이 λ³Ό 수 μžˆλŠ” 상단 μ˜μ—­(Above-the-fold) λ Œλ”λ§μ— ν•„μš”ν•œ 핡심 CSS(Critical CSS)λ₯Ό 인라인으둜 μ‚½μž…ν•˜κ³ , λ‚˜λ¨Έμ§€ CSS λ‘œλ“œλ₯Ό μ§€μ—°μ‹œν‚΅λ‹ˆλ‹€ [8], [22], [23], [4], [5], [6]. * **폰트 및 μ™ΈλΆ€ λ¦¬μ†ŒμŠ€ μ΅œμ ν™”:** μ›Ή 폰트λ₯Ό 사전에 λ‘œλ“œ(Preload)ν•˜κ³  `font-display: optional` λ˜λŠ” `swap` 속성을 μ‚¬μš©ν•˜μ—¬ 폰트 λ‘œλ“œ μ§€μ—°μœΌλ‘œ μΈν•œ ν…μŠ€νŠΈ κΉœλΉ‘μž„ ν˜„μƒμ„ λ°©μ§€ν•©λ‹ˆλ‹€ [19], [24], [25], [4], [5]. μ™ΈλΆ€ 도메인 λ¦¬μ†ŒμŠ€ λ‘œλ”© 속도λ₯Ό 높이기 μœ„ν•΄ λ¦¬μ†ŒμŠ€ 힌트(`preconnect`, `dns-prefetch`, `modulepreload` λ“±)λ₯Ό μ μš©ν•©λ‹ˆλ‹€ [9], [26]. * **캐싱 및 전솑 ν”„λ‘œν† μ½œ:** 정적 에셋 μ„œλΉ™μ„ μœ„ν•΄ CDN을 ν™œμš©ν•˜κ³ , HTTP/2 λ˜λŠ” HTTP/3 ν”„λ‘œν† μ½œκ³Ό Brotli λ“±μ˜ μ••μΆ• κΈ°μˆ μ„ κ²°ν•©ν•˜μ—¬ TTFB(Time to First Byte)λ₯Ό μ€„μž…λ‹ˆλ‹€ [17], [22], [18], [23], [6]. **μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§ 및 μœ μ§€ 보수 (Monitoring & Budgets)** * **μ„±λŠ₯ μ˜ˆμ‚°(Performance Budgets) μ„€μ •:** νŽ˜μ΄μ§€μ˜ 총 μžλ°”μŠ€ν¬λ¦½νŠΈ 및 에셋 크기 μ œν•œμ„ μ„€μ •ν•˜κ³ (예: Webpack Bundle Analyzer μ‚¬μš©), Lighthouse CI 등을 ν™œμš©ν•΄ 배포 νŒŒμ΄ν”„λΌμΈμ—μ„œ LCP < 2.5초, CLS < 0.1, INP < 200ms 기쀀을 μ€€μˆ˜ν•˜λŠ”μ§€ κ°•μ œν•©λ‹ˆλ‹€ [27], [28], [29], [30]. * **지속적 λͺ¨λ‹ˆν„°λ§:** ꡬ글 Search Console 및 RUM(Real User Monitoring) 도ꡬλ₯Ό 연동해 μ‹€μ œ νŠΈλž˜ν”½ ν™˜κ²½μ˜ μ„±λŠ₯ 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³ , μž„κ³„κ°’μ„ μ΄ˆκ³Όν•  μ‹œ κ²½κ³ κ°€ λ°œμƒν•˜λ„λ‘ λͺ¨λ‹ˆν„°λ§ ν™˜κ²½μ„ κ΅¬μ„±ν•©λ‹ˆλ‹€ [26], [31], [32], [33], [34]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Core Web Vitals]], [[Code Splitting]], [[Lazy Loading]], [[Server-Side Rendering (SSR)]] - **Projects/Contexts:** [[Web Performance Optimization]], [[React SEO Optimization]], [[Modern Website Architecture]] - **Contradictions/Notes:** ν”„λ‘ νŠΈμ—”λ“œ μ„±λŠ₯을 λͺ¨λ‹ˆν„°λ§ν•  λ•Œ λ‹¨μˆœνžˆ ν†΅μ œλœ ν™˜κ²½(Lab testing)의 Lighthouse μ μˆ˜λ§Œμ„ 보고 μ΅œμ ν™”κ°€ μ™„λ£Œλ˜μ—ˆλ‹€κ³  νŒλ‹¨ν•˜λŠ” 것은 ν”ν•œ 였λ₯˜(Pitfall)μž…λ‹ˆλ‹€. μ‚¬μš©μž κ²½ν—˜μ„ μ˜¨μ „νžˆ κ°œμ„ ν•˜κΈ° μœ„ν•΄μ„œλŠ” 크둬 μ‚¬μš©μž κ²½ν—˜ λ³΄κ³ μ„œ(CrUX) λ°μ΄ν„°λ‚˜ RUM 도ꡬ 기반의 μ‹€μ œ ν•„λ“œ 데이터(Field data) 검증이 λ°˜λ“œμ‹œ μˆ˜λ°˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ [35], [36]. --- *Last updated: 2026-04-26*