--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Cumulative-Layout-Shift-CLS|Cumulative Layout Shift (CLS]] last_updated: 2026-05-02 --- # [[Cumulative-Layout-Shift-CLS|Cumulative Layout Shift (CLS]] ## ๐Ÿ“Œ Brief Summary > Cumulative Layout Shift (CLS)๋Š” ์›น ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๋Š” ๋™์•ˆ ๋ ˆ์ด์•„์›ƒ๊ณผ ์ฝ˜ํ…์ธ ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์ด๋™ํ•˜๋Š”์ง€๋ฅผ ์ธก์ •ํ•˜๋Š” ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ(Visual Stability) ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค [1, 2]. ๊ตฌ๊ธ€์˜ ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ([[Core Web Vitals|Core Web Vitals]])์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜๋กœ, ๋‚˜์ค‘์— ๋ Œ๋”๋ง๋œ ์ฝ˜ํ…์ธ ๊ฐ€ ์ค‘์š”ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐ€์–ด๋‚ด๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์˜ ์ €ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [1, 2]. CLS ์ ์ˆ˜๋Š” 0.1 ๋ฏธ๋งŒ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [3]. --- > "์‚ฌ์šฉ์ž๊ฐ€ ์ฝ๊ฑฐ๋‚˜ ํด๋ฆญํ•˜๋ ค๋Š” ์ˆœ๊ฐ„ ์ฝ˜ํ…์ธ ๊ฐ€ ์ถค์ถ”๋“ฏ ์ด๋™ํ•˜๋Š” '์‹œ๊ฐ์  ๋ถˆ์•ˆ์ •์„ฑ'์„ ์ œ๊ฑฐํ•˜๊ณ , 0.08์ดˆ ์ด๋‚ด์˜ ๊ณ ์ •๋œ ์•ˆ์ •๊ฐ์„ ์ œ๊ณตํ•˜์—ฌ ์ธ์ง€์  ๋งˆ์ฐฐ์„ ์ฐจ๋‹จํ•˜๋ผ" โ€” ํŽ˜์ด์ง€์˜ ์ „์ฒด ์ˆ˜๋ช… ๋™์•ˆ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ์ธก์ •ํ•˜๋Š” [[Core Web Vitals|Core Web Vitals]]์˜ ํ•ต์‹ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ง€ํ‘œ. ## ๐Ÿ“– Core Content * **์ธก์ • ๊ธฐ์ค€ ๋ฐ ์ค‘์š”์„ฑ:** CLS๋Š” ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ์„ ์ธก์ •ํ•˜๋Š” ์ง€ํ‘œ๋กœ, ํŽ˜์ด์ง€ ๋กœ๋“œ ์ค‘ ์š”์†Œ๋“ค์˜ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๋ ˆ์ด์•„์›ƒ ์ด๋™ ํ˜„์ƒ์„ ์ˆ˜์น˜ํ™”ํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด์ƒ์ ์ด๊ณ  ์พŒ์ ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด CLS ์ ์ˆ˜๋Š” 0.1 ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•˜๋ฉฐ, 0.25๋ฅผ ์ดˆ๊ณผํ•  ๊ฒฝ์šฐ ์ƒํƒœ๊ฐ€ ๋งค์šฐ ๋‚˜์œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ์„ฑ๋Šฅ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [3]. LCP, INP์™€ ํ•จ๊ป˜ ์ตœ์ ํ™”๋˜์–ด์•ผ ํ•˜๋Š” ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ์˜ ์ค‘์š” ์š”์†Œ์ž…๋‹ˆ๋‹ค [4]. * **์ฃผ์š” ๋ฐœ์ƒ ์›์ธ ๋ฐ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•:** ์ฃผ๋กœ ์•ฑ ๋ฐฐ๋„ˆ, ์ด๋ฏธ์ง€, ๊ด‘๊ณ , ์ž„๋ฒ ๋“œ ์š”์†Œ ๋“ฑ์ด ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋ฉด์„œ ๊ธฐ์กด์— ๋ Œ๋”๋ง๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์•„๋ž˜๋กœ ๋ฐ€์–ด๋‚ผ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [2, 5, 6]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฏธ์ง€๋‚˜ ๊ด‘๊ณ , ์ž„๋ฒ ๋“œ ์š”์†Œ๊ฐ€ ๋กœ๋“œ๋  ๊ณต๊ฐ„์„ ๋ฏธ๋ฆฌ ํ™•๋ณด(reserve space)ํ•ด ๋‘์–ด์•ผ ํ•˜๋ฉฐ, ๊ธฐ์กด์— ์žˆ๋Š” ์ฝ˜ํ…์ธ  ์œ„๋กœ ์ƒˆ๋กœ์šด ์ฝ˜ํ…์ธ ๋ฅผ ๋™์ ์œผ๋กœ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์„ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [6]. * **๋ถ„์„ ๋ฐ ๋””๋ฒ„๊น…:** [[Chrome DevTools|Chrome DevTools]]์˜ ์„ฑ๋Šฅ(Performance) ํŒจ๋„์„ ์‚ฌ์šฉํ•ด CLS์˜ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7]. * 'Layout shifts' ํŠธ๋ž™์—์„œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์€ ๋ณด๋ผ์ƒ‰ ๋‹ค์ด์•„๋ชฌ๋“œ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ์‹œ๊ฐ„์ƒ ๊ทผ์ ‘์„ฑ์— ๋”ฐ๋ผ ํด๋Ÿฌ์Šคํ„ฐ ํ˜•ํƒœ(๋ณด๋ผ์ƒ‰ ์„ )๋กœ ๊ทธ๋ฃนํ™”๋ฉ๋‹ˆ๋‹ค [7]. * ์ด ๋‹ค์ด์•„๋ชฌ๋“œ๋‚˜ 'Worst cluster 1 shift' ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜๋ฉด ์–ด๋–ค DOM ์š”์†Œ๊ฐ€ ์ด๋™์— ์˜ํ–ฅ์„ ๋ฐ›์•˜๋Š”์ง€ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๋ทฐํฌํŠธ ๋‚ด์—์„œ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ํ•˜์ด๋ผ์ดํŠธ๋ฉ๋‹ˆ๋‹ค [7, 8]. * **๋ธŒ๋ผ์šฐ์ € ์ง€์› ๋™ํ–ฅ:** ํ˜„์žฌ ๊ตฌ๊ธ€์„ ์ค‘์‹ฌ์œผ๋กœ ์ธก์ •๋˜๊ณ  ์žˆ์œผ๋‚˜, ํŒŒ์ด์–ดํญ์Šค(Firefox)์™€ ์‚ฌํŒŒ๋ฆฌ(Safari)์˜ ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ [[Interop 2025|Interop 2025]] ํ”„๋กœ์ ํŠธ์—๋Š” CLS ์ง€์›์ด ๊ณ„ํš๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค [9]. ๋‹ค๋งŒ, ์ฐจ๊ธฐ ํ”„๋กœ์ ํŠธ์ธ [[Interop 2026|Interop 2026]]์— CLS๋ฅผ ํฌํ•จํ•˜๋ ค๋Š” ์ œ์•ˆ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [9]. --- - **์ถ”์ถœ๋œ ํŒจํ„ด:** "Predictive Space Allocation and Visual Isolation" โ€” ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ ์ „์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ๋ฏธ๋ฆฌ ์˜ˆ์•ฝํ•˜์—ฌ, ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ์ „ํ›„์˜ ์‹œ๊ฐ์  ๋ถˆ์ผ์น˜๋ฅผ ์ œ๋กœ๋กœ ๋งŒ๋“œ๋Š” ํŒจํ„ด. - **CLS ๋ฐœ์ƒ์˜ ์ฃผ์š” ์›์ธ:** - **Sizeless Images/Ads:** ํฌ๊ธฐ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€๋‚˜ ๋™์  ๊ด‘๊ณ ๊ฐ€ ๋กœ๋“œ๋˜๋ฉด์„œ ์ฃผ๋ณ€ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐ€์–ด๋ƒ„. - **Dynamic Content Injection:** ๋ฐฐ๋„ˆ๋‚˜ ํˆดํŒ์ด ๊ธฐ์กด ์ฝ˜ํ…์ธ  ์œ„์ชฝ์— ๊ฐ‘์ž๊ธฐ ์‚ฝ์ž…๋จ. - **FOIT/FOUT:** ์›น ํฐํŠธ ๋กœ๋”ฉ ์ง€์—ฐ์œผ๋กœ ์ธํ•œ ํ…์ŠคํŠธ ํฌ๊ธฐ ๋ฐ ์ค„๋ฐ”๊ฟˆ ๋ณ€๊ฒฝ. - **CLS ์ตœ์ ํ™” ์ „๋žต:** - **Explicit Dimensions:** ๋ชจ๋“  ๋ฏธ๋””์–ด ์š”์†Œ์— `width`, `height` ๋˜๋Š” `aspect-ratio` ๋ช…์‹œ. - **Placeholder Reservation:** ๊ด‘๊ณ  ๋ฐ ๋™์  ์š”์†Œ ์Šฌ๋กฏ์— `min-height`๋ฅผ ํ™œ์šฉํ•œ ๊ณต๊ฐ„ ํ™•๋ณด. - **CSS Transform:** ์œ„์น˜ ์ด๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ ๋ ˆ์ด์•„์›ƒ ์žฌ๊ณ„์‚ฐ์„ ์œ ๋ฐœํ•˜์ง€ ์•Š๋Š” `transform` ์†์„ฑ ์‚ฌ์šฉ. - **Font Display:** `font-display: swap` ์„ค์ •์„ ํ†ตํ•ด ํ…์ŠคํŠธ ๊ตฌ์กฐ ๋ณ€๋™ ์ตœ์†Œํ™”. - **์˜์˜:** ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•จ์œผ๋กœ์จ ์˜คํด๋ฆญ(Misclick)์„ ๋ฐฉ์ง€ํ•˜๊ณ , ๊ฒ€์ƒ‰ ์—”์ง„ ๋žญํ‚น ์ ์ˆ˜๋ฅผ ๋†’์ด๋ฉฐ ์‚ฌ์šฉ์ž์˜ ์‹ ๋ขฐ๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ด. ## โš–๏ธ Trade-offs & Caveats - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. --- - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” CLS ์šฐ์ˆ˜ ๊ธฐ์ค€์ด 0.1์ด์—ˆ์œผ๋‚˜, 2025๋…„ Google ์ •์ฑ… ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐ์ ์œผ๋กœ 0.08 ๋ฏธ๋งŒ(25% ๊ฐ•ํ™”)์œผ๋กœ ๋”์šฑ ์—„๊ฒฉํ•ด์ง. - **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  UI ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด 'Zero Layout Shift' ์ •์ฑ…์„ ๊ฐ•์ œํ•˜๋ฉฐ, ๋นŒ๋“œ ํƒ€์ž„์— ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋ฏธ์ง€์ • ์š”์†Œ๋ฅผ ์ž๋™ ๊ฒ€์ถœํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ •์ฑ…์„ ์‹œํ–‰ํ•จ. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Core Web Vitals|Core Web Vitals]], Largest Contentful Paint (LCP), [[Interaction to Next Paint (INP)|Interaction to Next Paint (INP]] - **Projects/Contexts:** [[Chrome DevTools|Chrome DevTools]], [[Interop 2026|Interop 2026]] - **Contradictions/Notes:** CLS ์ˆ˜์น˜๋Š” ๊ธฐ๊ธฐ์˜ ํ•ด์ƒ๋„์— ํฌ๊ฒŒ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๋ฐฉ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ˜„์žฅ(Field) ๋ฐ์ดํ„ฐ์™€ ๊ฐœ๋ฐœ์ž์˜ ๋กœ์ปฌ(Local) ๋ฐ์ดํ„ฐ ๊ฐ„์— ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ ์ง€ํ‘œ ์ค‘์—์„œ๋„ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์ธก์ •ํ•˜๊ธฐ ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์šด ์ง€ํ‘œ๋กœ ํ‰๊ฐ€๋ฐ›์Šต๋‹ˆ๋‹ค [8]. --- *Last updated: 2026-04-19* --- --- - [[Core-Web-Vitals|Core-Web-Vitals]], LCP-Largest-Contentful-Paint, INP-Interaction-to-Next-Paint, Web-Performance-Optimization, SEO-Foundations - **Raw Source:** 00_Raw/CLS (Cumulative Layout Shift).md