๋ธ๋ก๊ทธ CLS ์ฑ๋ฅ ์ต์ ํ: ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ์ค๋ฅ ํ์ธ๋ถํฐ ๊ฐ๋จํ ์์ ๋ฐฉ๋ฒ๊น์ง ์๋ฒฝ ๊ฐ์ด๋
CLS(Cumulative Layout Shift, ๋์ ๋ ์ด์์ ์ด๋)๋ ์น ์ฑ๋ฅ ์งํ ์ค SEO์ ๊ฒฐ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ์์์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ฅผ ํฌํจํ ๋ชจ๋ ์น์ฌ์ดํธ ์ด์์๊ฐ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ(Chrome DevTools)๋ฅผ ์ฌ์ฉํ์ฌ CLS ์ค๋ฅ๋ฅผ ์ง์ ์ธก์ ํ๊ณ , min-height, CSS contain ์์ฑ, ์ค์ผ๋ ํค UI ๋ฑ์ ์ค์ ์ฝ๋๋ฅผ ์ ์ฉํด ๋ธ๋ก๊ทธ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
์น์ฌ์ดํธ์ ์ฑ๋ฅ, ์๋, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ SEO(๊ฒ์ ์์ง ์ต์ ํ)์ ํต์ฌ ์์์
๋๋ค. ๊ทธ์ค์์๋ CLS(Cumulative Layout Shift, ๋์ ๋ ์ด์์ ์ด๋)๋ ๊ฒ์์์ง์ด ์ค์ํ๊ฒ ํ๊ฐํ๋ ์น ์ฑ๋ฅ ์งํ ์ค ํ๋์
๋๋ค. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ ๋ค๋ฅธ ๋ธ๋ก๊ทธ ํ๋ซํผ๊ณผ ๋ฌ๋ฆฌ, ์ด์์๊ฐ ์์ ์ ์ทจํฅ์ ๋ฐ๋ผ ๋ธ๋ก๊ทธ ๋์์ธ์ ์์ ๋กญ๊ฒ ์์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ํฐ์คํ ๋ฆฌ๋ง์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋์
๋๋ค.
ํ์ง๋ง ์๊ณ ๊ณ์
จ๋์?
์ด ์ฅ์ ์ด ์๋ชป ์ฌ์ฉ๋๋ฉด ๋จ์ ์ด ๋ ์๋ ์๋ค๋ ์ฌ์ค์์.
๋ฌดํฑ๋๊ณ ๋ธ๋ก๊ทธ ์คํจ์ ์์ ํ๋ค ๋ณด๋ฉด, ๋ธ๋ก๊ทธ ์ฑ๋ฅ ์ง์์ ์ ์ํฅ์ ๋ฏธ์น๋ ์ค์๋ฅผ ํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋์์ธ๊ณผ ์ ๊ทผ์ฑ๋ ๋ฌผ๋ก ์ค์ํ์ง๋ง, ์น ์ฑ๋ฅ ์ง์(CLS ๋ฑ)์ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํค์ง ์๋ ๋ฒ์ ๋ด์์ ์์ ํ๋ ๊ฒ์ ๊ถ์ฅ๋๋ฆฝ๋๋ค.
๋ง์ฝ ์คํจ ์์ ์ ๊ณํํ๊ณ ์๋ค๋ฉด, ์๋์ ์๊ฐํ๋ ๋ฐฉ๋ฒ์ ํตํด ๋ธ๋ก๊ทธ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋์ง ๋ฐ๋์ ์ ๊ฒํ์๊ธฐ ๋ฐ๋๋๋ค.
ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ก CLS ์ธก์ ํ๊ณ ๋ธ๋ก๊ทธ ๋ ์ด์์ ์ค๋ฅ ์ง์ ๊ณ ์น๋ ๋ฐฉ๋ฒ
๊ทธ์ค์์๋ ๊ฐ์ฅ ์ค์ํ ์ ๊ฒ ํญ๋ชฉ์ด ๋ฐ๋ก CLS์ ๋๋ค.
๋๋ถ๋ถ์ ์ฑ๋ฅ ๋ฌธ์ ๋ ๋ธ๋ก๊ทธ ์์ฒด์ ์๋ฒ ํ๊ฒฝ๊ณผ ๊ด๋ จ์ด ์์ด ์์ ์ด ์ด๋ ต์ง๋ง, CLS๋ ์ด์์์ ์คํจ ์์ ์์ ๋น๋กฏ๋๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ค์ค๋ก ๊ฐ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
CLS(Cumulative Layout Shift)๋ ๋ฌด์์ธ๊ฐ์?
CLS๋ ํ์ด์ง ๋ก๋ฉ ์ค ์๊ฐ์ ์ธ ์์๊ฐ ์๊ณ ์์ด ์ด๋ํ๋ ํ์์ ์์นํํ ์งํ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ด๊ณ ๋ ์ด๋ฏธ์ง๊ฐ ๋ฆ๊ฒ ๋ก๋ฉ๋๋ฉด์ ์ฃผ๋ณ ํ ์คํธ๊ฐ ๋ฐ๋ ค๋๋ ๊ฒฝ์ฐ๊ฐ ์ฌ๊ธฐ์ ํด๋นํฉ๋๋ค. CLS๊ฐ ๋์์๋ก ์ฌ์ฉ์๋ ๋ถํธํจ์ ๋๋ผ๊ณ , ๊ฒ์ ์์์๋ ๋ถ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. CLS์ ๊ฐ๋ ๊ณผ ์ธก์ ๊ธฐ์ค์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด ๊ธ(๋ผ์ดํธํ์ฐ์ค (Lighthouse) ๋ ๋ฌด์์ธ๊ฐ?)์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํ ๋ธ๋ก๊ทธ CLS ์ค๋ฅ ํ์ธ ๋จ๊ณ
๋ธ๋ก๊ทธ ์ฌ์ดํธ์ ์ฑ๋ฅ ๊ฒ์ฌ๋ ์ต๊ทผ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ (Chrome)์์ ๊ธฐ๋ฅ์ด ๋ง์ด ๊ฐ์ ๋์ด, ๋๊ตฌ๋ ์ฝ๊ฒ ์ธก์ ํ๊ณ ๋ฌธ์ ์ ์ ํ์ ํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ๋ ๋งค์ฐ ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์, ํน๋ณํ ๊ธฐ์ ์ง์์ด ์์ด๋ ์์ ์ ์น์ฌ์ดํธ๋ ๋ธ๋ก๊ทธ ์ฑ๋ฅ์ ์ง์ ์ ๊ฒํ๊ณ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋จผ์ ์ธก์ ํ๊ณ ์์ ํ๋ ค๋ ๋ธ๋ก๊ทธ์ ์ฌ์ดํธ๋ฅผ ํฌ๋กฌ์ผ๋ก ์ ์ํฉ๋๋ค.
1. ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ ์ด๊ธฐ
- ๋ธ๋ก๊ทธ ํ์ด์ง์์ F12 ํค ๋๋ ์ฐํด๋ฆญ, ๊ฒ์ฌ ์ ํ
- ๋๋ Ctrl + Shift + I (Mac์ Cmd + Option + I)
2. "์ฑ๋ฅ(Performance)" ํญ ์ด๋ ๋ฐ ์ธก์
- ์๋จ์ Performance ํญ ํด๋ฆญ
- ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๊ณ ๋ช ์ด๊ฐ ๋ก๋ฉ ๊ณผ์ ์ ๊ธฐ๋ก
- ์๋ฃ ํ Experience ์์ญ์์ Layout Shift ๋ฐ์ ์ฌ๋ถ ํ์ธ

