CSS @layer ์ฑ๋ฅ์ ๋น๋ฐ์ ํํค์ณ ๋ณด์ธ์! ์ด ์ข ํฉ ๊ฐ์ด๋๋ ๋ ๋น ๋ฅธ ๋ ๋๋ง๊ณผ ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํ ๋ ์ด์ด ์ฒ๋ฆฌ ๋ถ์, ํ๋กํ์ผ๋ง ๊ธฐ๋ฒ, ์ต์ ํ ์ ๋ต์ ๋ค๋ฃน๋๋ค.
CSS @layer ์ฑ๋ฅ ํ๋กํ์ผ๋ง: ์ต์ ํ๋ ๋ ๋๋ง์ ์ํ ๋ ์ด์ด ์ฒ๋ฆฌ ๋ถ์
CSS ์บ์ค์ผ์ด๋ ๋ ์ด์ด(@layer)๋ CSS ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ์ฌ ์ ์ง๋ณด์์ฑ๊ณผ ์์ธก ๊ฐ๋ฅ์ฑ์ ํฅ์์ํค๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๊ทธ๋ ๋ฏ, ์ ์คํ๊ฒ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ ๋ฐํ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๋ ์ด์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ดํดํ๊ณ ์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๊ฒ์ ๋ ๋๋ง ์๋๋ฅผ ์ต์ ํํ๊ณ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ CSS @layer ์ฑ๋ฅ ํ๋กํ์ผ๋ง์ ์ธ๊ณ๋ฅผ ํ๊ตฌํ๋ฉฐ, ๋ ์ด์ด ๊ธฐ๋ฐ ์คํ์ผ๋ง์ ๋ถ์, ์ต์ ํ ๋ฐ ๋ง์คํฐํ๋ ๋ฐ ํ์ํ ์ง์๊ณผ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
CSS @layer์ ์บ์ค์ผ์ด๋ ์ดํดํ๊ธฐ
์ฑ๋ฅ ํ๋กํ์ผ๋ง์ ๋ฐ์ด๋ค๊ธฐ ์ ์, CSS @layer์ ๊ธฐ๋ณธ ์ฌํญ๊ณผ ์ด๊ฒ์ด ์บ์ค์ผ์ด๋์ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง ํ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. @layer๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ์ผ์ด ์ ์ฉ๋๋ ์์๋ฅผ ์ ์ดํ๋ ๋ช ๋ช ๋ ๋ ์ด์ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ฐ์ ์์๊ฐ ๋์ ๋ ์ด์ด์ ์คํ์ผ์ ์ฐ์ ์์๊ฐ ๋ฎ์ ๋ ์ด์ด์ ์คํ์ผ์ ๋ฎ์ด์๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์คํ์ผ ์์ค๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค:
- ๊ธฐ๋ณธ ์คํ์ผ: ์์์ ๊ธฐ๋ณธ ์คํ์ผ.
- ํ ๋ง ์คํ์ผ: ์๊ฐ์ ํ ๋ง์ ๊ด๋ จ๋ ์คํ์ผ.
- ์ปดํฌ๋ํธ ์คํ์ผ: ๊ฐ๋ณ ์ปดํฌ๋ํธ์ ํนํ๋ ์คํ์ผ.
- ์ ํธ๋ฆฌํฐ ์คํ์ผ: ํน์ ๋ชฉ์ ์ ์ํ ์๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์คํ์ผ (์: margin, padding).
- ์ฌ์ ์ ์คํ์ผ: ๋ค๋ฅธ ์คํ์ผ๋ณด๋ค ์ฐ์ ์ ์ฉ๋์ด์ผ ํ๋ ์คํ์ผ.
์คํ์ผ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑํจ์ผ๋ก์จ, ๋ช ์์ฑ ์ถฉ๋์ ์ค์ด๊ณ CSS ์ฝ๋๋ฒ ์ด์ค์ ์ ๋ฐ์ ์ธ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
@layer๊ฐ ๋ ๋๋ง ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ
@layer๋ ๊ตฌ์ฑ์ ํฅ์์ํค์ง๋ง, ์ ์คํ๊ฒ ๊ตฌํ๋์ง ์์ผ๋ฉด ๋ ๋๋ง ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๊ฐ ์์์ ์ต์ข ์คํ์ผ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ง์ ๋ ์์๋๋ก ๋ ์ด์ด๋ฅผ ํ์ํด์ผ ํฉ๋๋ค. ์ด ๊ณผ์ ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ๋ ์ด์ด ์ํ: ๊ด๋ จ ๊ท์น์ ์ฐพ๊ธฐ ์ํด ๊ฐ ๋ ์ด์ด๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
- ๋ช ์์ฑ ๊ณ์ฐ: ๋ ์ด์ด ๋ด์์ ์ผ์นํ๋ ๊ฐ ๊ท์น์ ๋ช ์์ฑ์ ๊ณ์ฐํฉ๋๋ค.
- ์บ์ค์ผ์ด๋ ํด๊ฒฐ: ๋ช ์์ฑ๊ณผ ๋ ์ด์ด ์์์ ๋ฐ๋ผ ๊ท์น ๊ฐ์ ์ถฉ๋์ ํด๊ฒฐํฉ๋๋ค.
๋ ์ด์ด๊ฐ ๋ง๊ณ ๊ท์น์ด ๋ณต์กํ ์๋ก ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฌํ ๋จ๊ณ์ ๋ ๋ง์ ์๊ฐ์ ์๋นํ๊ฒ ๋์ด ์ ์ฌ์ ์ผ๋ก ๋ ๋๋ง ์๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค. ์ฑ๋ฅ ๋ฌธ์ ์ ๊ธฐ์ฌํ๋ ์์ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ณผ๋ํ ๋ ์ด์ด: ๋๋ฌด ๋ง์ ๋ ์ด์ด๋ ์ํ ์๊ฐ์ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
- ๋ณต์กํ ์ ํ์: ๋ ์ด์ด ๋ด์ ๋ณต์กํ ์ ํ์๋ ๋ช ์์ฑ ๊ณ์ฐ ์๋๋ฅผ ๋ฆ์ถ ์ ์์ต๋๋ค.
- ์ค๋ณต ์คํ์ผ: ์ฌ๋ฌ ๋ ์ด์ด์ ๊ฑธ์น ์ค๋ณต ์คํ์ผ์ ๋ถํ์ํ ๊ณ์ฐ์ ์ด๋ํ ์ ์์ต๋๋ค.
CSS @layer ์ฑ๋ฅ ํ๋กํ์ผ๋งํ๊ธฐ
ํ๋กํ์ผ๋ง์ ์ฝ๋ ์คํ์ ๋ถ์ํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ ๊ณผ์ ์ ๋๋ค. ์ฌ๋ฌ ๋๊ตฌ์ ๊ธฐ์ ์ด CSS @layer ์ฑ๋ฅ์ ํ๋กํ์ผ๋งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค:
1. ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ
์ต์ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ ๊ฐ๋ ฅํ ํ๋กํ์ผ๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
a. ์ฑ๋ฅ ํจ๋
์ฑ๋ฅ ํจ๋(Chrome, Firefox, Edge, Safari์์ ์ฌ์ฉ ๊ฐ๋ฅ)์ ์ฌ์ฉํ๋ฉด ํน์ ๊ธฐ๊ฐ ๋์์ ๋ธ๋ผ์ฐ์ ํ๋์ ๊ธฐ๋กํ๊ณ ๋ถ์ํ ์ ์์ต๋๋ค. CSS @layer ์ฑ๋ฅ์ ํ๋กํ์ผ๋งํ๋ ค๋ฉด:
- ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฝ๋๋ค (๋ณดํต F12 ํค๋ฅผ ๋๋ฆ).
- ์ฑ๋ฅ ํจ๋๋ก ์ด๋ํฉ๋๋ค.
- ๋ นํ ๋ฒํผ์ ํด๋ฆญํ์ฌ ํ๋กํ์ผ๋ง์ ์์ํฉ๋๋ค.
- ํ์ด์ง์ ์ํธ ์์ฉํ์ฌ ๋ถ์ํ๋ ค๋ CSS ์คํ์ผ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
- ์ค์ง ๋ฒํผ์ ํด๋ฆญํ์ฌ ํ๋กํ์ผ๋ง์ ์ข ๋ฃํฉ๋๋ค.
์ฑ๋ฅ ํจ๋์๋ ๋ นํ ์ค์ ๋ฐ์ํ ๋ค์ํ ํ๋์ ๋ณด์ฌ์ฃผ๋ ํ์๋ผ์ธ์ด ํ์๋ฉ๋๋ค. '์คํ์ผ ์ฌ๊ณ์ฐ(Recalculate Style)' ๋๋ '๋ ์ด์์(Layout)'๊ณผ ๊ด๋ จ๋ ์น์ ์ ์ฐพ์๋ณด์ธ์. ์ด๋ฌํ ์น์ ์ ์ข ์ข CSS ๊ด๋ จ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ๋ํ๋ ๋๋ค. 'ํํฅ์(Bottom-Up)' ๋๋ 'ํธ์ถ ํธ๋ฆฌ(Call Tree)' ํญ์ ๊ฒํ ํ์ฌ ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ์๋นํ๋ ํน์ ํจ์๋ ์คํ์ผ์ ์๋ณํ์ธ์. '๋ ๋๋ง(Rendering)'์ผ๋ก ํํฐ๋งํ์ฌ CSS ๊ด๋ จ ์ฑ๋ฅ์ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
b. ๋ ๋๋ง ํจ๋
Chrome์ ๋ ๋๋ง ํจ๋์ ๋ ๋๋ง ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์ ์ก์ธ์คํ๋ ค๋ฉด:
- ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฝ๋๋ค.
- ์ค๋ฅธ์ชฝ ์๋จ์ ์ธ ๊ฐ์ ์ ์ ํด๋ฆญํฉ๋๋ค.
- '๋๊ตฌ ๋๋ณด๊ธฐ' -> '๋ ๋๋ง'์ ์ ํํฉ๋๋ค.
๋ ๋๋ง ํจ๋์ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
- ํ์ธํธ ๊น๋ฐ์(Paint flashing): ๋ค์ ํ์ธํธ๋๋ ์์ญ์ ๊ฐ์กฐ ํ์ํฉ๋๋ค. ์ฆ์ ๋ฆฌํ์ธํธ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค.
- ๋ ์ด์์ ๋ณ๊ฒฝ ์์ญ(Layout Shift Regions): ์ฌ์ฉ์ ๊ฒฝํ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ ์ด์์ ๋ณ๊ฒฝ์ ์ํฅ์ ๋ฐ๋ ์์ญ์ ๊ฐ์กฐ ํ์ํฉ๋๋ค.
- ์คํฌ๋กค ์ฑ๋ฅ ๋ฌธ์ (Scrolling performance issues): ์คํฌ๋กค ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์์๋ฅผ ๊ฐ์กฐ ํ์ํฉ๋๋ค.
- ๋ ์ด์ด ํ ๋๋ฆฌ(Layer borders): ํฉ์ฑ๋ ๋ ์ด์ด ํ ๋๋ฆฌ๋ฅผ ํ์ํ์ฌ ๋ ์ด์ด๋ง ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
2. WebPageTest
WebPageTest๋ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋ถ์ํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์จ๋ผ์ธ ๋๊ตฌ์ ๋๋ค. ๋ ๋๋ง ์๊ฐ, ์ต์ด ์ฝํ ์ธ ํ ํ์ธํธ(FCP), ์ต๋ ์ฝํ ์ธ ํ ํ์ธํธ(LCP) ๋ฑ ๋ค์ํ ์งํ์ ๋ํ ์์ธ ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํฉ๋๋ค. WebPageTest๋ CSS @layer์ ๊ด๋ จ๋ ์ ์๋ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
3. Lighthouse
Lighthouse๋ Chrome ํ์ฅ ํ๋ก๊ทธ๋จ ๋ฐ Node.js ๋ชจ๋๋ก ์ ๊ณต๋๋ฉฐ, ์น ํ์ด์ง์ ์ฑ๋ฅ, ์ ๊ทผ์ฑ, SEO ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ฐ์ฌํฉ๋๋ค. CSS @layer ์ฌ์ฉ ์ต์ ํ ์ ์์ ํฌํจํ์ฌ CSS ๊ฐ์ ์ ์ํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค.
ํ๋กํ์ผ๋ง ๊ฒฐ๊ณผ ๋ถ์ํ๊ธฐ
ํ๋กํ์ผ๋ง ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ค๋ฉด, ๋ค์ ๋จ๊ณ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ๊ณ ์ต์ ํํ ์์ญ์ ์๋ณํ๋ ๊ฒ์ ๋๋ค. ๋ค์ ์งํ๋ฅผ ์ฐพ์๋ณด์ธ์:
- ๊ธด '์คํ์ผ ์ฌ๊ณ์ฐ' ์๊ฐ: ์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์คํ์ผ์ ๋ค์ ๊ณ์ฐํ๋ ๋ฐ ์๋นํ ์๊ฐ์ ์๋นํ๊ณ ์์์ ๋ํ๋ด๋ฉฐ, ๋ณต์กํ ์ ํ์, ์ค๋ณต ์คํ์ผ ๋๋ ๊ณผ๋ํ ๋ ์ด์ด ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
- ์ฆ์ ๋ฆฌํ์ธํธ(Repaint): ์ฆ์ ๋ฆฌํ์ธํธ๋ ๋ ์ด์์์ด๋ ๊ฐ์์ฑ์ ์ํฅ์ ๋ฏธ์น๋ ์คํ์ผ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฆฌํ์ธํธ๋ฅผ ์ต์ํํ๋๋ก ์คํ์ผ์ ์ต์ ํํ์ธ์.
- ๋ ์ด์์ ๋ณ๊ฒฝ(Layout Shift): ๋ ์ด์์ ๋ณ๊ฒฝ์ ํ์ด์ง์ ์์๊ฐ ์๊ธฐ์น ์๊ฒ ์์ง์ผ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ ๋์ ์ฝํ ์ธ ๋ ์ ๋๋ก ์ต์ ํ๋์ง ์์ ์คํ์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์คํฌ๋กค ์ฑ๋ฅ ๋ฌธ์ : ์คํฌ๋กค ์ค์ ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ฆฌํ์ธํธ๋ ๋ ์ด์์ ๊ณ์ฐ์ ํธ๋ฆฌ๊ฑฐํ๋ ์์๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
CSS @layer ์ฑ๋ฅ ์ต์ ํ ์ ๋ต
ํ๋กํ์ผ๋ง ๊ฒฐ๊ณผ์ ๋ฐ๋ผ, CSS @layer ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ์ฌ๋ฌ ์ ๋ต์ ์ ์ฉํ ์ ์์ต๋๋ค:
1. ๋ ์ด์ด ์ ์ค์ด๊ธฐ
๋ ์ด์ด๋ ๊ตฌ์ฑ์ ์ ์ฉํ์ง๋ง, ๋๋ฌด ๋ง์ผ๋ฉด ์ํ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์ต๋๋ค. ๋ ์ด์ด ๊ตฌ์กฐ๋ฅผ ํ๊ฐํ๊ณ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ ์ด์ด๋ฅผ ํตํฉํ์ธ์. ๋ชจ๋ ๋ ์ด์ด๊ฐ ์ ๋ง๋ก ํ์ํ์ง ๊ณ ๋ คํด๋ณด์ธ์. ์ผ๋ฐ์ ์ผ๋ก ํ๋ซํ ๋ ์ด์ด ๊ตฌ์กฐ๊ฐ ๊น๊ฒ ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ต๋๋ค.
์์: 'Base', 'Theme', 'Component'์ ๋ํด ๋ณ๋์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ๋ ๋์ , 'Theme'๊ณผ 'Component'๊ฐ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์๋ค๋ฉด ๊ฒฐํฉํ ์ ์์ต๋๋ค.
2. ์ ํ์ ๋จ์ํํ๊ธฐ
๋ณต์กํ ์ ํ์๋ ๋ช ์์ฑ ๊ณ์ฐ ์๋๋ฅผ ๋ฆ์ถ ์ ์์ต๋๋ค. ๊ฐ๋ฅํ๋ฉด ๋ ๊ฐ๋จํ ์ ํ์๋ฅผ ์ฌ์ฉํ์ธ์. ์ง๋์น๊ฒ ๊ตฌ์ฒด์ ์ธ ์ ํ์๋ฅผ ํผํ๊ณ ๊น๊ฒ ์ค์ฒฉ๋ ์ ํ์ ๋์ ํด๋์ค ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
์์: .container div p { ... }
๋์ .container-text { ... }
๋ฅผ ์ฌ์ฉํ์ธ์.
3. ์ค๋ณต ์คํ์ผ ํผํ๊ธฐ
์ฌ๋ฌ ๋ ์ด์ด์ ๊ฑธ์น ์ค๋ณต ์คํ์ผ์ ๋ถํ์ํ ๊ณ์ฐ์ ์ด๋ํ ์ ์์ต๋๋ค. ์คํ์ผ์ด ์ ์ ๋ฆฌ๋์ด ์๊ณ ๋ค๋ฅธ ๋ ์ด์ด์ ์ค๋ณต๋ ์คํ์ผ์ด ์๋์ง ํ์ธํ์ธ์. CSS ๋ฆฐํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต ์คํ์ผ์ ์๋ณํ๊ณ ์ ๊ฑฐํ์ธ์.
์์: 'Base' ๋ ์ด์ด์์ font-size๋ฅผ ์ ์ํ๋ค๋ฉด, ํน๋ณํ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด 'Theme' ๋ ์ด์ด์์ ๋ค์ ์ ์ํ์ง ๋ง์ธ์.
4. content-visibility: auto
์ฌ์ฉํ๊ธฐ
content-visibility: auto
CSS ์์ฑ์ ํ๋ฉด ๋ฐ ์ฝํ
์ธ ๊ฐ ๋ทฐ๋ก ์คํฌ๋กค๋ ๋๊น์ง ๋ ๋๋ง์ ๊ฑด๋๋ฐ์ด ๋ ๋๋ง ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๋ ์์๊ฐ ๋ง์ ๊ธด ํ์ด์ง์ ํนํ ํจ๊ณผ์ ์
๋๋ค. ์ด ์์ฑ์ ํ์ด์ง์์ ์ฒ์์๋ ๋ณด์ด์ง ์๋ ์น์
์ ์ ์ฉํ์ธ์.
5. CSS Containment ํ์ฉํ๊ธฐ
CSS Containment๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ด์ง์ ์ผ๋ถ๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ์คํ์ผ ๋ณ๊ฒฝ์ ์ํฅ์ ํน์ ์์ญ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค. ์ด๋ ๋ถํ์ํ ๋ฆฌํ์ธํธ์ ๋ ์ด์์ ๊ณ์ฐ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. contain
์์ฑ์ ์ฌ์ฉํ์ฌ ์์์ ํฌํจ ์ ํ์ ์ง์ ํ์ธ์. ์ผ๋ฐ์ ์ธ ๊ฐ์๋ layout
, paint
, strict
๊ฐ ์์ต๋๋ค.
6. ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ฐ ์ต์ ํํ๊ธฐ
ํฐ ์ด๋ฏธ์ง์ ๊ธฐํ ์์ฐ์ ๋ ๋๋ง ์ฑ๋ฅ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์์ถํ๊ณ ์ ์ ํ ํ์(์: WebP)์ ์ฌ์ฉํ์ฌ ์ต์ ํํ์ธ์. ์ฒ์์๋ ๋ณด์ด์ง ์๋ ์ด๋ฏธ์ง์๋ ์ง์ฐ ๋ก๋ฉ(lazy loading)์ ์ฌ์ฉํ์ธ์.
7. CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๊ณ ๋ คํ๊ธฐ (์ฃผ์ ํ์)
CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ์คํ์ผ์ ๋ค๋ฃฐ ๋์ ๊ฐ์ ํน์ ์ํฉ์์ ์ฑ๋ฅ ์ด์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ JavaScript ๋ฒ๋ค ํฌ๊ธฐ ์ฆ๊ฐ ๋ฐ ๋ฐํ์ ์ค๋ฒํค๋์ ๊ฐ์ ์ ์ฌ์ ์ธ ๋จ์ ๋ ์์ต๋๋ค. CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฑํํ๊ธฐ ์ ์ ํ์์ฑ์ ์ ์คํ๊ฒ ํ๊ฐํ์ธ์.
8. ์ค์ CSS ์ฐ์ ์ฒ๋ฆฌํ๊ธฐ
์ด๊ธฐ ๋ทฐํฌํธ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ํ์์ ์ธ CSS๋ฅผ ์๋ณํ๊ณ ์ด๋ฅผ HTML์ ์ง์ ์ธ๋ผ์ธ์ผ๋ก ํฌํจ์ํค์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ๋ถ CSS ํ์ผ์ด ๋ก๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ฆ์ ํ์ด์ง ๋ ๋๋ง์ ์์ํ ์ ์์ต๋๋ค. ๋๋จธ์ง CSS ๋ก๋ฉ์ ์ด๊ธฐ ๋ ๋๋ง ์ดํ๋ก ๋ฏธ๋ฃจ์ธ์.
9. ๋ธ๋ผ์ฐ์ ์บ์ฑ ํ์ฉํ๊ธฐ
CSS ํ์ผ์ด ๋ธ๋ผ์ฐ์ ์ ์ํด ์ฌ๋ฐ๋ฅด๊ฒ ์บ์๋๋๋ก ํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ์ ๋ํ ์์ฒญ ์๊ฐ ์ค์ด๋ค๊ณ ๋ก๋ฉ ์๊ฐ์ด ๊ฐ์ ๋ฉ๋๋ค. CSS ํ์ผ์ ์ ์ ํ ์บ์ ํค๋๋ฅผ ์ค์ ํ๋๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์ธ์.
10. CSS ์ถ์ ๋ฐ ์์ถํ๊ธฐ
๋ถํ์ํ ๊ณต๋ฐฑ๊ณผ ์ฃผ์์ ์ ๊ฑฐํ์ฌ CSS๋ฅผ ์ถ์ํ๊ณ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด์ธ์. Gzip ๋๋ Brotli๋ฅผ ์ฌ์ฉํ์ฌ CSS ํ์ผ์ ์์ถํ์ฌ ํฌ๊ธฐ๋ฅผ ๋์ฑ ์ค์ด์ธ์. ์ด๋ฌํ ๊ธฐ์ ์ ํนํ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฐ ์ฌ์ฉ์์๊ฒ ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ค์ ์ฌ๋ก ๋ฐ ์ผ์ด์ค ์คํฐ๋
CSS @layer ์ฑ๋ฅ ํ๋กํ์ผ๋ง์ด ์ด๋ป๊ฒ ์ ์ฉ๋ ์ ์๋์ง ๋ช ๊ฐ์ง ์ค์ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
์์ 1: ๋๊ท๋ชจ ์ด์ปค๋จธ์ค ์น์ฌ์ดํธ ์ต์ ํ
ํ ๋๊ท๋ชจ ์ด์ปค๋จธ์ค ์น์ฌ์ดํธ๋ ํนํ ์ ํ ๋ชฉ๋ก ํ์ด์ง์์ ๋ ๋๋ง ์๊ฐ์ด ๋๋ ค์ง๋ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์์ต๋๋ค. CSS๋ฅผ ํ๋กํ์ผ๋งํ์ฌ ๊ฐ๋ฐ์๋ค์ ๋ง์ ์์ ๋ ์ด์ด์ ๋ณต์กํ ์ ํ์๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ค์ ๋ ์ด์ด ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ๊ณ , ์ ํ์์ ๋ช ์์ฑ์ ์ค์ด๊ณ , ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๋ ๋๋ง ์๊ฐ์ ํฌ๊ฒ ๊ฐ์ ํ๊ณ ์ดํ๋ฅ ์ ์ค์ผ ์ ์์์ต๋๋ค.
์์ 2: ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA) ์ฑ๋ฅ ๊ฐ์
ํ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ์ฆ์ ๋ฆฌํ์ธํธ์ ๋ ์ด์์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ Chrome ๋ ๋๋ง ํจ๋์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์์๋ฅผ ์๋ณํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ CSS Containment๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์์๋ฅผ ๊ฒฉ๋ฆฌํ๊ณ ๋ถํ์ํ ๋ฆฌํ์ธํธ๋ฅผ ๋ฐฉ์งํ์ต๋๋ค. ๋ํ ์คํฌ๋กค ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด CSS ์ ๋๋ฉ์ด์ ์ ์ต์ ํํ์ต๋๋ค.
์์ 3: ๊ธ๋ก๋ฒ ๋ด์ค ๊ธฐ๊ด
๋ค์ํ ๋ ์์ธต์ ๊ฐ์ง ํ ๊ธ๋ก๋ฒ ๋ด์ค ๊ธฐ๊ด์ ์ฌ์ฉ์์ ์ง๋ฆฌ์ ์์น์ ๋ฐ๋ผ ํ์ด์ง ๋ก๋ ์๊ฐ์ด ๋ฌ๋ผ์ง๋ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ์ต๋๋ค. CSS๋ฅผ ๋ถ์ํ ๊ฒฐ๊ณผ, ํฌ๊ณ ์์ถ๋์ง ์์ CSS ํ์ผ์ด ๊ฐ๋ฐ๋์๊ตญ์ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฐ ์ฌ์ฉ์์๊ฒ ์ฃผ์ ๋ณ๋ชฉ ํ์์์ด ๋ฐํ์ก์ต๋๋ค. CSS ์ถ์ ๋ฐ ์์ถ(Gzip)์ ๊ตฌํํจ์ผ๋ก์จ ํ์ผ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ ์์น์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ์ฉ์์ ๋ก๋ฉ ์๊ฐ์ ๊ฐ์ ํ ์ ์์์ต๋๋ค.
CSS @layer ์ฑ๋ฅ ์ ์ง๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
CSS @layer ์ฑ๋ฅ ์ต์ ํ๋ ์ง์์ ์ธ ๊ณผ์ ์ ๋๋ค. ๋ค์์ ๋ฐ๋ผ์ผ ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค:
- ์ ๊ธฐ์ ์ผ๋ก CSS ํ๋กํ์ผ๋งํ๊ธฐ: ์ด ๊ฐ์ด๋์์ ์ค๋ช ํ ๋๊ตฌ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ ๊ธฐ์ ์ผ๋ก CSS๋ฅผ ํ๋กํ์ผ๋งํ๊ณ ์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ์ธ์.
- ์ฑ๋ฅ ์์ฐ ์ค์ ํ๊ธฐ: CSS์ ๋ํ ์ฑ๋ฅ ์์ฐ์ ์ค์ ํ๊ณ ์ฑ๋ฅ ์งํ๋ฅผ ๋ชจ๋ํฐ๋งํ์ฌ ์ด ์์ฐ ๋ด์ ๋จธ๋ฌด๋ฅด๋๋ก ํ์ธ์.
- CSS ๋ฆฐํฐ(Linter) ์ฌ์ฉํ๊ธฐ: CSS ๋ฆฐํฐ๋ ์ค๋ณต ์คํ์ผ ๋ฐ ์ง๋์น๊ฒ ๋ณต์กํ ์ ํ์์ ๊ฐ์ ์ผ๋ฐ์ ์ธ CSS ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ์ต์ ํ ํ๋ก์ธ์ค ์๋ํํ๊ธฐ: ๋น๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ CSS ์ถ์, ์์ถ ๋ฐ ์ต์ ํ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ธ์.
- ์ต์ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ ๋ณด ์ ์งํ๊ธฐ: ์ต์ CSS ์ฑ๋ฅ ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๊ธฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊พธ์คํ ์ต๋ํ์ธ์.
๊ฒฐ๋ก
CSS @layer๋ CSS๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง๋ง, ๋ ๋๋ง ์ฑ๋ฅ์ ๋ฏธ์น ์ ์๋ ์ ์ฌ์ ์ํฅ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. CSS๋ฅผ ํ๋กํ์ผ๋งํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ๊ณ , ์ด ๊ฐ์ด๋์ ์ค๋ช ๋ ์ต์ ํ ์ ๋ต์ ์ ์ฉํจ์ผ๋ก์จ, @layer ๊ตฌํ์ด ์ ์ง๋ณด์ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. CSS @layer ์ฑ๋ฅ ์ต์ ํ๋ ๊ฒฝ๊ณ์ฌ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ํ์ ์ด ํ์ํ ์ง์์ ์ธ ๊ณผ์ ์์ ๊ธฐ์ตํ์ธ์. ์ง์์ ์ผ๋ก CSS๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ฐ์ ํจ์ผ๋ก์จ ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ๋๋ฝ๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ ์ด์ด ์ฒ๋ฆฌ ๋ถ์์ ํ์ ๋ฐ์๋ค์ด๊ณ CSS ์ํคํ ์ฒ๋ฅผ ์๋ก์ด ์ฐจ์์ผ๋ก ๋์ด์ฌ๋ฆฌ์ธ์! ์ด ๊ฐ์ด๋์์ ๋ ผ์๋ ๊ธฐ์ ์ ๋ง์คํฐํจ์ผ๋ก์จ, ์ฌ์ฉ์์ ์์น๋ ์ฅ์น์ ๊ด๊ณ์์ด ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฅด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์น์ฌ์ดํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.