# [[Core Web Vitals Optimization (INP, LCP ๊ฐœ์„ )]] ## ๐Ÿ“Œ Brief Summary Core Web Vitals๋Š” ๊ตฌ๊ธ€์ด ์›น ํŽ˜์ด์ง€์˜ ๊ฒ€์ƒ‰ ์ˆœ์œ„์™€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ •์˜ํ•œ ํ•ต์‹ฌ ์„ฑ๋Šฅ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค [1]. ์—ฌ๊ธฐ์—๋Š” ํ™”๋ฉด์˜ ์ฃผ์š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋˜๋Š” ์†๋„๋ฅผ ์ธก์ •ํ•˜๋Š” LCP(Largest Contentful Paint)์™€ ํŽ˜์ด์ง€ ์„ธ์…˜ ๋‚ด๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•˜๋Š”์ง€ ์ธก์ •ํ•˜๋Š” INP(Interaction to Next Paint)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค [1, 2]. ์ด ์ง€ํ‘œ๋“ค์˜ ๊ธฐ์ค€์น˜(LCP 2.5์ดˆ ๋ฏธ๋งŒ, INP 200 ๋ฐ€๋ฆฌ์ดˆ ๋ฏธ๋งŒ)๋ฅผ ๋‹ฌ์„ฑํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ดํƒˆ๋ฅ ์„ ๋‚ฎ์ถ”๊ณ  ์œ ๊ธฐ์  ๊ฒ€์ƒ‰(SEO) ์„ฑ๊ณผ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1-3]. ## ๐Ÿ“– Core Content - **Largest Contentful Paint (LCP) ์ตœ์ ํ™”** LCP๋Š” ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์˜ ๊ฐ€์žฅ ํฐ ์ฝ˜ํ…์ธ  ์š”์†Œ๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋ฉฐ, ์ด๋ฅผ 2.5์ดˆ ๋ฏธ๋งŒ์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค [1]. - **์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…(Code Splitting):** ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฒˆ๋“ค๋Ÿฌ๋Š” ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ ํฐ ํŒŒ์ผ๋กœ ๋ฌถ์ง€๋งŒ, `React.lazy()` ๋“ฑ์„ ํ†ตํ•ด ๋ผ์šฐํŠธ ์ˆ˜์ค€์—์„œ ์ฝ”๋“œ๋ฅผ ๋ถ„ํ• ํ•˜๋ฉด ์ดˆ๊ธฐ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ 30~50%๊ฐ€๋Ÿ‰ ์ค„์—ฌ LCP๋ฅผ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4]. - **๋ Œ๋”๋ง ์ „๋žต ๋ณ€๊ฒฝ:** ํด๋ผ์ด์–ธํŠธ ์ธก ๋ Œ๋”๋ง(CSR)์€ ์ดˆ๊ธฐ ๋กœ๋”ฉ์ด ๋А๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค [5, 6]. ๋”ฐ๋ผ์„œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR)์ด๋‚˜ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ(SSG)์„ ๋„์ž…ํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ ์ „์— ์™„์„ฑ๋œ HTML์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฆ‰์‹œ ์ œ๊ณตํ•จ์œผ๋กœ์จ LCP ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7-9]. - **์ด๋ฏธ์ง€ ์ตœ์ ํ™”:** WebP๋‚˜ AVIF ๊ฐ™์€ ํ˜„๋Œ€์ ์ธ ์ด๋ฏธ์ง€ ํฌ๋งท์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ , ํ™”๋ฉด์— ๋ณด์ผ ๋•Œ๋งŒ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” `loading="lazy"` ์ง€์—ฐ ๋กœ๋”ฉ์„ ๋„์ž…ํ•ด ์ดˆ๊ธฐ ์ฃผ์š” ๋ฆฌ์†Œ์Šค์™€์˜ ๋Œ€์—ญํญ ๊ฒฝ์Ÿ์„ ๋ง‰์Šต๋‹ˆ๋‹ค [10, 11]. - **Interaction to Next Paint (INP) ์ตœ์ ํ™”** INP๋Š” ๊ธฐ์กด์˜ First Input Delay(FID)๋ฅผ ๋Œ€์ฒดํ•œ ์ง€ํ‘œ๋กœ, ํด๋ฆญ์ด๋‚˜ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๊ฐ™์€ ์ƒํ˜ธ์ž‘์šฉ ์ง€์—ฐ ์‹œ๊ฐ„์„ 200ms ์ด๋‚ด๋กœ ์‘๋‹ตํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค [2]. - **๋™์‹œ์„ฑ ๋ Œ๋”๋ง(Concurrent Rendering):** React 19์˜ `useTransition` ๋ฐ `useDeferredValue` ํ›…์„ ํ†ตํ•ด ๋ฌด๊ฑฐ์šด ์ƒํƒœ ์—…๋ฐ์ดํŠธ(์˜ˆ: ๋Œ€๊ทœ๋ชจ ๋ชฉ๋ก ํ•„ํ„ฐ๋ง)๋ฅผ ํ›„์ˆœ์œ„๋กœ ๋ฏธ๋ฃจ๊ณ , ๊ธด๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ(ํƒ€์ดํ•‘ ๋“ฑ)์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ์‘๋‹ต์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค [2, 12, 13]. - **๋ฉ”๋ชจ์ด์ œ์ด์…˜๊ณผ ์—ฐ์‚ฐ ์ตœ์ ํ™”:** ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ถˆํ•„์š”ํ•œ '๋ฆฌ๋ Œ๋”๋ง ํญํฌ(Re-render Cascade)' ํ˜„์ƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด `React.memo`, `useMemo`, `useCallback`์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค [14-16]. ๋”๋ถˆ์–ด ํ‚ค ์ž…๋ ฅ๋งˆ๋‹ค ๋ฐœ์ƒํ•˜๋Š” ๊ณผ๋„ํ•œ API ํ˜ธ์ถœ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋””๋ฐ”์šด์‹ฑ(Debouncing)์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค [17]. - **๋ชฉ๋ก ๊ฐ€์ƒํ™”(Virtualization):** ์ˆ˜๋ฐฑ, ์ˆ˜์ฒœ ๊ฐœ์˜ ํ•ญ๋ชฉ์ด ํฌํ•จ๋œ ๊ธด ๋ชฉ๋ก์„ ๋ Œ๋”๋งํ•  ๋•Œ, ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋…ธ๋“œ๋งŒ ๋ Œ๋”๋งํ•˜๋Š” ๊ฐ€์ƒํ™”๋ฅผ ๋„์ž…ํ•˜๋ฉด ๋ ˆ์ด์•„์›ƒ ๋ฐ ํŽ˜์ธํŠธ ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜์—ฌ ์ƒํ˜ธ์ž‘์šฉ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค [2, 18, 19]. - **React Server Components (RSC):** ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„œ๋ฒ„์—์„œ ์ „์ ์œผ๋กœ ์‹คํ–‰ํ•จ์œผ๋กœ์จ ํด๋ผ์ด์–ธํŠธ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํฌ๊ธฐ๋ฅผ 40~60% ๊ฐ์†Œ์‹œํ‚ค๊ณ , ์ƒํ˜ธ์ž‘์šฉ ์‹œ ๋ธŒ๋ผ์šฐ์ € ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ฝ”๋“œ๋ฅผ ์ค„์—ฌ INP๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [20]. - **Cumulative Layout Shift (CLS) ๊ด€๋ฆฌ ๋ฐ ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ๋ง** - ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ์„ ์ธก์ •ํ•˜๋Š” CLS๋Š” 0.1 ๋ฏธ๋งŒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉฐ, ๋ถˆํ•„์š”ํ•œ DOM ๋…ธ๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ React Fragment์˜ ์‚ฌ์šฉ, ์ด๋ฏธ์ง€์˜ ๋ช…์‹œ์  ํฌ๊ธฐ ์ง€์ • ๋“ฑ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค [2, 21]. - ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ `React DevTools Profiler`๋‚˜ `Lighthouse`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ชฉ์„ ์œ ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ๊ณ , ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ์‹ค์ธก ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด `Web Vitals` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ•„๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [22-26]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Largest Contentful Paint (LCP)]], [[Interaction to Next Paint (INP)]], [[Concurrent Rendering]], [[Server-Side Rendering (SSR)]], [[React Server Components (RSC)]] - **Projects/Contexts:** [[React Performance Optimization]], Search Engine Optimization (SEO) Strategy - **Contradictions/Notes:** Lighthouse์™€ ๊ฐ™์€ ๋„๊ตฌ๋กœ ์ธก์ •ํ•œ ์—ฐ๊ตฌ์‹ค ๋ฐ์ดํ„ฐ(Lab measurements)๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ ์„ฑ๋Šฅ๊ณผ ๋„คํŠธ์›Œํฌ ์กฐ๊ฑด์„ ๊ฒช๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž๋“ค์˜ ๊ฒฝํ—˜(Field data)๊ณผ ํ•ญ์ƒ ์ผ์น˜ํ•˜์ง€๋Š” ์•Š์œผ๋ฏ€๋กœ ํ”„๋กœ๋•์…˜ ์ƒ์˜ Web Vitals ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ˆ˜์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [23, 24]. --- *Last updated: 2026-04-25*