3. Lighthouse๋ก ์๋ ๋ถ์ ๋ฐ ์ ์ ํ์ธ
- Lighthouse ํญ์ผ๋ก ์ด๋ํ์ฌ Generate Report๋ฅผ ์คํํฉ๋๋ค.
- Cumulative Layout Shift ํญ๋ชฉ์ ์ ์์ ๋ฌธ์ ๊ฐ ๋๋ ์์๋ค์ ์์คํ ์ ์ผ๋ก ํ์ธํ์ฌ ๊ฐ์ ์ฐ์ ์์๋ฅผ ์ ํ ์ ์์ต๋๋ค.
CLS ๋ฐ์ ์์ธ ๋ถ์ ๋ฐ ๋ฌธ์ ์ฝ๋ ํ์ธ
์ด ๊ณผ์ ์ ํตํด CLS(Cumulative Layout Shift)๋ฅผ ๋น๋กฏํ ๋ค์ํ ์น ์ฑ๋ฅ ์งํ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ๊ณ , ๋ธ๋ก๊ทธ์ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ ๋ก๋ฉ ์ง์ฐ ๋ฑ์ ์์ธ์ ์ฒด๊ณ์ ์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค.
์: ์๋๋ CLS ๋ฌธ์ ๋ฐ์ ์ง์ 0.001๋ก ํ์ธ๋ ์ฌ๋ก์ ๋๋ค. ํ๋จ์ Layout ํญ์ ํ์ธํ์ฌ ๋ฌธ์ ๊ฐ ๋๋ HTML/CSS ์ฝ๋๋ฅผ ์ง์ ํ์ธํ ์ ์์ต๋๋ค.

