# [[Core Web Vitals]] ## πŸ“Œ Brief Summary Core Web VitalsλŠ” μ‚¬μš©μžκ°€ μ²΄κ°ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 속도와 μ‹œκ°μ  μ•ˆμ •μ„±μ„ μΈ‘μ •ν•˜λŠ” ν‘œμ€€ν™”λœ μ„±λŠ₯ μ§€ν‘œμ΄λ‹€ [1, 2]. μ£Όμš” μ§€ν‘œλ‘œλŠ” νŽ˜μ΄μ§€μ˜ μ‹œκ°μ  μ½˜ν…μΈ  λ‘œλ“œ μ™„λ£Œλ₯Ό μΈ‘μ •ν•˜λŠ” LCP(Largest Contentful Paint), μ‚¬μš©μžμ˜ μž…λ ₯에 λŒ€ν•œ λ°˜μ‘μ„±μ„ μΈ‘μ •ν•˜λŠ” INP(Interaction to Next Paint)와 FID(First Input Delay), 그리고 μ‹œκ°μ  μ•ˆμ •μ„±μ„ λ‚˜νƒ€λ‚΄λŠ” CLS(Cumulative Layout Shift)κ°€ ν¬ν•¨λœλ‹€ [2-4]. ν˜„λŒ€ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ—μ„œλŠ” λ‹¨μˆœν•œ μ½”λ“œ μ‹€ν–‰ 속도 μ΅œμ ν™”λ₯Ό λ„˜μ–΄ μ‹€μ œ μ‚¬μš©μž κ²½ν—˜μ— 직접적인 영ν–₯을 λ―ΈμΉ˜λŠ” Core Web Vitalsλ₯Ό κ΄€λ¦¬ν•˜λŠ” 것이 핡심 과제둜 닀루어지고 μžˆλ‹€ [1]. ## πŸ“– Core Content - **핡심 μ§€ν‘œμ˜ μ •μ˜ 및 μ΅œμ ν™” 기법** - **LCP (Largest Contentful Paint) & FCP (First Contentful Paint):** LCPλŠ” κ°€μž₯ 큰 μ‹œκ°μ  μ½˜ν…μΈ μ˜ λ‘œλ”© μ™„λ£Œ μ‹œμ μ„, FCPλŠ” μ‚¬μš©μžκ°€ μ½˜ν…μΈ λ₯Ό 처음 보게 λ˜λŠ” μ‹œμ μ„ μΈ‘μ •ν•œλ‹€ [4]. 라우트 μˆ˜μ€€μ˜ μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ„ 톡해 초기 μžλ°”μŠ€ν¬λ¦½νŠΈ λ²ˆλ“€ 크기λ₯Ό μ€„μž„μœΌλ‘œμ¨ LCP와 FCP μ§€ν‘œλ₯Ό 획기적으둜 ν–₯μƒμ‹œν‚¬ 수 μžˆλ‹€ [5, 6]. λ˜ν•œ, React Compilerλ₯Ό λ„μž…ν•˜μ—¬ 초기 λ‘œλ“œ μ‹œκ°„μ„ λ‹¨μΆ•ν•˜κ³  LCPλ₯Ό ν–₯μƒν•œ μ‹€μ œ ν”„λ‘œλ•μ…˜ 성곡 사둀(예: Wakelet의 10% κ°œμ„ )도 μ‘΄μž¬ν•œλ‹€ [7]. - **INP (Interaction to Next Paint) & FID (First Input Delay):** 이 μ§€ν‘œλ“€μ€ μ‚¬μš©μž μž…λ ₯에 λŒ€ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ°˜μ‘μ„±μ„ μΈ‘μ •ν•œλ‹€ [2, 4]. 수천 개의 데이터가 μžˆλŠ” 리슀트λ₯Ό λ Œλ”λ§ν•  λ•Œ 가상화(Virtualization) 기법을 μ μš©ν•˜λ©΄, ν™”λ©΄μ˜ λ·°ν¬νŠΈμ— λ³΄μ΄λŠ” ν•­λͺ©λ§Œ λ Œλ”λ§ν•˜μ—¬ 슀크둀 쀑 메인 μŠ€λ ˆλ“œμ˜ κ³ΌλΆ€ν•˜λ₯Ό 막고 응닡성을 μœ μ§€ν•  수 μžˆμ–΄ INP μ μˆ˜μ— 긍정적인 영ν–₯을 λ―ΈμΉœλ‹€ [5, 8]. - **CLS (Cumulative Layout Shift):** νŽ˜μ΄μ§€κ°€ λ‘œλ“œλ˜λŠ” λ™μ•ˆ λ°œμƒν•˜λŠ” μ˜ˆμƒμΉ˜ λͺ»ν•œ λ ˆμ΄μ•„μ›ƒ 이동을 μΈ‘μ •ν•˜μ—¬ μ‹œκ°μ  μ•ˆμ •μ„±μ„ ν‰κ°€ν•˜λŠ” μ§€ν‘œμ΄λ‹€ [2]. - **μžλ°”μŠ€ν¬λ¦½νŠΈ λ²ˆλ“€ 크기와 μ„±λŠ₯의 상관관계** - μžλ°”μŠ€ν¬λ¦½νŠΈ λ²ˆλ“€μ΄ κ³Όλ„ν•˜κ²Œ 크면(예: μ••μΆ• ν›„ 500KB 이상) λ‹€μš΄λ‘œλ“œ 및 νŒŒμ‹±μ— μ‹œκ°„μ΄ 였래 걸리고 메인 μŠ€λ ˆλ“œλ₯Ό μ°¨λ‹¨ν•˜μ—¬ FCP, LCP, INP λ“± λͺ¨λ“  Core Web Vitals μ§€ν‘œλ₯Ό μ•…ν™”μ‹œν‚¨λ‹€ [6, 9]. - 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ `React.lazy`와 `Suspense`λ₯Ό ν™œμš©ν•œ μ§€μ—° λ‘œλ”©(Lazy Loading) νŒ¨ν„΄μ΄λ‚˜ Vite의 `manualChunks`λ₯Ό μ‚¬μš©ν•˜μ—¬ 무거운 μ„œλ“œνŒŒν‹° 라이브러리λ₯Ό λ³„λ„μ˜ 파일둜 λΆ„ν• ν•˜λŠ” μ „λž΅μ΄ ꢌμž₯λœλ‹€ [6, 10, 11]. - **μ„±λŠ₯ μΈ‘μ • 및 μ‹€μ œ μ‚¬μš©μž λͺ¨λ‹ˆν„°λ§ (RUM)** - μ„±λŠ₯ 병λͺ© ν˜„μƒμ„ μ‹λ³„ν•˜κΈ° μœ„ν•΄ 개발 λ‹¨κ³„μ—μ„œ Lighthouse, WebPageTest, Chrome DevTools λ“±κ³Ό 같은 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ μ§€ν‘œλ₯Ό 확인해야 ν•œλ‹€ [2, 12, 13]. - ν•©μ„± ν…ŒμŠ€νŠΈ(Synthetic testing) ν™˜κ²½μ΄ 놓칠 수 μžˆλŠ” λ‹€μ–‘ν•œ κΈ°κΈ° 및 λ„€νŠΈμ›Œν¬ ν™˜κ²½μ—μ„œμ˜ μ„±λŠ₯ 문제λ₯Ό νŒŒμ•…ν•˜κΈ° μœ„ν•΄, Sentry, SigNoz, LogRocket, DebugBear ν˜Ήμ€ Web Vitals JS와 같은 ν”Œλž«νΌμ„ μ΄μš©ν•΄ μ‹€μ œ μ‚¬μš©μž λͺ¨λ‹ˆν„°λ§(Real User Monitoring, RUM)을 μ§€μ†μ μœΌλ‘œ μˆ˜ν–‰ν•˜λŠ” 것이 ν•„μˆ˜μ μ΄λ‹€ [3, 12, 14, 15]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Performance Optimization]], [[Code Splitting]], [[Real User Monitoring (RUM)]], [[React Compiler]] - **Projects/Contexts:** [[Frontend Performance Debugging]], [[React Application Scaling]] - **Contradictions/Notes:** 제곡된 μ†ŒμŠ€ μ „λ°˜μ— 걸쳐 Core Web Vitals의 μ€‘μš”μ„±κ³Ό μ΅œμ ν™” 기법에 λŒ€ν•œ κ²¬ν•΄λŠ” μΌμΉ˜ν•˜λ©° μƒμΆ©ν•˜λŠ” λ‚΄μš©μ€ μ—†μŠ΅λ‹ˆλ‹€. --- *Last updated: 2026-04-26*