ํจ์จ์ ์ธ ์น์ฌ์ดํธ ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ CSS ์ธ๋ถ ๊ท์น ๊ตฌํ์ ๋ง์คํฐํ์ธ์. ๊ธ๋ก๋ฒ ์น ํ๋ก์ ํธ๋ฅผ ์ํ ์ฐ๊ฒฐ, ๊ตฌ์ฑ, ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํด ์์๋ณด์ธ์.
CSS ์ธ๋ถ ๊ท์น: ์ธ๋ถ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ์ํ ์ข ํฉ ๊ฐ์ด๋
์น ๊ฐ๋ฐ์ ์ธ๊ณ์์ CSS(Cascading Style Sheets)๋ ์น์ฌ์ดํธ์ ์๊ฐ์ ํํ์ ์ ์ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ธ๋ผ์ธ ๋ฐ ๋ด๋ถ CSS๊ฐ ๋น ๋ฅธ ์คํ์ผ๋ง ์๋ฃจ์ ์ ์ ๊ณตํ์ง๋ง, ์ธ๋ถ CSS ๊ท์น์ ํนํ ํฌ๊ณ ๋ณต์กํ ํ๋ก์ ํธ์์ ๊ฐ์ฅ ํจ์จ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๋๋ณด์ ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ ์ธ๋ถ CSS ๊ท์น์ ์ด์ , ๊ตฌํ ๋ฐฉ๋ฒ, ๊ธ๋ก๋ฒ ์น ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก ๋ฑ์ ์์ธํ ์ดํด๋ด ๋๋ค.
CSS ์ธ๋ถ ๊ท์น์ด๋ ๋ฌด์์ธ๊ฐ?
์ธ๋ถ CSS ๊ท์น์ ์น์ฌ์ดํธ์ ๋ชจ๋ CSS ์ ์ธ์ ํฌํจํ๋ ๋ณ๋์ ํ์ผ(.css ํ์ฅ์)์ ๋ง๋๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด ํ์ผ์ <head> ์น์
๋ด์ <link> ์์๋ฅผ ์ฌ์ฉํ์ฌ HTML ๋ฌธ์์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ฌํ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๋ ๋ ๊นจ๋ํ๊ณ ์ฒด๊ณ์ ์ธ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์น์ฌ์ดํธ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋จ์ํํฉ๋๋ค.
์์:
HTML (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Website</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Welcome to My Website</h1>
<p>This is a paragraph of text.</p>
</body>
</html>
CSS (styles.css):
body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
color: #333;
}
h1 {
color: #007bff;
text-align: center;
}
p {
line-height: 1.6;
}
์ธ๋ถ CSS ์ฌ์ฉ์ ์ด์
์ธ๋ถ CSS๋ฅผ ์ฌ์ฉํ๋ฉด ์น ๊ฐ๋ฐ์ ๋ง์ ์ด์ ์ด ์์ผ๋ฉฐ, ๋๋ถ๋ถ์ ํ๋ก์ ํธ์์ ์ ํธ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค:
- ํฅ์๋ ๊ตฌ์ฑ: CSS๋ฅผ HTML์์ ๋ถ๋ฆฌํ๋ฉด ๋ ๊นจ๋ํ๊ณ ๊ตฌ์กฐํ๋ ์ฝ๋๋ฒ ์ด์ค๊ฐ ๋ฉ๋๋ค. ์ด๋ ํนํ ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํต๋๋ค.
- ํฅ์๋ ์ ์ง ๊ด๋ฆฌ์ฑ: ์น์ฌ์ดํธ์ ์คํ์ผ์ ์ ๋ฐ์ดํธํด์ผ ํ ๋ CSS ํ์ผ๋ง ์์ ํ๋ฉด ๋ฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ HTML ํ์ด์ง์ ์๋์ผ๋ก ๋ฐ์๋์ด ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ ์ฝํฉ๋๋ค. ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ด ๋ธ๋๋ ์์์ ์ ๋ฐ์ดํธํด์ผ ํ๋ ์๋๋ฆฌ์ค๋ฅผ ์๊ฐํด๋ณด์ญ์์ค. ์ธ๋ถ CSS๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ณ๊ฒฝ ์ฌํญ์ ํ ํ์ผ์์๋ง ์ ์ฉํ๋ฉด ์ฆ์ ์ ์ฒด ์ฌ์ดํธ๊ฐ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- ์ฆ๊ฐ๋ ์ฌ์ฌ์ฉ์ฑ: ๋์ผํ CSS ํ์ผ์ ์ฌ๋ฌ HTML ํ์ด์ง์ ์ฐ๊ฒฐํ์ฌ ์ ์ฒด ์น์ฌ์ดํธ์์ ์ผ๊ด๋ ์คํ์ผ์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ด๋ ํต์ผ๋ ๋ธ๋๋ ์์ด๋ดํฐํฐ๋ฅผ ์ด์งํ๊ณ ์ค๋ณต์ ์ค์ ๋๋ค.
- ๋ ๋์ ์ฑ๋ฅ: ์ธ๋ถ CSS ํ์ผ์ ๋ธ๋ผ์ฐ์ ์ ์ํด ์บ์๋ ์ ์์ต๋๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ํ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด ๋ค๋ฅธ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ ๋ CSS ํ์ผ์ ๋ค์ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ ํ์ด์ง ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ๊ฐ์ ํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค. ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)๋ฅผ ํตํด CSS ํ์ผ์ ์ ๊ณตํ๋ฉด ์ฌ์ฉ์์ ์ง๋ฆฌ์ ์ผ๋ก ๋ ๊ฐ๊น์ด ์๋ฒ์์ ํ์ผ์ ์ ๋ฌํ์ฌ ์ฑ๋ฅ์ ๋์ฑ ์ต์ ํํฉ๋๋ค.
- SEO ์ด์ : ์ง์ ์ ์ธ ์์ ์์ธ์ ์๋์ง๋ง, ๋น ๋ฅธ ํ์ด์ง ๋ก๋ ์๊ฐ์ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ธฐ์ฌํ๋ฉฐ, ์ด๋ ๊ฐ์ ์ ์ผ๋ก ์น์ฌ์ดํธ์ ๊ฒ์ ์์ง ์์๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ต์ ํ๋ CSS ํ์ผ์ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ์น์ฌ์ดํธ์ ๊ธฐ์ฌํ๋ฉฐ, ์ด๋ ๊ฒ์ ์์ง์ ์ฃผ์ ๊ณ ๋ ค ์ฌํญ์ ๋๋ค.
- ํ์ : ์ธ๋ถ CSS๋ ๊ฐ๋ฐ์์ ๋์์ด๋ ๊ฐ์ ํ์ ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. ๋ณ๋์ ํ์ผ์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ํ์์ด ์๋ก์ ์ฝ๋๋ฅผ ๋ฐฉํดํ์ง ์๊ณ ๋์์ ํ๋ก์ ํธ์ ๋ค๋ฅธ ์ธก๋ฉด์์ ์์ ํ ์ ์์ต๋๋ค. Git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๊ด์ฌ์ฌ์ ๋ช ํํ ๋ถ๋ฆฌ๋ก ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค.
CSS ์ธ๋ถ ๊ท์น ๊ตฌํํ๊ธฐ
์ธ๋ถ CSS ๊ท์น์ ๊ตฌํํ๋ ๊ฒ์ ๊ฐ๋จํฉ๋๋ค. ๋ค์์ ๋จ๊ณ๋ณ ๊ฐ์ด๋์ ๋๋ค:
- CSS ํ์ผ ์์ฑ:
.cssํ์ฅ์๋ฅผ ๊ฐ์ง ์ ํ์ผ(์:styles.css)์ ๋ง๋ญ๋๋ค. ํ์ผ์ ๋ชฉ์ ์ ๋ฐ์ํ๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ ์ ํํ์ญ์์ค. ์๋ฅผ ๋ค์ด,global.css๋ ์ ์ฒด ์น์ฌ์ดํธ์ ๊ธฐ๋ณธ ์คํ์ผ์ ํฌํจํ ์ ์๊ณ ,product-page.css๋ ์ ํ ํ์ด์ง์ ํน์ ํ ์คํ์ผ์ ํฌํจํ ์ ์์ต๋๋ค. - CSS ์ ์ธ ์์ฑ: ๋ชจ๋ CSS ์ ์ธ์ ์ด ํ์ผ์ ์ถ๊ฐํฉ๋๋ค. ๋ช ํ์ฑ์ ์ํด ์ ์ ํ ๊ตฌ๋ฌธ๊ณผ ์์์ ์ฌ์ฉํ์ญ์์ค. ์ฝ๋ ๊ตฌ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด Sass๋ Less์ ๊ฐ์ CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
- HTML์ CSS ํ์ผ ์ฐ๊ฒฐ: HTML ๋ฌธ์์
<head>์น์ ๋ด์<link>์์๋ฅผ ์ถ๊ฐํฉ๋๋ค.rel์์ฑ์"stylesheet"๋ก,type์์ฑ์"text/css"๋ก ์ค์ ํ๊ณ (HTML5์์๋ ํ์๋ ์๋),href์์ฑ์ CSS ํ์ผ์ ๊ฒฝ๋ก๋ก ์ค์ ํฉ๋๋ค.
์์:
<link rel="stylesheet" href="styles.css">
์ฐธ๊ณ : href ์์ฑ์ ์๋ ๊ฒฝ๋ก ๋๋ ์ ๋ ๊ฒฝ๋ก๊ฐ ๋ ์ ์์ต๋๋ค. ์๋ ๊ฒฝ๋ก(์: styles.css)๋ HTML ํ์ผ์ ์์น์ ์๋์ ์
๋๋ค. ์ ๋ ๊ฒฝ๋ก(์: /css/styles.css ๋๋ https://www.example.com/css/styles.css)๋ CSS ํ์ผ์ ์ ์ฒด URL์ ์ง์ ํฉ๋๋ค.
์ธ๋ถ CSS ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์ธ๋ถ CSS์ ์ด์ ์ ๊ทน๋ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค:
- ํ์ผ ์ด๋ฆ ์ง์ ๊ท์น: ์ค๋ช
์ ์ด๊ณ ์ผ๊ด๋ ํ์ผ ์ด๋ฆ์ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด CSS ํ์ผ์ ์ฝ๊ฒ ์๋ณํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์์:
reset.css,global.css,typography.css,layout.css,components.css. ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ BEM(Block, Element, Modifier) ๋๋ OOCSS(Object-Oriented CSS)์ ๊ฐ์ ๋ชจ๋์ CSS ์ํคํ ์ฒ ์ฌ์ฉ์ ๊ณ ๋ คํ์ญ์์ค. - ํ์ผ ๊ตฌ์ฑ: CSS ํ์ผ์ ๋
ผ๋ฆฌ์ ์ธ ํด๋๋ก ๊ตฌ์ฑํ์ญ์์ค. ์๋ฅผ ๋ค์ด,
cssํด๋์ ๋ค๋ฅธ ๋ชจ๋, ์ปดํฌ๋ํธ ๋๋ ๋ ์ด์์์ ์ํ ํ์ ํด๋๋ฅผ ๋ ์ ์์ต๋๋ค. ์ด ๊ตฌ์กฐ๋ ๊นจ๋ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋๊ท๋ชจ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ์๋ฅผ ์๊ฐํด๋ณด์ญ์์ค. CSS๋core/,components/,pages/,themes/์ ๊ฐ์ ํด๋๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. - CSS ์ด๊ธฐํ: ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์ ์ผ๊ด๋ ์คํ์ผ๋ง์ ๋ณด์ฅํ๊ธฐ ์ํด CSS ์ด๊ธฐํ(์: Normalize.css ๋๋ ์ฌ์ฉ์ ์ ์ ์ด๊ธฐํ)๋ฅผ ์ฌ์ฉํ์ญ์์ค. CSS ์ด๊ธฐํ๋ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ์คํ์ผ๋ง์ ์ ๊ฑฐํ์ฌ ์์ ๋ง์ ์คํ์ผ์ ๋ํ ๊นจ๋ํ ์ํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ถ์ ๋ฐ ์์ถ: ๋ถํ์ํ ๋ฌธ์(์: ๊ณต๋ฐฑ, ์ฃผ์)๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด CSS ํ์ผ์ ์ถ์ํ๊ณ Gzip ๋๋ Brotli๋ฅผ ์ฌ์ฉํ์ฌ ์์ถํ์ฌ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ํ์ผ ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ค์ด๋ก๋ ์๊ฐ์ด ๋นจ๋ผ์ง๊ณ ์น์ฌ์ดํธ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค. UglifyCSS ๋ฐ CSSNano์ ๊ฐ์ ๋๊ตฌ๋ ์ด ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค.
- ์บ์ฑ: ์๋ฒ๊ฐ CSS ํ์ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ์บ์ํ๋๋ก ๊ตฌ์ฑํ์ญ์์ค. ์ด๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ๋ ํ์ผ์ ๋ก์ปฌ์ ์ ์ฅํ์ฌ ์์ฒญ ์๋ฅผ ์ค์ด๊ณ ํ์ด์ง ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์ ์ ํ
Cache-Controlํค๋๋ฅผ ์ค์ ํ์ฌ ๋ธ๋ผ์ฐ์ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ํ์ฉํ์ญ์์ค. - CDN (์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ) ์ฌ์ฉ: ์ ์ธ๊ณ ์ฌ์ฉ์๊ฐ CSS ํ์ผ์ ๋น ๋ฅด๊ฒ ์ก์ธ์คํ ์ ์๋๋ก CDN์ ํตํด ํ์ผ์ ๋ฐฐํฌํ์ญ์์ค. CDN์ ์ฌ๋ฌ ์์น์ ์๋ฒ์ ํ์ผ ์ฌ๋ณธ์ ์ ์ฅํ์ฌ ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ์์ ํ์ผ์ ์ ๋ฌํฉ๋๋ค. ์ด๋ ํนํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์ง์ฐ ์๊ฐ์ ํฌ๊ฒ ์ค์ด๊ณ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ์ธ๊ธฐ ์๋ CDN ์ ๊ณต์ ์ฒด๋ก๋ Cloudflare, Amazon CloudFront, Akamai๊ฐ ์์ต๋๋ค.
- ๋ฆฐํ : CSS ๋ฆฐํฐ(์: Stylelint)๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฉ ํ์ค์ ์ ์ฉํ๊ณ ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ์๋ณํ์ญ์์ค. ๋ฆฐํฐ๋ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ฝ๋ ํ์ง๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ค๋ฅ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํด ๋น๋ ํ๋ก์ธ์ค์ ๋ฆฐํ ์ ํตํฉํ์ญ์์ค.
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ: ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ๋ฐ ์ฅ์น์ ์ ์ํ๋ ๋ฐ์ํ ๋์์ธ์ ๋ง๋์ญ์์ค. ์ด๋ ๋ฐ์คํฌํฑ, ํ๋ธ๋ฆฟ, ํด๋ํฐ์์ ์น์ฌ์ดํธ๊ฐ ๋ณด๊ธฐ ์ข๊ณ ์ ์๋ํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋ชจ๋ฐ์ผ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ๊ณ ๋ คํ์ฌ ์์ ํ๋ฉด์ ์คํ์ผ๋ถํฐ ์์ํ์ฌ ํฐ ํ๋ฉด์ผ๋ก ์ ์ง์ ์ผ๋ก ํฅ์์ํค์ญ์์ค.
- ์ฑ๋ฅ ์ต์ ํ: ์ฑ๋ฅ์ ์ํด CSS ์ฝ๋๋ฅผ ์ต์ ํํ์ญ์์ค. ์ง๋์น๊ฒ ๋ณต์กํ ์ ํ์ ์ฌ์ฉ์ ํผํ๊ณ ,
!important์ฌ์ฉ์ ์ต์ํํ๊ณ , ์ฌ์ฉํ์ง ์๋ CSS ๊ท์น์ ์ ๊ฑฐํ์ญ์์ค. ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ ๊ทธ์ ๋ฐ๋ผ CSS๋ฅผ ์ต์ ํํ์ญ์์ค. - ์ ๊ทผ์ฑ: CSS ์ฝ๋๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ํ์ญ์์ค. ์๋งจํฑ HTML์ ์ฌ์ฉํ๊ณ , ์ถฉ๋ถํ ์์ ๋๋น๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ฝํ ์ธ ๋ฅผ ์ดํดํ๋ ๋ฐ ํ์์ ์ธ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด CSS๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. WCAG(Web Content Accessibility Guidelines)์ ๊ฐ์ ์ ๊ทผ์ฑ ์ง์นจ์ ๋ฐ๋ฅด์ญ์์ค.
- ๋ฒค๋ ํ๋ฆฌํฝ์ค: ๋ฒค๋ ํ๋ฆฌํฝ์ค๋ ๋๋ฌผ๊ฒ ์ฌ์ฉํ์ญ์์ค. ์ต์ ๋ธ๋ผ์ฐ์ ๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ฆฌํฝ์ค ์์ด ํ์ค CSS ์์ฑ์ ์ง์ํฉ๋๋ค. Autoprefixer์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๋ฐ๋ผ ๋ฒค๋ ํ๋ฆฌํฝ์ค๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ์ญ์์ค.
ํผํด์ผ ํ ์ผ๋ฐ์ ์ธ ์ค์
์ธ๋ถ CSS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ ์ด์ ์ด ์์ง๋ง ํผํด์ผ ํ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ค์๊ฐ ์์ต๋๋ค:
!important๋จ์ฉ:!important๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ฉด CSS ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ๋๋ฒ๊น ํ๊ธฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค. ์ด๋ ์์ฐ์ค๋ฌ์ด ์บ์ค์ผ์ด๋ ๋ฐ ๋ช ์๋ ๊ท์น์ ์ฌ์ ์ํ์ฌ ์์์น ๋ชปํ ๋์์ ์ ๋ฐํฉ๋๋ค. ๋๋ฌผ๊ฒ ๊ทธ๋ฆฌ๊ณ ์ ๋์ ์ผ๋ก ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ์ญ์์ค.- ์ธ๋ผ์ธ ์คํ์ผ: ๊ฐ๋ฅํ ํ ์ธ๋ผ์ธ ์คํ์ผ ์ฌ์ฉ์ ํผํ์ญ์์ค. ์ด๋ ์ธ๋ถ CSS์ ๋ชฉ์ ์ ๋ฌด๋๋จ๋ฆฌ๊ณ ์น์ฌ์ดํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
- ์ค๋ณต๋ CSS: ์ฌ๋ฌ ํ์ผ์ ๊ฑธ์ณ CSS ์ฝ๋๋ฅผ ์ค๋ณตํ์ง ๋ง์ญ์์ค. ์ด๋ ํ์ผ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ณ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ๊ณตํต ์คํ์ผ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํด๋์ค๋ ๋ชจ๋๋ก ์ถ์ถํ์ฌ ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ์ญ์์ค.
- ๋ถํ์ํ ์ ํ์: ์ง๋์น๊ฒ ๊ด๋ฒ์ํ ์ ํ์ ๋์ ๊ตฌ์ฒด์ ์ธ ์ ํ์๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ CSS ์ฝ๋๋ฅผ ๋ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ์ ์ฒด ์ ํ์(
*)๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. - ๋ธ๋ผ์ฐ์ ํธํ์ฑ ๋ฌด์: ํธํ์ฑ์ ํ์ธํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์ ์น์ฌ์ดํธ๋ฅผ ํ ์คํธํ์ญ์์ค. BrowserStack๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ์ฅ์น์์ ์น์ฌ์ดํธ๋ฅผ ํ ์คํธํ์ญ์์ค.
- CSS ์ ์ฒ๋ฆฌ๊ธฐ ๋ฏธ์ฌ์ฉ: CSS ์ ์ฒ๋ฆฌ๊ธฐ(Sass๋ Less ๋ฑ)๋ ๋ณ์, ๋ฏน์ค์ธ, ์ค์ฒฉ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์ ํ๋ฆ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ CSS ์ฝ๋๋ฅผ ๋ ์ฒด๊ณ์ ์ด๊ณ , ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ณ , ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
- ๋ฌธ์ํ ๋ถ์กฑ: ๋ค๋ฅธ ๊ฐ๋ฐ์(๊ทธ๋ฆฌ๊ณ ๋ฏธ๋์ ์์ )๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๋๋ก CSS ์ฝ๋๋ฅผ ๋ฌธ์ํํ์ญ์์ค. ์ฃผ์์ ์ฌ์ฉํ์ฌ ๋ณต์กํ ์ ํ์, ๋ฏน์ค์ธ ๋๋ ๋ชจ๋์ ์ค๋ช ํ์ญ์์ค.
๊ณ ๊ธ ๊ธฐ์
์ธ๋ถ CSS์ ๊ธฐ๋ณธ์ ์ต์ํด์ง๋ฉด ์์ ํ๋ฆ๊ณผ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋์ฑ ํฅ์์ํค๊ธฐ ์ํ ๋ช ๊ฐ์ง ๊ณ ๊ธ ๊ธฐ์ ์ ํ์ํ ์ ์์ต๋๋ค:
- CSS ๋ชจ๋: CSS ๋ชจ๋์ CSS ๊ท์น์ ๋ฒ์๋ฅผ ํน์ ์ปดํฌ๋ํธ๋ก ํ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ์ด๋ฆ ์ถฉ๋์ ๋ฐฉ์งํ๊ณ ๋๊ท๋ชจ ํ๋ก์ ํธ์์ CSS๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. CSS ๋ชจ๋์ ์ข ์ข React ๋ฐ Vue.js์ ๊ฐ์ JavaScript ํ๋ ์์ํฌ์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
- CSS-in-JS: CSS-in-JS๋ JavaScript ํ์ผ ๋ด์ ์ง์ CSS ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ์คํ์ผ์ ์ปดํฌ๋ํธ์ ํจ๊ป ๋ฐฐ์นํ์ฌ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ์งํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค. ์ธ๊ธฐ ์๋ CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ styled-components์ Emotion์ด ์์ต๋๋ค.
- ํฌ๋ฆฌํฐ์ปฌ CSS: ํฌ๋ฆฌํฐ์ปฌ CSS๋ ์น์ฌ์ดํธ์ ์คํฌ๋กค ์์ด ๋ณผ ์ ์๋ ๋ถ๋ถ(above-the-fold) ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ํ์ํ CSS์ ๋๋ค. ํฌ๋ฆฌํฐ์ปฌ CSS๋ฅผ HTML ๋ฌธ์์ ์ง์ ์ธ๋ผ์ธ์ผ๋ก ํฌํจํ๋ฉด ์ด๊ธฐ ์ฝํ ์ธ ๋ฅผ ๋ ๋นจ๋ฆฌ ๋ ๋๋งํ์ฌ ์น์ฌ์ดํธ์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ์ฝ๋ ๋ถํ : ์ฝ๋ ๋ถํ ์ CSS ์ฝ๋๋ฅผ ํ์์ ๋ฐ๋ผ ๋ก๋๋๋ ๋ ์์ ๋ฉ์ด๋ฆฌ๋ก ๋๋๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ ํ์ฌ ํ์ด์ง์ ํ์ํ CSS๋ง ๋ก๋ํ์ฌ ์น์ฌ์ดํธ์ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์น์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํ ๋๋ ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ณ ๋ ค ์ฌํญ์ ์ผ๋์ ๋์ด์ผ ํฉ๋๋ค:
- ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ฐ๋(RTL) ์ธ์ด: ์น์ฌ์ดํธ๊ฐ ์๋์ด๋ ํ๋ธ๋ฆฌ์ด์ ๊ฐ์ RTL ์ธ์ด๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ RTL ๋ ์ด์์์ ์ํ ๋ณ๋์ CSS ํ์ผ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. CSS ๋
ผ๋ฆฌ์ ์์ฑ(์:
margin-left๋์margin-inline-start)์ ์ฌ์ฉํ์ฌ CSS ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ฐ๊ธฐ ๋ฐฉํฅ์ ๋ ์ ์ ์ํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. RTLCSS์ ๊ฐ์ ๋๊ตฌ๋ LTR CSS์์ RTL CSS๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค. - ํ์งํ: CSS ์ฝ๋๊ฐ ๋ค๋ฅธ ์ธ์ด์ ๋ฌธํ์ ์ํด ์ด๋ป๊ฒ ์ํฅ์ ๋ฐ์์ง ๊ณ ๋ คํ์ญ์์ค. ์๋ฅผ ๋ค์ด, ๋ค๋ฅธ ์ธ์ด์ ๋ํด ๊ธ๊ผด ํฌ๊ธฐ์ ์ค ๋์ด๋ฅผ ์กฐ์ ํด์ผ ํ ์ ์์ต๋๋ค. ๋ํ ์์ ์ ํธ๋์ ์ด๋ฏธ์ง์ ๋ฌธํ์ ์ฐจ์ด์ ์ ์ํ์ญ์์ค.
- ๋ฌธ์ ์ธ์ฝ๋ฉ: CSS ์ฝ๋๊ฐ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ฌ๋ฐ๋ฅธ ๋ฌธ์ ์ธ์ฝ๋ฉ(์: UTF-8)์ ์ฌ์ฉํ์ญ์์ค. HTML ๋ฌธ์์์
<meta charset="UTF-8">ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ง์ ํ์ญ์์ค. - ๊ตญ์ ์ฌ์ฉ์๋ฅผ ์ํ ์ ๊ทผ์ฑ: ์ธ์ด๋ ๋ฌธํ์ ๊ด๊ณ์์ด ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ๊ทผํ ์ ์๋๋ก ํ์ญ์์ค. WCAG(Web Content Accessibility Guidelines)์ ๊ฐ์ ์ ๊ทผ์ฑ ์ง์นจ์ ๋ฐ๋ฅด์ญ์์ค.
๊ฒฐ๋ก
CSS ์ธ๋ถ ๊ท์น์ ์น ๊ฐ๋ฐ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ผ๋ก, ๊ตฌ์ฑ, ์ ์ง ๊ด๋ฆฌ์ฑ ๋ฐ ์ฑ๋ฅ ๋ฉด์์ ์๋นํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ด๋์์ ์ค๋ช ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด CSS ๋ฆฌ์์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ํ๋ฅญํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ณ ํ์ง ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ธ๋ถ CSS ๊ท์น์ ์ฑํํ๋ ๊ฒ์ ํนํ ๋ณต์กํ๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ ๋ชจ๋ ํ๋ ์น ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํ์์ ์ ๋๋ค. ์ง์ ์ผ๋ก ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋ค๊ธฐ ์ํด ๊ตฌ์ฑ, ์ฑ๋ฅ ๋ฐ ์ ๊ทผ์ฑ์ ์ฐ์ ์ํ๋ ๊ฒ์ ๊ธฐ์ตํ์ญ์์ค.