์ฃผ์ CLS ๋ฐ์ ์์ธ
- ๋์ ์ฝํ ์ธ ์ ๋์ด ๋ถํ์ค์ฑ: ๋๊ธ ์์ญ, ์์ ฏ, ์ถ์ฒ ํฌ์คํธ ๋ฑ ์คํฌ๋ฆฝํธ๋ก ์ฝ์ ๋๋ ์์ญ์ด ์ด๊ธฐ ๊ณต๊ฐ์ ํ๋ณดํ์ง ๋ชปํด ์ฃผ๋ณ ์์๋ฅผ ๋ฐ์ด๋ด๋ ๊ฒฝ์ฐ.
- ์ง์ฐ ๋ก๋ฉ๋ ์ด๋ฏธ์ง, ๊ด๊ณ , iframe ๋ฑ: Lazy loading ๋๊ฑฐ๋ JS๋ก ์ฝ์ ๋ ๊ด๊ณ ๊ฐ ๋์ค์ ๋ํ๋๋ฉฐ ๋ ์ด์์ ์ด๋์ ์ ๋ฐ. Google AdSense ๊ด๊ณ ๋ YouTube iframe ์ฝ์ ์ ํํ๊ฒ ๋ฐ์.
- ๊ณ ์ ๋์ง ์์ ๋น์จ/aspect-ratio ์ค์ ๋๋ฝ: ์ด๋ฏธ์ง๋ ๋น๋์ค ์์์ ๋๋น/๋์ด ์์ฑ์ด ์์ด ๋ก๋ฉ ํ ์ค์ ํฌ๊ธฐ๋ก ํ์ฅ๋๋ฉฐ ์ฃผ๋ณ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ด๋.
- ์น ํฐํธ ์ง์ฐ ๋ก๋ฉ: FOUT(Flash of Unstyled Text) ํ์ ๋ฐ์ ์, ์ด๊ธฐ ๋ ๋๋ง ํ ํฐํธ ํฌ๊ธฐ ๋ณํ๋ก ์ธํด ํ ์คํธ ์์ญ์ ์ด๋ ๋ฐ์.
๋ธ๋ก๊ทธ ์ต์ ํ CLS ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ค์ 4๊ฐ์ง ๋ฐฉ๋ฒ
์น ํ์ด์ง์์ ๋ฐ์ํ๋ CLS(Cumulative Layout Shift, ๋์ ๋ ์ด์์ ์ด๋) ๋ฌธ์ ๋ ๋๋ถ๋ถ ๋์ ์ฝํ ์ธ ์ ๋์ด ๋ถํ์ค์ฑ์ด๋ ์ง์ฐ ๋ก๋ฉ๋ ์์๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ๋ค์์ ์ค์ ๋ธ๋ก๊ทธ๋ ์น์ฌ์ดํธ์์ ์ ์ฉํ ์ ์๋ 4๊ฐ์ง ์ค์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.

