CSS @compress์ ์ ์ฌ๋ ฅ์ ํ๊ตฌํ์ฌ ํจ๊ณผ์ ์ธ ํ์ผ ํฌ๊ธฐ ์ถ์๋ฅผ ํตํ ์น ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์์๋ณด์ธ์. ๊ทธ ์ด์ , ๊ตฌํ ์ ๋ต ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฏธ์น๋ ์ํฅ์ ํ์ธํ์ธ์.
CSS @compress: ํ์ผ ํฌ๊ธฐ ์ถ์ ๋ฐ ์ต์ ํ์ ํ๋ช
๋์์์ด ์งํํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ฌ์ฉ์๋ค์ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ๊ณผ ์ํํ ์ํธ์์ฉ์ ์๊ตฌํฉ๋๋ค. ์ต์ ์ ์ฑ๋ฅ์ ๋ฌ์ฑํ๋ ๋ฐ ์์ด ์ค์ํ ์ธก๋ฉด ์ค ํ๋๋ CSS ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ต์ํํ๋ ๊ฒ์
๋๋ค. @compress ๊ท์น์ ํ์ฌ ํ์ค CSS ๊ธฐ๋ฅ์ ์๋์ง๋ง, ๋ฐ๋ณต์ ์ธ ์ฝ๋ ํจํด์ ์๋ณํ๊ณ ์์ถํ์ฌ CSS๋ฅผ ์๋์ผ๋ก ์ต์ ํํ๋ ๊ฐ๋ ฅํ ๊ฐ๋
์ ๋ํ๋
๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ @compress์ ์ ์ฌ๋ ฅ์ ํ๊ตฌํ๊ณ , ๊ทธ ์ฅ์ , ์ด๋ก ์ ๊ตฌํ์ ํ์ํ๋ฉฐ, CSS ์ต์ ํ๋ฅผ ์ํ ๋์ฒด ์ ๋ต์ ๊ฒํ ํฉ๋๋ค.
CSS ์ต์ ํ์ ํ์์ฑ
์น ํ์ด์ง ์คํ์ผ๋ง์ ๋ด๋นํ๋ CSS ํ์ผ์ ๋ณต์กํ ์คํ์ผ, ๊ณต๊ธ์ ์ฒด ์ ๋์ฌ ๋ฐ ์ค๋ณต ์ฝ๋๋ก ์ธํด ๋น ๋ฅด๊ฒ ๋น๋ํด์ง ์ ์์ต๋๋ค. ๋ ํฐ CSS ํ์ผ์ ๋ค์์ ์๋ฏธํฉ๋๋ค.
- ๋๋ฆฐ ํ์ด์ง ๋ก๋ ์๊ฐ: ๋ธ๋ผ์ฐ์ ๋ ๋ ํฐ ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํ๋ฏ๋ก ๋ ๋๋ง์ด ์ง์ฐ๋๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- ๋์ญํญ ์๋น ์ฆ๊ฐ: ๋ ํฐ ํ์ผ์ ๋ ๋ง์ ๋์ญํญ์ ์๋นํ์ฌ ์ฌ์ฉ์, ํนํ ๋ฐ์ดํฐ ์๊ธ์ ๊ฐ ์ ํ๋ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ์ฌ์ฉ์์ ๋ฐ์ดํฐ ๋น์ฉ ์ฆ๊ฐ๋ก ์ด์ด์ง๋๋ค.
- ์น์ฌ์ดํธ ์ฑ๋ฅ ์ ํ: ๋๋ฆฐ ๋ก๋ ์๊ฐ์ ๊ฒ์ ์์ง ์์์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊ฒ์ ์์ง์ ๋น ๋ฅด๊ฒ ๋ก๋๋๋ ์น์ฌ์ดํธ๋ฅผ ์ฐ์ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ๋ผ์ CSS ์ต์ ํ๋ ์ ์ธ๊ณ์ ์ผ๋ก ์ํํ๊ณ ํจ์จ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
@compress ๊ฐ๋
์๊ฐ
์ฌ๊ธฐ์ ๊ฐ๋
์ ์ผ๋ก @compress๋ก ํํ๋๋, CSS ์ฝ๋ ๋ด์์ ๋ฐ๋ณต๋๋ ํจํด์ ์๋์ผ๋ก ์๋ณํ๊ณ ์์ถํ ์ ์๋ CSS ๊ธฐ๋ฅ์ ์์ํด ๋ณด์ญ์์ค. ์ด๋ ๋ค์ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค.
- ํจํด ๊ฐ์ง: ์ ์ฒด CSS ์คํ์ผ์ํธ๋ฅผ ๋ถ์ํ์ฌ ๋ฐ๋ณต๋๋ CSS ์ ์ธ ๋ธ๋ก์ ์๋ณํฉ๋๋ค.
- ๋ณ์ ์์ฑ: ๋ฐ๋ณต๋๋ ๋ธ๋ก์ ์ ์ฅํ๊ธฐ ์ํด CSS ๋ณ์(์ฌ์ฉ์ ์ง์ ์์ฑ)๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
- ๋์ฒด: ์๋์ ๋ฐ๋ณต์ ์ธ ๋ธ๋ก์ ์๋ก ์์ฑ๋ CSS ๋ณ์์ ๋ํ ์ฐธ์กฐ๋ก ๋์ฒดํฉ๋๋ค.
@compress๋ ๋ค์ดํฐ๋ธ CSS ๊ท์น(ํ์ฌ CSS ์ฌ์ ๊ธฐ์ค)์ ์๋์ง๋ง, CSS ์ต์ ํ๊ฐ ๋์๊ฐ ์ ์๋ ๋ฐฉํฅ์ ๊ฐ๋ ฅํ๊ฒ ๋ณด์ฌ์ค๋๋ค. ์ฃผ์ ๋ชฉํ๋ ๊ฐ๋
์ฑ์ด๋ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฌ์ํ์ง ์๊ณ CSS ํ์ผ์ ์ ์ฒด ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์
๋๋ค.
์์: ๊ฐ๋
์ ์ธ @compress ์ฌ์ฉ๋ฒ
๋ค์ CSS ์ค๋ํซ์ ๊ณ ๋ คํด ๋ณด์ญ์์ค.
.button {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border-radius: 5px;
}
.alert {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border-radius: 5px;
margin-bottom: 15px;
}
.notification {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border-radius: 5px;
font-size: 14px;
}
background-color, color, padding, border-radius ์์ฑ์ ์ฌ๋ฌ ํด๋์ค์์ ๋ฐ๋ณต๋ฉ๋๋ค. ๊ฐ๋
์ ์ธ @compress๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๋์ผ๋ก ๋ณํ๋ ์ ์์ต๋๋ค.
:root {
--common-style: {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border-radius: 5px;
}
}
.button {
@compress --common-style;
}
.alert {
@compress --common-style;
margin-bottom: 15px;
}
.notification {
@compress --common-style;
font-size: 14px;
}
์ด ๊ฐ์์ ์์๋ @compress๊ฐ ์ฝ๋ ์ค๋ณต์ ๋ํญ ์ค์ฌ ๋ ์์ CSS ํ์ผ๋ก ์ด์ด์ง ์ ์๋ ์ ์ฌ๋ ฅ์ ๋ณด์ฌ์ค๋๋ค.
์๋ CSS ์์ถ์ ์ด์
@compress ๋๋ ์ ์ฌํ ๋ฉ์ปค๋์ฆ์ผ๋ก ๊ตฌํ๋๋ ์๋ CSS ์์ถ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ํ์ผ ํฌ๊ธฐ ๊ฐ์: ๊ฐ์ฅ ํ์คํ ์ด์ ์ CSS ํ์ผ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ์ค์ด๋ค์ด ๋ค์ด๋ก๋ ์๊ฐ์ด ๋จ์ถ๋๋ค๋ ๊ฒ์ ๋๋ค.
- ์ ์ง ๊ด๋ฆฌ์ฑ ํฅ์: ๊ณตํต ์คํ์ผ์ CSS ๋ณ์์ ์ค์ ์ง์คํํจ์ผ๋ก์จ ์น์ฌ์ดํธ ์ ์ฒด์์ ์คํ์ผ์ ์ผ๊ด๋๊ฒ ์ ๋ฐ์ดํธํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค. ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ์ฌ์ฉ๋๋ ๋ชจ๋ ์ธ์คํด์ค๊ฐ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- ๊ฐ๋ ์ฑ ํฅ์: ๋ณํ ๊ณผ์ ์ด ๋ณต์กํด ๋ณด์ผ ์ ์์ง๋ง, ๊ฒฐ๊ณผ ์ฝ๋๋ ๊ณต์ ์คํ์ผ๊ณผ ๊ฐ ์์์ ๋ํ ํน์ ์ฐจ์ด์ ์ ๊ฐ์กฐํจ์ผ๋ก์จ ๋ ์ฝ๊ธฐ ์ฌ์ธ ์ ์์ต๋๋ค.
- ๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ: ์์ถ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ฉด ๊ฐ๋ฐ์์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ ์ฝํ์ฌ ์น ๊ฐ๋ฐ์ ๋ค๋ฅธ ์ค์ํ ์ธก๋ฉด์ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ์ ๊ทผ์ฑ: ํ์ผ ํฌ๊ธฐ ๊ฐ์๋ ๋ก๋ฉ ์๊ฐ ๋จ์ถ์ผ๋ก ์ด์ด์ ธ, ํนํ ๊ฐ๋ฐ๋์๊ตญ์์ ์ธํฐ๋ท ์ฐ๊ฒฐ ์๋๊ฐ ๋๋ฆฐ ์ฌ์ฉ์์ ์ ๊ทผ์ฑ์ ํฅ์์ํต๋๋ค.
๊ณผ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
@compress์ ๊ฐ๋
์ ์ ๋งํ์ง๋ง, ์ฑ๊ณต์ ์ธ ๊ตฌํ์ ์ํด์๋ ๋ช ๊ฐ์ง ๊ณผ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ํธํ์ฑ: ๋นํ์ค ๊ธฐ๋ฅ์ธ
@compress๋ ์คํ ๊ฐ๋ฅ์ฑ์ ์ํด ๊ด๋ฒ์ํ ๋ธ๋ผ์ฐ์ ์ง์์ด ํ์ํฉ๋๋ค. ์ด๋ ํด๋ฆฌํ ๋๋@compress์ฝ๋๋ฅผ ํ์ค CSS๋ก ๋ณํํ๋ ์ ์ฒ๋ฆฌ ๋๊ตฌ๋ฅผ ํตํด ๋ฌ์ฑํ ์ ์์ต๋๋ค. - ํจํด ๊ฐ์ง์ ๋ณต์ก์ฑ: ๋ณต์กํ CSS ์คํ์ผ์ํธ์์ ์๋ฏธ ์๋ ํจํด์ ์๋ณํ๋ ๊ฒ์ ๊ณ์ฐ์ ์ผ๋ก ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ค์ ๋ฐ๋ณต๊ณผ ์ฐ์ฐํ ์ ์ฌ์ฑ์ ๊ตฌ๋ณํ ์ ์์ ๋งํผ ์ง๋ฅ์ ์ด์ด์ผ ํฉ๋๋ค.
- ๊ณผ๋ํ ์ต์ ํ์ ๊ฐ๋ฅ์ฑ: CSS๋ฅผ ๊ณต๊ฒฉ์ ์ผ๋ก ์์ถํ๋ฉด ์ง๋์น๊ฒ ์ผ๋ฐ์ ์ธ ์คํ์ผ์ด ๋์ด ๊ฐ๋ณ ์์๋ฅผ ์ฌ์ฉ์ ์ง์ ํ๊ธฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค. ์์ถ๊ณผ ์ ์ฐ์ฑ ์ฌ์ด์ ๊ท ํ์ด ํ์ํฉ๋๋ค.
- ๋๋ฒ๊น : CSS ๋ณ์๋ฅผ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํ ๋ ์คํ์ผ์ ์๋ ์ ์๋ก ๋ค์ ์ถ์ ํ๋ ๊ฒ์ด ๋ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ๊ฐ๋ ฅํ ๋๋ฒ๊น ๋๊ตฌ๊ฐ ํ์์ ์ผ ๊ฒ์ ๋๋ค.
CSS ์ต์ ํ๋ฅผ ์ํ ํ์ฌ ๋ชจ๋ฒ ์ฌ๋ก
@compress์ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ฑ์ฅ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์, CSS ์ต์ ํ๋ฅผ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ ๋ช ๊ฐ์ง ํ๋ฆฝ๋ ๊ธฐ์ ์ด ์์ต๋๋ค.
1. ์ต์ํ (Minification)
์ต์ํ๋ ๊ณต๋ฐฑ, ์ฃผ์ ๋ฐ ์ธ๋ฏธ์ฝ๋ก ๊ณผ ๊ฐ์ ๋ถํ์ํ ๋ฌธ์๋ฅผ CSS ์ฝ๋์์ ์ ๊ฑฐํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ CSS ๊ธฐ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค.
๋๊ตฌ:
- CSSNano: ๊ณ ๊ธ ์ต์ ํ ๊ธฐ์ ์ ์ ๊ณตํ๋ ์ธ๊ธฐ ์๋ CSS ์ต์ํ ๋๊ตฌ์ ๋๋ค.
- UglifyCSS: ๋ค์ํ ์ต์ ํ ์ต์ ์ ์ง์ํ๋ ๋ ๋ค๋ฅธ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ต์ํ ๋๊ตฌ์ ๋๋ค.
- ์จ๋ผ์ธ CSS ์ต์ํ ๋๊ตฌ: ์๋ง์ ์จ๋ผ์ธ ๋๊ตฌ๊ฐ CSS ์ฝ๋๋ฅผ ์ต์ํํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
2. ์์ถ (GZIP ๋ฐ Brotli)
GZIP ๋ฐ Brotli๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๊ธฐ ์ ์ CSS ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋๋ถ๋ถ์ ์น ์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก GZIP ์์ถ์ ์ง์ํ์ง๋ง, Brotli๋ ํจ์ฌ ๋ ๋์ ์์ถ๋ฅ ์ ์ ๊ณตํ์ง๋ง ์ถ๊ฐ ๊ตฌ์ฑ์ด ํ์ํ ์ ์์ต๋๋ค.
๊ตฌํ:
- ์๋ฒ ๊ตฌ์ฑ: ์น ์๋ฒ ๊ตฌ์ฑ(์: Apache, Nginx)์์ GZIP ๋๋ Brotli ์์ถ์ ํ์ฑํํฉ๋๋ค.
- ๋น๋ ๋๊ตฌ: Webpack ๋๋ Parcel๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ํ๋ก์ธ์ค์ ์์ถ์ ํตํฉํฉ๋๋ค.
3. ์ฝ๋ ๋ถํ
์ฝ๋ ๋ถํ ์ CSS ์ฝ๋๋ฅผ ํ์ํ ๋๋ง ๋ก๋๋๋ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์กฐ๊ฐ์ผ๋ก ๋๋๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ํนํ ๋ณต์กํ ์คํ์ผ์ํธ๋ฅผ ๊ฐ์ง ๋๊ท๋ชจ ์น์ฌ์ดํธ์ ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ ๋ต:
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ: ์น์ฌ์ดํธ์ ์ปดํฌ๋ํธ ๋๋ ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก CSS ํ์ผ์ ๋ถํ ํฉ๋๋ค.
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ: ๋ฏธ๋์ด ์ฟผ๋ฆฌ(์: ๋ฐ์คํฌํฑ ๋ฐ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋ํ ๋ค๋ฅธ ์คํ์ผ)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน์ CSS ํ์ผ์ ๋ก๋ํฉ๋๋ค.
4. CSS ๋ฆฐํ
CSS ๋ฆฐํฐ๋ ์ ์ฌ์ ์ธ ์ค๋ฅ, ๋ถ์ผ์น ๋ฐ ์คํ์ผ ์๋ฐ์ ๋ํด CSS ์ฝ๋๋ฅผ ๋ถ์ํฉ๋๋ค. ์ฝ๋ฉ ํ์ค์ ๊ฐ์ ํ๊ณ ๋ฌธ์ ๊ฐ ์๋ ํจํด์ ์๋ณํจ์ผ๋ก์จ ๋ฆฐํฐ๋ CSS ๋น๋ํ๋ฅผ ๋ฐฉ์งํ๊ณ ์ฝ๋ ํ์ง์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋๊ตฌ:
- Stylelint: ๊ด๋ฒ์ํ ๊ท์น๊ณผ ๊ตฌ์ฑ์ ์ง์ํ๋ ๊ฐ๋ ฅํ CSS ๋ฆฐํฐ์ ๋๋ค.
- CSSLint: CSS ์ฝ๋์์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ๋ฆฐํฐ์ ๋๋ค.
5. ์ฌ์ฉํ์ง ์๋ CSS ์ ๊ฑฐ
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ CSS ํ์ผ์ ํ์ผ ํฌ๊ธฐ ๋น๋ํ์ ๊ธฐ์ฌํ๋ ์ฌ์ฉํ์ง ์๋ ์คํ์ผ์ ์ถ์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ์ฉํ์ง ์๋ ์คํ์ผ์ ์๋ณํ๊ณ ์ ๊ฑฐํ๋ฉด ํ์ผ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ ์ข ์ข ์ต์ JavaScript ๋ฐ CSS ๋ฒ๋ค๋ง์์ "ํธ๋ฆฌ ์์ดํน"์ด๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค.
๋๊ตฌ:
- PurgeCSS: HTML, JavaScript ๋ฐ ๊ธฐํ ํ์ผ์ ๋ถ์ํ์ฌ ์ฌ์ฉํ์ง ์๋ CSS๋ฅผ ์ ๊ฑฐํ๋ ๋๊ตฌ์ ๋๋ค.
- UnCSS: ์ฌ์ฉํ์ง ์๋ CSS ์คํ์ผ์ ์๋ณํ๊ณ ์ ๊ฑฐํ๋ ๋ ๋ค๋ฅธ ๋๊ตฌ์ ๋๋ค.
6. CSS ๋ณ์(์ฌ์ฉ์ ์ง์ ์์ฑ) ํ์ฉ
CSS ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ์ผ์ํธ ์ ์ฒด์์ ์ฌ์ฉํ ์ ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ฝ๋ ์ค๋ณต์ ์ค์ผ ๋ฟ๋ง ์๋๋ผ ์คํ์ผ์ ์ ์ง ๊ด๋ฆฌํ๊ณ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
์์:
:root {
--primary-color: #007bff;
--font-size: 16px;
}
body {
color: var(--primary-color);
font-size: var(--font-size);
}
h1 {
color: var(--primary-color);
}
7. ํจ์จ์ ์ธ CSS ์ ํ์
ํจ์จ์ ์ธ CSS ์ ํ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์คํ์ผ์ ์์๋ฅผ ์ผ์น์ํค๋ ๋ฐ ์๋นํ๋ ์๊ฐ์ ์ค์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๊ณผ๋ํ๊ฒ ๊ตฌ์ฒด์ ์ธ ์ ํ์์ ๋ถํ์ํ ์ค์ฒฉ์ ํผํ์ญ์์ค.
๋ชจ๋ฒ ์ฌ๋ก:
- ์์ ์ด๋ฆ ๋์ ํด๋์ค ์ด๋ฆ ์ฌ์ฉ:
.my-class๋ ์ผ๋ฐ์ ์ผ๋กdiv๋ณด๋ค ๋น ๋ฆ ๋๋ค. - ์ ๋๋ฒ์ค ์ ํ์(*) ์ฌ์ฉ ํผํ๊ธฐ: ์ ๋๋ฒ์ค ์ ํ์๋ ๋งค์ฐ ๋นํจ์จ์ ์ผ ์ ์์ต๋๋ค.
- ์ ํ์๋ฅผ ๊ฐ๋ฅํ ํ ์งง๊ฒ ์ ์ง: ๋ถํ์ํ ์ค์ฒฉ ๋ฐ ํน์์ฑ์ ํผํ์ญ์์ค.
8. ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ฐ ์ต์ ํ
์ด ๋ฌธ์๋ CSS ์ต์ ํ์ ์ค์ ์ ๋์ง๋ง, ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ฐ ๋ํ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์์ถํ๊ณ ์ ์ ํ ํ์ผ ํ์(์: WebP)์ ์ฌ์ฉํ์ฌ ์ต์ ํํ๋ฉด ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
CSS ์ต์ ํ์ ๋ฏธ๋
์น ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ๋ CSS๋ฅผ ์ต์ ํํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ๋์์์ด ํ๊ตฌํ๊ณ ์์ต๋๋ค. @compress์ ๊ฐ์ ๊ธฐ๋ฅ์ ์์ง ๊ฐ๋
์ ์ด์ง๋ง, ์๋ CSS ์์ถ์ ์ํ ์ ๋งํ ๋ฐฉํฅ์ ์ ์ํฉ๋๋ค. ์๋ ์์ถ ์ธ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ ์ฌ์ ๋ฐ์ ์ด ์์ต๋๋ค.
- ๋ ์ง๋ฅ์ ์ธ CSS ๋ฆฐํฐ: CSS ์ฝ๋์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋์ผ๋ก ์๋ณํ๊ณ ์์ ํ ์ ์๋ ๋ฆฐํฐ.
- ๊ณ ๊ธ ์ฝ๋ ๋ถํ ๊ธฐ์ : CSS ์ฝ๋๋ฅผ ๋ ์๊ณ ํจ์จ์ ์ธ ์กฐ๊ฐ์ผ๋ก ๋ถํ ํ๊ธฐ ์ํ ๋ ์ ๊ตํ ์๊ณ ๋ฆฌ์ฆ.
- ๋จธ์ ๋ฌ๋๊ณผ์ ํตํฉ: ๋จธ์ ๋ฌ๋์ ์ฌ์ฉํ์ฌ ์ด๋ค CSS ์คํ์ผ์ด ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ์๋์ง ์์ธกํ๊ณ ๋ก๋ฉ ์ฐ์ ์์๋ฅผ ์ง์ ํฉ๋๋ค.
CSS ์ต์ ํ๋ฅผ ์ํ ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ
์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํด CSS๋ฅผ ์ต์ ํํ ๋๋ ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ๋ค์ํ ์ธํฐ๋ท ์๋: ์ฌ๋ฌ ์ง์ญ์ ์ฌ์ฉ์๋ ์ธํฐ๋ท ์๋๊ฐ ํฌ๊ฒ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋๋ฆฐ ์ฐ๊ฒฐ์์๋ ํฉ๋ฆฌ์ ์ธ ๋ก๋ฉ ์๊ฐ์ ๋ณด์ฅํ๋๋ก CSS๋ฅผ ์ต์ ํํ์ญ์์ค.
- ๋ชจ๋ฐ์ผ ์ฌ์ฉ: ๋ชจ๋ฐ์ผ ์ฌ์ฉ์ ์ ์ธ๊ณ ์ฌ๋ฌ ์ง์ญ์์ ๋๋ฆฌ ํผ์ ธ ์์ต๋๋ค. ๋ชจ๋ฐ์ผ ์ฐ์ ๋์์ธ์ ์ฐ์ ์ํ๊ณ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋ง๊ฒ CSS๋ฅผ ์ต์ ํํ์ญ์์ค.
- ๋ฐ์ดํฐ ๋น์ฉ: ๋ฐ์ดํฐ ๋น์ฉ์ ์ผ๋ถ ์ง์ญ์์ ์ธํฐ๋ท ์ ๊ทผ์ ์๋นํ ์ฅ๋ฒฝ์ด ๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์๋น๋ฅผ ์ค์ด๊ธฐ ์ํด CSS ํ์ผ ํฌ๊ธฐ๋ฅผ ์ต์ํํ์ญ์์ค.
- ํ์งํ: CSS ์คํ์ผ์ด ๋ค์ํ ์ธ์ด์ ์ง์ญ์ ๋ง๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ ํ์งํ๋์๋์ง ํ์ธํ์ญ์์ค. ์ฌ๊ธฐ์๋ ๋ค์ํ ๋ฌธ์ ์ธํธ ๋ฐ ์ฐ๊ธฐ ๋ฐฉํฅ์ ์์ฉํ๊ธฐ ์ํด ๊ธ๊ผด ํฌ๊ธฐ, ์ค ๋์ด ๋ฐ ๊ธฐํ ์คํ์ผ์ ์กฐ์ ํ๋ ๊ฒ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ ๊ทผ์ฑ: CSS๋ฅผ ์ ๊ทผ์ฑ์ ์ํด ์ต์ ํํ์ฌ ์์น์ ๊ด๊ณ์์ด ์ฅ์ ๊ฐ ์๋ ์ฌ๋๋ค๋ ์น์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๋ณด์ฅํ์ญ์์ค.
๊ฒฐ๋ก
CSS ์ต์ ํ๋ ์น ๊ฐ๋ฐ์ ์ค์ํ ์ธก๋ฉด์ผ๋ก, ์น์ฌ์ดํธ ์ฑ๋ฅ, ์ฌ์ฉ์ ๊ฒฝํ ๋ฐ ๊ธ๋ก๋ฒ ์ ๊ทผ์ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. @compress ๊ท์น์ ๊ฐ๋
์ ์ธ ์์ด๋์ด๋ก ๋จ์ ์์ง๋ง, ์๋ CSS ์์ถ์ ์ ์ฌ๋ ฅ์ ๊ฐ์กฐํฉ๋๋ค. ์ต์ํ, ์์ถ, ์ฝ๋ ๋ถํ ๋ฐ CSS ๋ฆฐํ
๊ณผ ๊ฐ์ ํ์ฌ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ตฌํํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ CSS ํ์ผ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์น ๊ธฐ์ ์ด ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ, ๋ฏธ๋์๋ CSS ์ต์ ํ์ ๋ํ ๋์ฑ ํ์ ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด ๋ฑ์ฅํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๋ฉฐ ์ ๊ทผ์ฑ ๋์ ์น์ฌ์ดํธ๋ฅผ ์ ๊ณตํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ ๋ต์ ์์ฉํ๊ณ CSS ์ต์ ํ์ ์ต์ ๋ฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ป์์ผ๋ก์จ ์น ๊ฐ๋ฐ์๋ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.