# [[CLS (Cumulative Layout Shift)]] ## πŸ“Œ Brief Summary CLS(Cumulative Layout Shift)λŠ” μ›ΉνŽ˜μ΄μ§€κ°€ λ‘œλ“œλ˜λŠ” λ™μ•ˆ λ°œμƒν•˜λŠ” 예기치 μ•Šμ€ λ ˆμ΄μ•„μ›ƒ μ΄λ™μ˜ μ΄λŸ‰μ„ μΈ‘μ •ν•˜μ—¬ νŽ˜μ΄μ§€μ˜ μ‹œκ°μ  μ•ˆμ •μ„±μ„ ν‰κ°€ν•˜λŠ” Core Web Vitals의 핡심 μ§€ν‘œμž…λ‹ˆλ‹€. 이 μ§€ν‘œλŠ” ν…μŠ€νŠΈλ‚˜ λ²„νŠΌμ΄ κ°‘μžκΈ° 움직여 μ‚¬μš©μžκ°€ 잘λͺ»λœ 클릭을 ν•˜κ±°λ‚˜ λ°©ν•΄λ°›λŠ” κ²½ν—˜μ„ λ°©μ§€ν•˜λŠ” 데 쀑점을 λ‘‘λ‹ˆλ‹€. 2025λ…„ κΈ°μ€€, CLSλŠ” μ‚¬μš©μž κ²½ν—˜(UX)κ³Ό 검색 μ—”μ§„ μˆœμœ„(SEO)λ₯Ό κ²°μ •μ§“λŠ” μ€‘μš”ν•œ μš”μ†Œλ‘œ ν‰κ°€λ˜λ©°, μš°μˆ˜ν•œ μ›Ή μ„±λŠ₯을 μœ„ν•΄ ν•„μˆ˜μ μœΌλ‘œ μ΅œμ ν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€. ## πŸ“– κΈ°Core Content **CLS의 μ€‘μš”μ„± 및 λΉ„μ¦ˆλ‹ˆμŠ€ 영ν–₯** * CLSλŠ” μ‚¬μš©μžμ˜ ν™”λ©΄ μ‹œκ°μ  μ•ˆμ •μ„±μ„ ν‰κ°€ν•˜λ©°, μ›Ή μ‚¬μš©μž 쀑 70%κ°€ μ‹œκ°μ  μ•ˆμ •μ„±μ„ λΈŒλžœλ“œ μ‹ λ’° κ΅¬μΆ•μ˜ 핡심 μš”μ†Œλ‘œ κΌ½μŠ΅λ‹ˆλ‹€ [1]. * νŽ˜μ΄μ§€κ°€ λΆˆμ•ˆμ •ν•˜μ—¬ λ°œμƒν•˜λŠ” 예기치 λͺ»ν•œ λ ˆμ΄μ•„μ›ƒ 이동은 μ‚¬μš©μžμ˜ λΆˆλ§Œμ„ μ•ΌκΈ°ν•˜κ³  μ΄νƒˆλ₯ μ„ 15%κΉŒμ§€ μ¦κ°€μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€ [2-5]. * CLS 점수λ₯Ό 0.25μ—μ„œ 0.05 μˆ˜μ€€μœΌλ‘œ κ°œμ„ ν•˜λ©΄ μ „ν™˜μœ¨μ΄ 평균 8% μƒμŠΉν•˜κ³ , μ΄νƒˆλ₯ μ€ 10% κ°μ†Œν•˜λ©°, 수읡이 6% μ¦κ°€ν•˜λŠ” μ‹€μ§ˆμ μΈ λΉ„μ¦ˆλ‹ˆμŠ€ 효과λ₯Ό κΈ°λŒ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [6]. **2025λ…„ κΈ°μ€€ CLS μž„κ³„κ°’** * 기쑴의 '우수(Good)' 기쀀은 0.1 λ―Έλ§Œμ΄μ—ˆμœΌλ‚˜, 2025λ…„ Google의 Core Web Vitals μ—…λ°μ΄νŠΈμ— 따라 0.08 미만으둜 25% 더 μ—„κ²©ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€ [7, 8]. * μ‹œκ°μ  μ•ˆμ •μ„±μ„ μœ„ν•΄ λͺ¨λ“  μ΅œμ ν™” μž‘μ—… ν›„ μ΅œμ’… CLS 수치λ₯Ό 0.08 미만으둜 μœ μ§€ν•˜λŠ” 것이 2025λ…„μ˜ ν•„μˆ˜ ν‘œμ€€μž…λ‹ˆλ‹€ [9]. **CLSλ₯Ό μ•…ν™”μ‹œν‚€λŠ” μ£Όμš” 원인** * **크기가 μ§€μ •λ˜μ§€ μ•Šμ€ λ―Έλ””μ–΄:** μ΄λ―Έμ§€λ‚˜ λΉ„λ””μ˜€μ— λͺ…μ‹œμ μΈ 크기가 μ—†μœΌλ©΄ λΈŒλΌμš°μ €κ°€ 곡간을 ν™•λ³΄ν•˜μ§€ λͺ»ν•΄ λ‘œλ”© μ‹œ μ½˜ν…μΈ κ°€ λ°€λ €λ‚©λ‹ˆλ‹€ [4, 5, 10]. * **동적 μ½˜ν…μΈ  μ‚½μž…:** λ°°λ„ˆ, κ΄‘κ³ , μ•Œλ¦Ό λ“± κΈ°μ‘΄ μ½˜ν…μΈ μ˜ μœ„μͺ½μ— μ‚¬μš©μžμ˜ μƒν˜Έμž‘μš© 없이 λ™μ μœΌλ‘œ μ‚½μž…λ˜λŠ” μš”μ†Œκ°€ λ ˆμ΄μ•„μ›ƒμ„ λ°€μ–΄λƒ…λ‹ˆλ‹€ [4, 5, 10]. * **μ›Ή 폰트의 μ§€μ—° λ‘œλ”©:** ν°νŠΈκ°€ 늦게 λ‘œλ“œλ˜λ©΄μ„œ λ°œμƒν•˜λŠ” FOIT(Flash of Invisible Text)λ‚˜ FOUT(Flash of Unstyled Text) ν˜„μƒμ΄ ν…μŠ€νŠΈ 크기와 μ€„λ°”κΏˆμ„ λ³€κ²½μ‹œμΌœ λ ˆμ΄μ•„μ›ƒμ„ λ’€ν‹€λ¦¬κ²Œ ν•©λ‹ˆλ‹€ [4, 5, 10]. * **잘λͺ»λœ μ• λ‹ˆλ©”μ΄μ…˜ 속성 μ‚¬μš©:** `transform`이 μ•„λ‹Œ `top`, `left`, `width`, `height` 같은 λ ˆμ΄μ•„μ›ƒ 속성을 λ³€κ²½ν•˜λŠ” μ• λ‹ˆλ©”μ΄μ…˜μ€ λ Œλ”λ§ 트리의 μž¬κ³„μ‚°μ„ μœ λ°œν•˜μ—¬ 화면을 ν”λ“€λ¦¬κ²Œ ν•©λ‹ˆλ‹€ [10, 11]. **효과적인 CLS μ΅œμ ν™” 및 κ°œμ„  μ „λž΅** * **λͺ…μ‹œμ  크기 및 λΉ„μœ¨ μ§€μ •:** λͺ¨λ“  이미지, λΉ„λ””μ˜€ μš”μ†Œμ— `width`, `height` 속성을 λΆ€μ—¬ν•˜κ±°λ‚˜ CSS의 `aspect-ratio`λ₯Ό μ„€μ •ν•˜μ—¬ λΈŒλΌμš°μ €κ°€ λ Œλ”λ§ μ „ 곡간을 ν• λ‹Ήν•˜λ„λ‘ ν•©λ‹ˆλ‹€ [4, 8, 9, 12, 13]. * **동적 μš”μ†Œμ˜ 곡간 μ˜ˆμ•½(Placeholder):** κ΄‘κ³  슬둯, μž„λ² λ“œ μ½˜ν…μΈ , 동적 λŒ“κΈ€/리뷰 μ˜μ—­μ—λŠ” `min-height`λ₯Ό ν™œμš©ν•œ ν”Œλ ˆμ΄μŠ€ν™€λ”λ₯Ό μ μš©ν•˜μ—¬ μ½˜ν…μΈ  λ‘œλ”© μ „ν›„μ˜ λ ˆμ΄μ•„μ›ƒ 변경을 λ°©μ§€ν•©λ‹ˆλ‹€ [9, 12-14]. * **CSS `transform` ν™œμš©:** μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•  λ•ŒλŠ” λ ˆμ΄μ•„μ›ƒ 변경에 영ν–₯을 μ£Όμ§€ μ•Šκ³  GPU 가속을 ν™œμš©ν•˜λŠ” CSS `transform`(예: `translateX`)을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [8, 11, 15]. * **폰트 λ‘œλ”© μ΅œμ ν™”:** μ›Ή 폰트 μ‚¬μš© μ‹œ CSS에 `font-display: swap` λ˜λŠ” `font-display: optional`을 μ„€μ •ν•˜μ—¬ ν…μŠ€νŠΈμ˜ ꡬ쑰적 변동을 μ΅œμ†Œν™”ν•©λ‹ˆλ‹€ [4, 8, 9, 13, 15]. * **λ ˆμ΄μ•„μ›ƒ 격리(CSS Containment):** CSS의 `contain: layout style paint` 속성을 μ‚¬μš©ν•˜μ—¬ νŠΉμ • 동적 μœ„μ ―μ΄λ‚˜ μΉ΄λ“œμ˜ λ ˆμ΄μ•„μ›ƒ 변경이 λΆ€λͺ¨λ‚˜ ν˜•μ œ μš”μ†Œμ— νŒŒκΈ‰λ˜μ§€ μ•Šλ„λ‘ μ°¨λ‹¨ν•©λ‹ˆλ‹€ [14]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Core Web Vitals]], [[SEO (Search Engine Optimization)]], [[LCP (Largest Contentful Paint)]], [[INP (Interaction to Next Paint)]], [[Web Performance Optimization]] - **Projects/Contexts:** [[Google Page Experience 2025 Update]], [[Frontend Performance Checklist]] - **Contradictions/Notes:** λ§Žμ€ μ†ŒμŠ€μ—μ„œ μ—¬μ „νžˆ 일반적인 CLS의 우수(Good) μž„κ³„κ°’μ„ 0.1 미만으둜 μ–ΈκΈ‰ν•˜κ³  μžˆμœΌλ‚˜ [3, 4, 16, 17], 2025λ…„ Google μ—…λ°μ΄νŠΈλ₯Ό μ„Έλ°€ν•˜κ²Œ λ‹€λ£¨λŠ” μ΅œμ‹  λ¬Έμ„œμ—μ„œλŠ” μƒˆλ‘œμš΄ μž„κ³„κ°’μ΄ 0.08 미만으둜 ν•˜ν–₯ μ‘°μ •(25% 더 엄격해짐)λ˜μ—ˆλ‹€κ³  λͺ…ν™•νžˆ κ°•μ‘°ν•©λ‹ˆλ‹€ [7, 8]. --- *Last updated: 2026-04-26*