# [[Web Performance Optimization Guidelines]] ## πŸ“Œ Brief Summary μ›Ή μ„±λŠ₯ μ΅œμ ν™” κ°€μ΄λ“œλΌμΈμ€ μ‚¬μš©μžκ°€ λΉ λ₯΄κ³  μ•ˆμ •μ μ΄λ©° μ›ν™œν•˜κ²Œ μƒν˜Έμž‘μš©ν•  수 μžˆλŠ” μ›Ήμ‚¬μ΄νŠΈλ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ ν•„μˆ˜ 기술 및 섀계 μ§€μΉ¨μž…λ‹ˆλ‹€. 2025λ…„ κΈ°μ€€, 이 κ°€μ΄λ“œλΌμΈμ€ λ‹¨μˆœνžˆ νŽ˜μ΄μ§€ λ‘œλ”© 속도λ₯Ό ν–₯μƒν•˜λŠ” 것을 λ„˜μ–΄ μ½”μ–΄ μ›Ή λ°”μ΄νƒˆ(Core Web Vitals)의 μ΅œμ‹  μ§€ν‘œμΈ LCP, INP, CLSλ₯Ό λ‹¬μ„±ν•˜λŠ” 데 쀑점을 λ‘‘λ‹ˆλ‹€ [1-3]. μ΄λŸ¬ν•œ μ΅œμ ν™”λŠ” μ΄νƒˆλ₯  κ°μ†Œμ™€ μ „ν™˜μœ¨ 증가 같은 λΉ„μ¦ˆλ‹ˆμŠ€ μ„±κ³Όλ₯Ό μ°½μΆœν•˜λ©°, 검색 μ—”μ§„ μ΅œμ ν™”(SEO) μˆœμœ„λ₯Ό λ†’μ΄λŠ” 데 직접적인 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€ [4-6]. ## πŸ“– Core Content * **μ½”μ–΄ μ›Ή λ°”μ΄νƒˆ(Core Web Vitals) μ΅œμ ν™” λͺ©ν‘œ 및 방법:** * **LCP (Largest Contentful Paint):** νŽ˜μ΄μ§€μ˜ μ£Όμš” μ½˜ν…μΈ (큰 μ΄λ―Έμ§€λ‚˜ ν…μŠ€νŠΈ 블둝)κ°€ λ Œλ”λ§ λ˜λŠ” μ‹œκ°„μœΌλ‘œ, 2.0초~2.5초 미만으둜 단좕해야 ν•©λ‹ˆλ‹€ [2, 7]. 이λ₯Ό μœ„ν•΄ WebPλ‚˜ AVIF 같은 μ°¨μ„ΈλŒ€ 이미지 포맷을 μ‚¬μš©ν•˜κ³ , ν™”λ©΄ 밖에 μžˆλŠ” μ΄λ―Έμ§€μ—λŠ” μ§€μ—° λ‘œλ”©(Lazy Loading)을 μ μš©ν•˜λ©°, CDN(μ½˜ν…μΈ  전솑 λ„€νŠΈμ›Œν¬)κ³Ό μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR)을 ν™œμš©ν•˜μ—¬ μ„œλ²„ 응닡 μ‹œκ°„μ„ μ΅œμ ν™”ν•©λ‹ˆλ‹€ [8-11]. * **INP (Interaction to Next Paint):** 2025년에 FIDλ₯Ό λŒ€μ²΄ν•œ 핡심 μ§€ν‘œλ‘œ, ν΄λ¦­μ΄λ‚˜ ν‚€λ³΄λ“œ μž…λ ₯ λ“± μ‚¬μš©μžμ˜ λͺ¨λ“  μƒν˜Έμž‘μš©μ— λŒ€ν•œ λΈŒλΌμš°μ €μ˜ 응닡 지연을 μΈ‘μ •ν•˜λ©° 150ms~200ms μ΄ν•˜λ‘œ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€ [12-14]. 무거운 μžλ°”μŠ€ν¬λ¦½νŠΈ μ—°μ‚°μœΌλ‘œ 인해 메인 μŠ€λ ˆλ“œκ°€ μ°¨λ‹¨λ˜λŠ” 것을 막기 μœ„ν•΄ κΈ΄ μž‘μ—…μ„ 50ms μ΄ν•˜μ˜ 청크둜 λΆ„ν• ν•˜κ±°λ‚˜ Web Workerλ₯Ό ν™œμš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [12, 15]. * **CLS (Cumulative Layout Shift):** λ‘œλ”© 쀑 예기치 μ•Šμ€ λ ˆμ΄μ•„μ›ƒ 이동을 λ°©μ§€ν•˜μ—¬ μ‹œκ°μ  μ•ˆμ •μ„±μ„ ν™•λ³΄ν•˜λŠ” μ§€ν‘œλ‘œ, 0.08~0.1 미만으둜 관리해야 ν•©λ‹ˆλ‹€ [16, 17]. 이미지와 λΉ„λ””μ˜€μ— λͺ…μ‹œμ μΈ 크기(Width/Height)λ₯Ό ν• λ‹Ήν•˜κ³ , λ™μ μœΌλ‘œ μ‚½μž…λ˜λŠ” κ΄‘κ³ λ‚˜ μ½˜ν…μΈ μ˜ 곡간을 미리 ν™•λ³΄ν•˜λ©°, 폰트 λ‘œλ”© μ‹œ ν…μŠ€νŠΈ λ²ˆμ©μž„ ν˜„μƒμ„ 막기 μœ„ν•΄ `font-display: swap`을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [16, 18, 19]. * **ν”„λ‘ νŠΈμ—”λ“œ 및 React μ„±λŠ₯ μ΅œμ ν™” μ „λž΅:** * **μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…(Code Splitting)κ³Ό μ§€μ—° λ‘œλ”©:** μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 컀질수둝 κ±°λŒ€ν•œ 단일 μžλ°”μŠ€ν¬λ¦½νŠΈ λ²ˆλ“€μ΄ 초기 λ‘œλ”©μ„ μ‹¬κ°ν•˜κ²Œ μ§€μ—°μ‹œν‚΅λ‹ˆλ‹€ [5, 20]. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ Reactμ—μ„œλŠ” `React.lazy`와 `Suspense`λ₯Ό μ‚¬μš©ν•΄ μ»΄ν¬λ„ŒνŠΈ μˆ˜μ€€μ˜ μ½”λ“œλ₯Ό λΆ„ν• ν•˜κ±°λ‚˜, React Routerλ₯Ό ν™œμš©ν•΄ 라우트 기반 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ„ κ΅¬ν˜„ν•˜μ—¬ ν•„μš”ν•œ μˆœκ°„μ—λ§Œ μ½”λ“œλ₯Ό λ‘œλ“œν•΄μ•Ό ν•©λ‹ˆλ‹€ [21-23]. * **검색 μ—”μ§„ μ΅œμ ν™”(SEO)λ₯Ό κ³ λ €ν•œ λ Œλ”λ§ 방식:** 순수 ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§(CSR)은 빈 HTML을 μ œκ³΅ν•˜λ―€λ‘œ 크둀링 μ§€μ—° 및 ν•˜μ΄λ“œλ ˆμ΄μ…˜(Hydration) 병λͺ©μ„ μœ λ°œν•©λ‹ˆλ‹€ [24, 25]. λ”°λΌμ„œ νŠΈλž˜ν”½μ΄ 많고 SEOκ°€ μ€‘μš”ν•œ νŽ˜μ΄μ§€λŠ” μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR), 정적 μ‚¬μ΄νŠΈ 생성(SSG), ν˜Ήμ€ 점진적 정적 μž¬μƒμ„±(ISR) 방식을 μ‚¬μš©ν•˜μ—¬ 초기 λ Œλ”λ§ 속도와 크둀러 접근성을 κ·ΉλŒ€ν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€ [26-29]. * **λ¦¬μ†ŒμŠ€ 전솑 μ΅œμ ν™”:** λ Œλ”λ§μ„ μ°¨λ‹¨ν•˜λŠ” λΆˆν•„μš”ν•œ CSS 및 JavaScript의 λ‘œλ”©μ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ½”λ“œλ₯Ό μΆ•μ†Œ(Minification)ν•˜κ³  비동기적(`async`/`defer`)으둜 뢈러였며, `preconnect`λ‚˜ `fetchpriority="high"`와 같은 λ¦¬μ†ŒμŠ€ 힌트λ₯Ό μ‚¬μš©ν•˜μ—¬ λΈŒλΌμš°μ €κ°€ μ€‘μš”ν•œ μžμ‚°μ„ μš°μ„ μ μœΌλ‘œ λ‹€μš΄λ‘œλ“œν•˜λ„λ‘ ꡬ성해야 ν•©λ‹ˆλ‹€ [19, 30-32]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Core Web Vitals]], [[React Rendering Strategies]], [[Code Splitting]], [[Search Engine Optimization (SEO)]], [[User Experience (UX)]] - **Projects/Contexts:** [[E-commerce Site Optimization]], [[React SPA SEO Migration]] - **Contradictions/Notes:** μ†ŒμŠ€ 212와 955λŠ” 2025λ…„ κΈ°μ€€ LCP λͺ©ν‘œλ₯Ό 2.0초 미만, CLSλ₯Ό 0.08 미만으둜 엄격해진 μž„κ³„κ°’μœΌλ‘œ λͺ…μ‹œν•˜μ§€λ§Œ, μ†ŒμŠ€ 339, 376 λ“± λ‹€μˆ˜μ˜ λ‹€λ₯Έ μ†ŒμŠ€μ—μ„œλŠ” μ—¬μ „νžˆ κΈ°μ‘΄ 기쀀인 LCP 2.5초 미만, CLS 0.1 λ―Έλ§Œμ„ λͺ©ν‘œμΉ˜λ‘œ μ–ΈκΈ‰ν•˜λŠ” 차이가 μ‘΄μž¬ν•©λ‹ˆλ‹€. --- *Last updated: 2026-04-26*