1. ์ต์ ๋์ด ํ๋ณด (min-height ์์ฑ ์ฌ์ฉ)
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์ด๋ฉฐ, min-height ์์ฑ์ ํ์ฉํ์ฌ ๋์ ์ฝํ ์ธ ๊ฐ ๋ก๋ฉ๋๊ธฐ ์ ์ ์์ ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ํ๋ณดํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝํ ์ธ ๊ฐ ๋ํ๋ ๋ ์ฃผ๋ณ ์์๊ฐ ๋ฐ๋ฆฌ๋ ํ์์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. height: auto์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ฐ์ํ ๊ตฌ์กฐ์๋ ์ ์ฐํ๊ฒ ๋์ํ ์ ์์ต๋๋ค.
.๋์ -์์ญ {
height: auto !important;
min-height: 200px !important; /* ์์๋๋ ์ต์ ๋์ด๋ฅผ ๋ฏธ๋ฆฌ ํ๋ณด */
}
2. CSS Containment ์ฌ์ฉ (layout paint style)
CSS์ contain ์์ฑ์ ์ฌ์ฉํ๋ฉด ํด๋น ์์ญ์ ๋ธ๋ผ์ฐ์ ์ ๋ ๋ฆฝ์ ์ธ ๋ ๋๋ง ๋จ์๋ก ์ธ์์์ผ, ๋ด๋ถ ์ฝํ ์ธ ๋ณํ๊ฐ ์ฃผ๋ณ ๋ ์ด์์์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ ์ ์์ต๋๋ค. ํนํ ๋์ ๋ฐ์ดํฐ๋ ์คํฌ๋ฆฝํธ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋ ์์ญ์์ ์ ์ฉํ๋ฉฐ, ์ฑ๋ฅ ํฅ์์๋ ๋์์ ์ค๋๋ค.
.๋์ -์์ญ {
contain: layout paint style; /* ๋ ์ด์์, ํ์ธํธ, ์คํ์ผ ๋ณํ๋ฅผ ์์ญ ๋ด๋ก ์ ํ */
height: auto;
min-height: 0;
}
- ํจ๊ณผ: ์ด ์์ญ์ ๋ ๋ฆฝ์ ์ด๋ผ๊ณ ๋ธ๋ผ์ฐ์ ์ ์๋ ค์ค์ผ๋ก์จ ๋ด๋ถ ๋ณํ๊ฐ ์ฃผ๋ณ ๋ ์ด์์์ ์ํฅ์ ๋ ๋ฏธ์น๊ฒ ๋ฉ๋๋ค.
3. ์ค์ผ๋ ํค UI ์ ์ฉ (UX ๊ฐ์ ๋ฐ ๊ณต๊ฐ ํ๋ณด)
๋ก๋ฉ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฝํ ์ธ ๊ฐ ์๋ค๋ฉด, ์ค์ผ๋ ํค(Skeleton) UI๋ฅผ ๋จผ์ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์์ ์๊ฐ์ ํผ๋์ ์ค์ผ ์ ์์ต๋๋ค. ์ด๊ธฐ ๊ณต๊ฐ ํ๋ณด์ ํจ๊ป ์์ ๋ ์ด์์์ ๋ฏธ๋ฆฌ ๋ณด์ฌ์ค์ผ๋ก์จ ์ฒด๊ฐ CLS๋ฅผ ์ค์ด๋ ํจ๊ณผ๋ ๋ฐ์ด๋ฉ๋๋ค.
div class="๋์ -์์ญ"
!-- ๋ก๋ฉ ์ค --
div class="skeleton" style="height: 200px; background: #eee;"/div
!-- ์ค์ ์ฝํ
์ธ --
/div
- ์ฅ์ : ์ฌ์ฉ์์๊ฒ ์์ ๊ณต๊ฐ์ ๋จผ์ ๋ณด์ฌ์ฃผ์ด ์๊ฐ์ ์์ ๊ฐ์ ์ ๊ณตํ๋ฉฐ ์ฒด๊ฐ๋๋ CLS ํ์์ ํฌ๊ฒ ์ค์ฌ์ค๋๋ค.
4. JavaScript๋ก ๋์ด ๋ฏธ๋ฆฌ ์ค์ (์ ๊ตํ ์ปจํธ๋กค)
JS๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝํ ์ธ ๋ก๋ ์ด์ ์ ์์ ๋์ด(minHeight)๋ฅผ ์ค์ ํ์ฌ ๋ ์ด์์ ์ด๋์ ๋ฐฉ์งํ๊ณ , ์ฝํ ์ธ ๋ก๋ฉ ํ์๋ ์์ฐ์ค๋ฝ๊ฒ minHeight๋ฅผ ํด์ ํ ์ ์์ต๋๋ค. ๋์ ์ฝํ ์ธ ๊ฐ ์ธ์ ๋ก๋๋๋์ง ์ ํํ ์ ์ ์์ ๋ ์ ์ฉํ ๊ณ ๊ธ ๊ธฐ๋ฒ์ ๋๋ค.
const dynamicElement = document.querySelector('.๋์ -์์ญ');
dynamicElement.style.minHeight = '200px';
setTimeout(() = {
dynamicElement.style.minHeight = 'auto'; // ๋ก๋ฉ ์๋ฃ ํ ๋์ด ์ ์ฝ ํด์
}, 10);
CLS ์ต์ ํ ์ต์ข ์ ๋ฆฌ ๋ฐ ๊ถ์ฅ ์ ๋ต ํ ์ด๋ธ
CLS๋ "์์ธก ๊ฐ๋ฅํ ๊ณต๊ฐ ํ๋ณด"๊ฐ ํต์ฌ์ ๋๋ค. ์๋ฌด๋ฆฌ ํ๋ คํ ๋ธ๋ก๊ทธ ๋์์ธ์ด๋ผ๋, ์ฝํ ์ธ ๊ฐ ๋ฐ๋ฆฌ๋ ํ์์ด ์๋ค๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๊ฐ์ง๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ์์์ .๋์ -์์ญ์ min-height๋ฅผ ๋ถ์ฌํ๋ ๊ฒ๋ถํฐ์ด๋ฉฐ, !important๋ ๊ฐ๋ฅํ ๋ง์ง๋ง ์๋จ์ผ๋ก๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
| ์ ๋ต | ์ค๋ช |
| min-height ์ค์ | ์์ธก ๊ฐ๋ฅํ ๊ณต๊ฐ ํ๋ณด (๊ฐ์ฅ ์ฌ์ด ํด๊ฒฐ์ฑ ) |
| contain ์์ฑ ์ฌ์ฉ | ๋ ์ด์์ ๊ฐ์ญ ์ฐจ๋จ ๋ฐ ๋ ๋๋ง ์ต์ ํ |
| aspect-ratio ํ์ฉ | ์ด๋ฏธ์ง/๊ด๊ณ ์ ๋น์จ์ CSS๋ก ๊ณ ์ |
| ์ค์ผ๋ ํค UI ๋์ | ์ฌ์ฉ์ ์ฒด๊ฐ ์์ ๊ฐ ์ฆ๊ฐ ๋ฐ ๋ก๋ฉ ์ ๊ณต๊ฐ ํ๋ณด |
| JS ์ฌ์ ๋์ด ๊ณ์ฐ | ์ ๊ตํ ๋์ ๋ ์ด์์ ์ปจํธ๋กค ๊ฐ๋ฅ (๊ณ ๊ธ) |
Q1. CLS๋ ๋ฌด์์ด๋ฉฐ ์ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ SEO์ ์ค์ํ๊ฐ์?
A1. CLS๋ ํ์ด์ง ๋ด ์๊ฐ์ ์์๊ฐ ์๊ธฐ์น ์๊ฒ ์์ง์ด๋ ํ์(์: ๊ด๊ณ ๊ฐ ๋ฆ๊ฒ ๋ก๋ฉ๋์ด ํ ์คํธ๊ฐ ๋ฐ๋ฆฌ๋ ๊ฒ)์ ์ธก์ ํ๋ ์น ์ฑ๋ฅ ์งํ์ ๋๋ค. CLS ์ ์๊ฐ ๋์ผ๋ฉด ์ฌ์ฉ์๊ฐ ์์น ์๋ ํด๋ฆญ์ ํ๊ฑฐ๋ ์ ๋ณด๋ฅผ ์๊ฒ ๋์ด ๋ถํธํจ์ ๋๋ผ๊ณ , ์ด๋ ์ดํ๋ฅ ์ฆ๊ฐ๋ก ์ด์ด์ ธ ๊ตฌ๊ธ SEO(Core Web Vitals) ์ ์์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
Q2. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์์ CLS ๋ฌธ์ ๊ฐ ์์ฃผ ๋ฐ์ํ๋ ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
A2. ํฐ์คํ ๋ฆฌ๋ ์คํจ HTML/CSS ์์ ์ด ์์ ๋กญ์ต๋๋ค. ์ด ๋๋ฌธ์ ์ด์์๊ฐ ์ด๋ฏธ์ง๋ ๊ด๊ณ , ์ธ๋ถ ์์ ฏ(๋๊ธ, ์ถ์ฒ ํฌ์คํธ) ๋ฑ์ ์ถ๊ฐํ ๋ ํด๋น ์์์ ๋์ด(height)๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ์ง ์์ผ๋ฉด, ์ง์ฐ ๋ก๋ฉ๋๋ฉด์ ์ฃผ๋ณ ๋ ์ด์์์ ๋ฐ์ด๋ด CLS๊ฐ ๋์์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
Q3. CLS ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๋ ค๋ฉด CSS์์ ์ด๋ค ์์ฑ์ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋์?
A3. CLS ํด๊ฒฐ์ ํต์ฌ์ '๊ณต๊ฐ ํ๋ณด'์ ๋๋ค. ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์์ฑ์ ๋ก๋ฉ ์ ์์ ๋์ด๋ฅผ ์ง์ ํ๋ min-height์ ๋๋ค. ๋ํ, ํด๋น ์์์ ๋ด๋ถ ๋ณํ๊ฐ ์ธ๋ถ ๋ ์ด์์์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ๊ฒฉ๋ฆฌํ๋ CSS contain: layout ์์ฑ์ด๋, ์ด๋ฏธ์ง/๋น๋์ค์ ๋น์จ์ ๊ณ ์ ํ๋ aspect-ratio ์์ฑ์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.