์น ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ํจ์จ์ ์ธ ํ์ , ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ฑ์ ์ํด CSS ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๊ตฌํํ๋ ํฌ๊ด์ ์ธ ๊ฐ์ด๋์ ๋๋ค. ๋ค์ํ ์ ๋ต, ๋๊ตฌ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
CSS ๋ฒ์ ๊ด๋ฆฌ: ํ์ ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์ค๋๋ ์ ๋น ๋ฅด๊ฒ ๋ณํํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ํจ๊ณผ์ ์ธ ํ์ ๊ณผ ์ ์ง ๊ด๋ฆฌ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์น ํ์ด์ง์ ์คํ์ผ์ ์ง์ ํ๋ ์ธ์ด์ธ CSS๋ ์์ธ๋ ์๋๋๋ค. CSS์ ๊ฐ๋ ฅํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๊ตฌํํ๋ ๊ฒ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ๊ณ , ํจ๊ณผ์ ์ผ๋ก ํ์ ํ๋ฉฐ, ์ฝ๋๋ฒ ์ด์ค์ ์ฅ๊ธฐ์ ์ธ ๊ฑด์ ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ CSS ๋ฒ์ ๊ด๋ฆฌ์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ฑ๊ณต์ ์ธ ๊ตฌํ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก, ์ ๋ต ๋ฐ ๋๊ตฌ๋ฅผ ๋ค๋ฃน๋๋ค.
CSS์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ด์
Git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (VCS)์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ์ฌ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆฌ๊ณ , ์์ ์ฌํญ์ ๋น๊ตํ๋ฉฐ, ๋ค๋ฅธ ์ฌ๋๊ณผ ์ํํ๊ฒ ํ์ ํ ์ ์๋๋ก ํฉ๋๋ค. CSS ๊ฐ๋ฐ์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์์ ์ธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์ : ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ์๋ก์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฎ์ด์ฐ์ง ์๊ณ ๋์ผํ CSS ํ์ผ์์ ๋์์ ์์ ํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ก ์ถ์ : ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ธฐ๋ก๋์ด CSS ์ฝ๋๋ฒ ์ด์ค์ ์ ์ฒด ๊ธฐ๋ก์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ํน์ ์์ ์ฌํญ์ด ์ธ์ , ์ ์ด๋ฃจ์ด์ก๋์ง ์๋ณํ ์ ์์ต๋๋ค.
- ๋๋๋ฆฌ๊ธฐ ๊ฐ๋ฅ์ฑ: ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฒ๊ทธ๋ฅผ ์ ๋ฐํ๊ฑฐ๋ ๋ ์ด์์์ ์์์ํค๋ ๊ฒฝ์ฐ CSS์ ์ด์ ๋ฒ์ ์ผ๋ก ์ฝ๊ฒ ๋๋๋ฆด ์ ์์ต๋๋ค.
- ๋ธ๋์นญ ๋ฐ ๋ณํฉ: ์ ๊ธฐ๋ฅ์ด๋ ์คํ์ ์ํด ๋ณ๋์ ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒฉ๋ฆฌํ๊ณ ์ค๋น๊ฐ ๋๋ฉด ๋ฉ์ธ ์ฝ๋๋ฒ ์ด์ค์ ๋ค์ ๋ณํฉํ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ฝ๋ ํ์ง: ๋ฒ์ ๊ด๋ฆฌ๋ ์ฝ๋ ๊ฒํ ๋ฐ ํ์ ๊ฐ๋ฐ์ ์ฅ๋ คํ์ฌ ๋ ๋์ ํ์ง์ CSS๋ก ์ด์ด์ง๋๋ค.
- ๋๋ฒ๊น ๊ฐ์ํ: ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ์ฌ CSS ๊ด๋ จ ๋ฌธ์ ์ ์์ธ์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์๋ณํฉ๋๋ค.
- ์ฌํด ๋ณต๊ตฌ: ์ค์๋ก ์ธํ ๋ฐ์ดํฐ ์์ค์ด๋ ์์์ผ๋ก๋ถํฐ CSS ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ณดํธํฉ๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ํ
Git์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ฉฐ CSS ๊ฐ๋ฐ์ ์ ๊ทน ๊ถ์ฅ๋ฉ๋๋ค. Mercurial ๋ฐ Subversion๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ต์ ๋ ์์ง๋ง Git์ ์ธ๊ธฐ์ ๊ด๋ฒ์ํ ๋๊ตฌ๋ฅผ ํตํด ๋๋ถ๋ถ์ ํ๋ก์ ํธ์์ ์ ํธ๋๋ ์ ํ์ ๋๋ค.
Git: ์ ๊ณ ํ์ค
Git์ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ผ๋ก, ๊ฐ ๊ฐ๋ฐ์๊ฐ ๋ก์ปฌ ๋จธ์ ์ ์ ์ฒด ์ ์ฅ์ ์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ์ด๋ฅผ ํตํด ์คํ๋ผ์ธ ์์ ๊ณผ ๋ ๋น ๋ฅธ ์ปค๋ฐ ์๋๊ฐ ๊ฐ๋ฅํฉ๋๋ค. Git์ ๋ํ ํ๋ฐํ ์ปค๋ฎค๋ํฐ์ ์จ๋ผ์ธ์์ ์ฌ์ฉํ ์ ์๋ ํ๋ถํ ๋ฆฌ์์ค๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค.
CSS์ ๋ํ Git ์ ์ฅ์ ์ค์
CSS ํ๋ก์ ํธ์ ๋ํ Git ์ ์ฅ์๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Git ์ ์ฅ์ ์ด๊ธฐํ: ํฐ๋ฏธ๋์์ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ฌ
git init๋ช ๋ น์ ์คํํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด Git ์ ์ฅ์๋ฅผ ํฌํจํ๋ ํ๋ก์ ํธ์ ์.git๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค. .gitignoreํ์ผ ์์ฑ: ์ด ํ์ผ์ ์์ ํ์ผ, ๋น๋ ์ํฐํฉํธ, node_modules ๋ฑ Git์์ ๋ฌด์ํด์ผ ํ๋ ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค. CSS ํ๋ก์ ํธ์ ์ํ .gitignore ํ์ผ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.node_modules/.DS_Store*.logdist/(๋๋ ๋น๋ ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ)
- CSS ํ์ผ์ ์ ์ฅ์์ ์ถ๊ฐ:
git add .๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ์ ๋ชจ๋ CSS ํ์ผ์ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํฉ๋๋ค. ๋๋git add styles.css๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. - ๋ณ๊ฒฝ ์ฌํญ ์ปค๋ฐ:
git commit -m "Initial commit: Added CSS files"๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ค๋ช ๋ฉ์์ง์ ํจ๊ป ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค. - ์๊ฒฉ ์ ์ฅ์ ์์ฑ: GitHub, GitLab ๋๋ Bitbucket๊ณผ ๊ฐ์ Git ํธ์คํ ์๋น์ค์ ์ ์ฅ์๋ฅผ ์์ฑํฉ๋๋ค.
- ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๊ฒฐ:
git remote add origin [์๊ฒฉ ์ ์ฅ์ URL]๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๊ฒฐํฉ๋๋ค. - ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์์ ํธ์:
git push -u origin main(๋๋ ์ด์ ๋ฒ์ ์ Git์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐgit push -u origin master) ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํฉ๋๋ค.
CSS ๊ฐ๋ฐ์ ์ํ ๋ธ๋์นญ ์ ๋ต
๋ธ๋์นญ์ Git์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ผ๋ก, ๋ณ๋์ ๊ฐ๋ฐ ๋ผ์ธ์ ์์ฑํ ์ ์์ต๋๋ค. ์ ๊ธฐ๋ฅ, ๋ฒ๊ทธ ์์ ๋๋ ์คํ์ ๋ฉ์ธ ์ฝ๋๋ฒ ์ด์ค์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์ฌ๋ฌ ๋ธ๋์นญ ์ ๋ต์ด ์์ผ๋ฉฐ, ๋ค์์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ ๋ต์ ๋๋ค.
Gitflow
Gitflow๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๊ฒฉํ ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ํ๋ ๋ธ๋์นญ ๋ชจ๋ธ์
๋๋ค. main (๋๋ master) ๋ฐ develop์ ๋ ๊ฐ์ง ์ฃผ์ ๋ธ๋์น๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ฅ ๋ธ๋์น๋ develop ๋ธ๋์น์์ ์์ฑ๋๊ณ , ๋ฆด๋ฆฌ์ค ๋ธ๋์น๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ค๋นํ๊ธฐ ์ํด develop ๋ธ๋์น์์ ์์ฑ๋ฉ๋๋ค. ํซํฝ์ค ๋ธ๋์น๋ ํ๋ก๋์
์์ ๊ธด๊ธ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด main ๋ธ๋์น์์ ์์ฑ๋ฉ๋๋ค.
GitHub Flow
GitHub Flow๋ ์ง์์ ์ผ๋ก ๋ฐฐํฌ๋๋ ํ๋ก์ ํธ์ ์ ํฉํ ๋ ๊ฐ๋จํ ๋ธ๋์นญ ๋ชจ๋ธ์
๋๋ค. ๋ชจ๋ ๊ธฐ๋ฅ ๋ธ๋์น๋ main ๋ธ๋์น์์ ์์ฑ๋ฉ๋๋ค. ๊ธฐ๋ฅ์ด ์๋ฃ๋๋ฉด main ๋ธ๋์น๋ก ๋ค์ ๋ณํฉ๋์ด ํ๋ก๋์
์ ๋ฐฐํฌ๋ฉ๋๋ค.
ํธ๋ ํฌ ๊ธฐ๋ฐ ๊ฐ๋ฐ
ํธ๋ ํฌ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ๊ฐ๋ฐ์๊ฐ main ๋ธ๋์น์ ์ง์ ์ปค๋ฐํ๋ ๋ธ๋์นญ ๋ชจ๋ธ์
๋๋ค. ์ด ๊ฒฝ์ฐ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์์์ํค์ง ์๋๋ก ๋์ ์์ค์ ๊ท์จ๊ณผ ์๋ํ๋ ํ
์คํธ๊ฐ ํ์ํฉ๋๋ค. ๊ธฐ๋ฅ ํ ๊ธ์ ์ฌ์ฉํ์ฌ ๋ณ๋์ ๋ธ๋์น ์์ด ํ๋ก๋์
์์ ์ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
์์: ์น์ฌ์ดํธ์ CSS์ ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. GitHub Flow๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
main์์feature/new-header-styles๋ผ๋ ์ ๋ธ๋์น๋ฅผ ๋ง๋ญ๋๋ค.feature/new-header-styles๋ธ๋์น์์ CSS ๋ณ๊ฒฝ์ ์ํํฉ๋๋ค.- ์ค๋ช ๋ฉ์์ง์ ํจ๊ป ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค.
- ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํฉ๋๋ค.
- ๋ธ๋์น๋ฅผ
main์ ๋ณํฉํ๊ธฐ ์ํด ํ ์์ฒญ์ ์์ฑํฉ๋๋ค. - ํ์์๊ฒ ์ฝ๋ ๊ฒํ ๋ฅผ ์์ฒญํฉ๋๋ค.
- ์ฝ๋ ๊ฒํ ์ ํผ๋๋ฐฑ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๋ธ๋์น๋ฅผ
main์ ๋ณํฉํฉ๋๋ค. - ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก๋์ ์ ๋ฐฐํฌํฉ๋๋ค.
์ปค๋ฐ ๋ฉ์์ง ๊ท์น
CSS ์ฝ๋๋ฒ ์ด์ค์ ๊ธฐ๋ก์ ์ดํดํ๋ ค๋ฉด ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ ๋ ๋ค์ ์ง์นจ์ ๋ฐ๋ฅด์ธ์.
- ์ค๋ช ์ ๋ชฉ ์ฌ์ฉ: ์ ๋ชฉ์ ์ปค๋ฐ์์ ์ด๋ฃจ์ด์ง ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๊ฐ๋ตํ ์์ฝ์ด์ด์ผ ํฉ๋๋ค.
- ์ ๋ชฉ์ ์งง๊ฒ ์ ์ง: 50์ ์ด๋ด์ ์ ๋ชฉ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ๋ช ๋ นํ ์ฌ์ฉ: ์ ๋ชฉ์ ๋ช ๋ นํ ๋์ฌ(์: โAddโ, โFixโ, โRefactorโ)๋ก ์์ํฉ๋๋ค.
- ์์ธํ ์ค๋ช ์ถ๊ฐ(์ ํ ์ฌํญ): ๋ณ๊ฒฝ ์ฌํญ์ด ๋ณต์กํ ๊ฒฝ์ฐ ์ ๋ชฉ ๋ค์ ์์ธํ ์ค๋ช ์ ์ถ๊ฐํฉ๋๋ค. ์ค๋ช ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ ์ด์ ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํด์ผ ํฉ๋๋ค.
- ์ ๋ชฉ๊ณผ ์ค๋ช ์ ๋น ์ค๋ก ๊ตฌ๋ถํฉ๋๋ค.
์ข์ ์ปค๋ฐ ๋ฉ์์ง ์์:
Fix: ํ์ CSS์ ์คํ ์์ Add: ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋ํ ๋ฐ์ํ ์คํ์ผ ๊ตฌํRefactor: ๋ ๋์ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํด CSS ๊ตฌ์กฐ ๊ฐ์
CSS ์ ์ฒ๋ฆฌ๊ธฐ ์ฌ์ฉ(Sass, Less, PostCSS)
Sass, Less ๋ฐ PostCSS์ ๊ฐ์ CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ ๋ณ์, ๋ฏน์ค์ธ ๋ฐ ํจ์์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ CSS์ ๊ธฐ๋ฅ์ ํ์ฅํฉ๋๋ค. CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ ๋๋ ์ ์ฒ๋ฆฌ๊ธฐ ์์ค ํ์ผ(์: .scss, .less)๊ณผ ์ปดํ์ผ๋ CSS ํ์ผ์ ๋ชจ๋ ๋ฒ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ ์ฒ๋ฆฌ๊ธฐ ํ์ผ ๋ฒ์ ๊ด๋ฆฌ
์ ์ฒ๋ฆฌ๊ธฐ ์์ค ํ์ผ์ CSS์ ๋ํ ์ฃผ์ ์ง์ค ์์ค์ด๋ฏ๋ก ๋ฒ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ฅผ ํตํด CSS ๋ ผ๋ฆฌ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆด ์ ์์ต๋๋ค.
์ปดํ์ผ๋ CSS ํ์ผ ๋ฒ์ ๊ด๋ฆฌ
์ปดํ์ผ๋ CSS ํ์ผ์ ๋ฒ์ ๊ด๋ฆฌํ ์ง ์ฌ๋ถ๋ ๋ ผ์์ ๋์์ ๋๋ค. ์ผ๋ถ ๊ฐ๋ฐ์๋ ์ปดํ์ผ๋ CSS ํ์ผ์ ๋ฒ์ ๊ด๋ฆฌ์์ ์ ์ธํ๊ณ ๋น๋ ํ๋ก์ธ์ค ์ค์ ์์ฑํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ปดํ์ผ๋ CSS ํ์ผ์ด ํญ์ ์ต์ ์ ์ฒ๋ฆฌ๊ธฐ ์์ค ํ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ ๋ชจ๋ ๋ฐฐํฌ์์ ๋น๋ ํ๋ก์ธ์ค๊ฐ ํ์ํ์ง ์๋๋ก ์ปดํ์ผ๋ CSS ํ์ผ์ ๋ฒ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
์ปดํ์ผ๋ CSS ํ์ผ์ ๋ฒ์ ๊ด๋ฆฌํ๋๋ก ์ ํํ ๊ฒฝ์ฐ ์ ์ฒ๋ฆฌ๊ธฐ ์์ค ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค.
์: Git๊ณผ ํจ๊ป Sass ์ฌ์ฉ
- ํจํค์ง ๊ด๋ฆฌ์(์:
npm install -g sass)๋ฅผ ์ฌ์ฉํ์ฌ Sass๋ฅผ ์ค์นํฉ๋๋ค. - Sass ํ์ผ ์์ฑ(์:
style.scss). - Sass ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ Sass ํ์ผ์ CSS๋ก ์ปดํ์ผํฉ๋๋ค(์:
sass style.scss style.css). - Sass ํ์ผ(
style.scss)๊ณผ ์ปดํ์ผ๋ CSS ํ์ผ(style.css)์ ๋ชจ๋ Git ์ ์ฅ์์ ์ถ๊ฐํฉ๋๋ค. - Sass ์ปดํ์ผ๋ฌ์์ ์์ฑ๋ ์์ ํ์ผ์ ์ ์ธํ๋๋ก
.gitignoreํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค. - ์ค๋ช ๋ฉ์์ง์ ํจ๊ป ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค.
ํ์ ์ ๋ต
ํจ๊ณผ์ ์ธ ํ์ ์ ์ฑ๊ณต์ ์ธ CSS ๊ฐ๋ฐ์ ํ์์ ์ ๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์์ ํจ๊ณผ์ ์ผ๋ก ํ์ ํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฝ๋ ๊ฒํ : CSS ๋ณ๊ฒฝ ์ฌํญ์ด ๊ณ ํ์ง์ด๊ณ ์ฝ๋ฉ ํ์ค์ ์ค์ํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํฉ๋๋ค.
- ์คํ์ผ ๊ฐ์ด๋: CSS์ ๋ํ ์ฝ๋ฉ ๊ท์น ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ์ํ๋ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ค์ ํฉ๋๋ค.
- ํ์ด ํ๋ก๊ทธ๋๋ฐ: ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ์ง์์ ๊ณต์ ํ๊ณ ์ฝ๋ ํ์ง์ ํฅ์์ํค๋ ๊ฐ์น ์๋ ๋ฐฉ๋ฒ์ด ๋ ์ ์์ต๋๋ค.
- ์ ๊ธฐ์ ์ธ ์ปค๋ฎค๋์ผ์ด์ : CSS ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๋ ผ์ํ๊ณ ๋ชจ๋ ์ฌ๋์ด ๋์ผํ ํ์ด์ง์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ์๊ณผ ์ ๊ธฐ์ ์ผ๋ก ์ํตํฉ๋๋ค.
์ฝ๋ ๊ฒํ
์ฝ๋ ๊ฒํ ๋ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ๊ฒํ ํ์ฌ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์ฝ๋๊ฐ ํน์ ํ์ง ํ์ค์ ์ถฉ์กฑํ๋์ง ํ์ธํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ฝ๋ ๊ฒํ ๋ ์ฝ๋ ํ์ง์ ๊ฐ์ ํ๊ณ , ๋ฒ๊ทธ๋ฅผ ์ค์ด๊ณ , ํ ๊ตฌ์ฑ์ ๊ฐ์ ์ง์์ ๊ณต์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. GitHub ๋ฐ GitLab๊ณผ ๊ฐ์ ์๋น์ค๋ ํ ์์ฒญ(๋๋ ๋ณํฉ ์์ฒญ)์ ํตํด ๋ด์ฅ๋ ์ฝ๋ ๊ฒํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์คํ์ผ ๊ฐ์ด๋
์คํ์ผ ๊ฐ์ด๋๋ CSS์ ๋ํ ์ฝ๋ฉ ๊ท์น ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ์ํ๋ ๋ฌธ์์ ๋๋ค. ์คํ์ผ ๊ฐ์ด๋๋ CSS ์ฝ๋๊ฐ ์ผ๊ด๋๊ณ , ์ฝ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ๋๋ก ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์คํ์ผ ๊ฐ์ด๋๋ ๋ค์ ์ฃผ์ ๋ฅผ ๋ค๋ฃจ์ด์ผ ํฉ๋๋ค.
- CSS ํด๋์ค ๋ฐ ID์ ๋ํ ๋ช ๋ช ๊ท์น
- CSS ํ์ ๋ฐ ๋ค์ฌ์ฐ๊ธฐ
- CSS ์ํคํ ์ฒ ๋ฐ ๊ตฌ์ฑ
- CSS ์ ์ฒ๋ฆฌ๊ธฐ์ ์ฌ์ฉ
- CSS ํ๋ ์์ํฌ์ ์ฌ์ฉ
๋ง์ ํ์ฌ๊ฐ CSS ์คํ์ผ ๊ฐ์ด๋๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ๊ณต์ ํฉ๋๋ค. ์๋ก๋ Google์ HTML/CSS ์คํ์ผ ๊ฐ์ด๋ ๋ฐ Airbnb์ CSS/Sass ์คํ์ผ ๊ฐ์ด๋๊ฐ ์์ต๋๋ค. ์ด๋ ์์ฒด ์คํ์ผ ๊ฐ์ด๋๋ฅผ ๋ง๋๋ ๋ฐ ํ๋ฅญํ ๋ฆฌ์์ค๊ฐ ๋ ์ ์์ต๋๋ค.
CSS ์ํคํ ์ฒ ๋ฐ ๊ตฌ์ฑ
์ ๊ตฌ์ฑ๋ CSS ์ํคํ ์ฒ๋ ๋๊ท๋ชจ CSS ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ธ๊ธฐ ์๋ CSS ์ํคํ ์ฒ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค.
- OOCSS (๊ฐ์ฒด ์งํฅ CSS): OOCSS๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ CSS ๋ชจ๋์ ๋ง๋๋ ๊ฒ์ ์ฅ๋ คํ๋ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค.
- BEM (Block, Element, Modifier): BEM์ CSS ํด๋์ค๋ฅผ ๊ตฌ์กฐํํ๊ณ ๊ตฌ์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช ๋ช ๊ท์น์ ๋๋ค.
- SMACSS (CSS์ฉ ํ์ฅ ๊ฐ๋ฅ ๋ฐ ๋ชจ๋์ ์ํคํ ์ฒ): SMACSS๋ CSS ๊ท์น์ base, layout, module, state ๋ฐ theme์ ๋ค์ฏ ๊ฐ์ง ๋ฒ์ฃผ๋ก ๋๋๋๋ค.
- Atomic CSS (Functional CSS): Atomic CSS๋ ์๊ณ ๋จ์ผ ๋ชฉ์ ์ CSS ํด๋์ค๋ฅผ ๋ง๋๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.
BEM(๋ธ๋ก, ์์, ์์ ์) ์์
BEM์ CSS ํด๋์ค๋ฅผ ๊ตฌ์กฐํํ๊ณ ๊ตฌ์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ์ธ๊ธฐ ์๋ ๋ช ๋ช ๊ท์น์ ๋๋ค. BEM์ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ๋ธ๋ก: ์์ฒด์ ์ผ๋ก ์๋ฏธ๊ฐ ์๋ ๋ ๋ฆฝ ์คํํ ์ํฐํฐ์ ๋๋ค.
- ์์: ๋ ๋ฆฝ ์คํํ ์๋ฏธ๊ฐ ์๊ณ ์๋ฏธ๋ก ์ ์ผ๋ก ๋ธ๋ก์ ์ฐ๊ฒฐ๋ ๋ธ๋ก์ ์ผ๋ถ์ ๋๋ค.
- ์์ ์: ๋ชจ์์ด๋ ๋์์ ๋ณ๊ฒฝํ๋ ๋ธ๋ก ๋๋ ์์์ ํ๋๊ทธ์ ๋๋ค.
์์:
<div class="button">
<span class="button__text">Click Me</span>
</div>
.button {
/* ๋ธ๋ก ์คํ์ผ */
}
.button__text {
/* ์์ ์คํ์ผ */
}
.button--primary {
/* ์์ ์ ์คํ์ผ */
}
์๋ํ๋ CSS ๋ฆฐํ ๋ฐ ์์ ์ง์
์๋ํ๋ CSS ๋ฆฐํ ๋ฐ ์์ ์ง์ ๋๊ตฌ๋ ์ฝ๋ฉ ํ์ค์ ์ ์ฉํ๊ณ ์ฝ๋ ํ์ง์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ๋ค์์ ํฌํจํ์ฌ ์ผ๋ฐ์ ์ธ CSS ์ค๋ฅ๋ฅผ ์๋์ผ๋ก ์๋ณํ๊ณ ์์ ํ ์ ์์ต๋๋ค.
- ์๋ชป๋ CSS ๊ตฌ๋ฌธ
- ์ฌ์ฉํ์ง ์๋ CSS ๊ท์น
- ์ผ๊ด์ฑ ์๋ ์์
- ๋๋ฝ๋ ๊ณต๊ธ์ ์ฒด ์ ๋์ฌ
์ธ๊ธฐ ์๋ CSS ๋ฆฐํ ๋ฐ ์์ ์ง์ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Stylelint: ๊ฐ๋ ฅํ๊ณ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ CSS ๋ฆฐํฐ์ ๋๋ค.
- Prettier: CSS, JavaScript ๋ฐ ๊ธฐํ ์ธ์ด๋ฅผ ์ง์ํ๋ ํธ๊ฒฌ ์๋ ์ฝ๋ ํฌ๋งทํฐ์ ๋๋ค.
์ด๋ฌํ ๋๊ตฌ๋ Gulp ๋๋ Webpack๊ณผ ๊ฐ์ ๋น๋ ๋๊ตฌ ๋๋ IDE ํ์ฅ์ ํตํด ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ํตํฉํ ์ ์์ต๋๋ค.
์: Stylelint ์ฌ์ฉ
- ํจํค์ง ๊ด๋ฆฌ์(์:
npm install --save-dev stylelint stylelint-config-standard)๋ฅผ ์ฌ์ฉํ์ฌ Stylelint๋ฅผ ์ค์นํฉ๋๋ค. - ๋ฆฐํ
๊ท์น์ ์ ์ํ๊ธฐ ์ํด Stylelint ๊ตฌ์ฑ ํ์ผ(
.stylelintrc.json)์ ๋ง๋ญ๋๋ค. ํ์ค ๊ท์น์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.{ "extends": "stylelint-config-standard" } stylelint "**/*.css"๋ช ๋ น์ ์ฌ์ฉํ์ฌ CSS ํ์ผ์์ Stylelint๋ฅผ ์คํํฉ๋๋ค.- CSS ํ์ผ์ ์ ์ฅํ ๋๋ง๋ค Stylelint๋ฅผ ์๋์ผ๋ก ์คํํ๋๋ก IDE ๋๋ ๋น๋ ๋๊ตฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
CI/CD (์ง์์ ํตํฉ ๋ฐ ์ง์์ ๋ฐฐํฌ)
CI/CD(์ง์์ ํตํฉ ๋ฐ ์ง์์ ๋ฐฐํฌ)๋ ์ํํธ์จ์ด ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ ๊ดํ์ ๋๋ค. CI/CD๋ CSS ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ์๋์ ์์ ์ฑ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
CI/CD ํ์ดํ๋ผ์ธ์์ CSS ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ด Git ์ ์ฅ์์ ํธ์๋ ๋๋ง๋ค ์๋์ผ๋ก ๋ฆฐํ , ํ ์คํธ ๋ฐ ๋น๋๋ฉ๋๋ค. ํ ์คํธ์ ํต๊ณผํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์คํ ์ด์ง ๋๋ ํ๋ก๋์ ํ๊ฒฝ์ ์๋์ผ๋ก ๋ฐฐํฌ๋ฉ๋๋ค.
์ธ๊ธฐ ์๋ CI/CD ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Jenkins: ์คํ ์์ค ์๋ํ ์๋ฒ์ ๋๋ค.
- Travis CI: ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ CI/CD ์๋น์ค์ ๋๋ค.
- CircleCI: ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ CI/CD ์๋น์ค์ ๋๋ค.
- GitHub Actions: GitHub์ ๋ด์ฅ๋ CI/CD ์๋น์ค์ ๋๋ค.
- GitLab CI/CD: GitLab์ ๋ด์ฅ๋ CI/CD ์๋น์ค์ ๋๋ค.
๋ณด์ ๊ณ ๋ ค ์ฌํญ
CSS๋ ์ฃผ๋ก ์คํ์ผ๋ง ์ธ์ด์ด์ง๋ง ์ ์ฌ์ ์ธ ๋ณด์ ์ทจ์ฝ์ ์ ์ธ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ทจ์ฝ์ ์ค ํ๋๋ ์ฌ์ฉ์ ์ ๊ณต ๋ฐ์ดํฐ๊ฐ CSS ๊ท์น์ ์ฝ์ ๋ ๋ ๋ฐ์ํ ์ ์๋ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ (XSS)์ ๋๋ค. XSS ์ทจ์ฝ์ ์ ๋ฐฉ์งํ๋ ค๋ฉด CSS์์ ์ฌ์ฉํ๊ธฐ ์ ์ ํญ์ ์ฌ์ฉ์ ์ ๊ณต ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ธ์.
๋ํ ์ ์ฑ ์ฝ๋๋ฅผ ํฌํจํ ์ ์์ผ๋ฏ๋ก ์ธ๋ถ CSS ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ๋๋ ์ฃผ์ํ์ธ์. ์ ๋ขฐํ ์ ์๋ ์์ค์์๋ง CSS ๋ฆฌ์์ค๋ฅผ ํฌํจํฉ๋๋ค.
์ ๊ทผ์ฑ ๊ณ ๋ ค ์ฌํญ
CSS๋ ์น ์ฝํ ์ธ ์ ์ ๊ทผ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. CSS๋ฅผ ์์ฑํ ๋ ๋ค์ ์ ๊ทผ์ฑ ๊ณ ๋ ค ์ฌํญ์ ์ผ๋์ ๋์ญ์์ค.
- ์๋ฏธ๋ก ์ HTML ์ฌ์ฉ: ์ฝํ ์ธ ์ ๊ตฌ์กฐ์ ์๋ฏธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์๋ฏธ๋ก ์ HTML ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ด๋ฏธ์ง์ ๋ํ ๋์ฒด ํ
์คํธ ์ ๊ณต:
alt์์ฑ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง์ ๋ํ ๋์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. - ์ถฉ๋ถํ ์์ ๋๋น ๋ณด์ฅ: ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๋ฅผ ์ํด ํ ์คํธ์ ๋ฐฐ๊ฒฝ ๊ฐ์ ์์ ๋๋น๊ฐ ์ถฉ๋ถํ์ง ํ์ธํฉ๋๋ค.
- ARIA ์์ฑ ์ฌ์ฉ: ARIA ์์ฑ์ ์ฌ์ฉํ์ฌ ์์์ ์ญํ , ์ํ ๋ฐ ์์ฑ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ณด์กฐ ๊ธฐ์ ๋ก ํ ์คํธ: ํ๋ฉด ํ๋ ๊ธฐ์ ๊ฐ์ ๋ณด์กฐ ๊ธฐ์ ๋ก CSS๋ฅผ ํ ์คํธํ์ฌ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
์ค์ ์์ ๋ฐ ์ฌ๋ก ์ฐ๊ตฌ
๋ง์ ํ์ฌ์์ CSS ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ํ์ ์ ๋ต์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌํํ์ต๋๋ค. ๋ช ๊ฐ์ง ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- GitHub: GitHub๋ Gitflow์ ์ฝ๋ ๊ฒํ ๋ฅผ ์กฐํฉํ์ฌ CSS ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- Mozilla: Mozilla๋ ์คํ์ผ ๊ฐ์ด๋ ๋ฐ ์๋ํ๋ ๋ฆฐํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ CSS ํ์ง์ ๋ณด์ฅํฉ๋๋ค.
- Shopify: Shopify๋ ๋ชจ๋์ CSS ์ํคํ ์ฒ์ BEM ๋ช ๋ช ๊ท์น์ ์ฌ์ฉํ์ฌ CSS ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ด๋ฌํ ์์๋ฅผ ์ฐ๊ตฌํ์ฌ ์์ฒด ํ๋ก์ ํธ์์ CSS ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ํ์ ์ ๋ต์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ป์ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
CSS์ ๊ฐ๋ ฅํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๊ตฌํํ๋ ๊ฒ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ๊ณ , ํจ๊ณผ์ ์ผ๋ก ํ์ ํ๋ฉฐ, ์ฝ๋๋ฒ ์ด์ค์ ์ฅ๊ธฐ์ ์ธ ๊ฑด์ ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ด ๊ฐ์ด๋์ ์ค๋ช ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด CSS ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ์ํํ๊ณ ๊ณ ํ์ง์ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ CSS ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ ์ ํ ๋ธ๋์นญ ์ ๋ต์ ์ ํํ๊ณ , ๋ช ํํ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ , CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๊ณ , ์ฝ๋ ๊ฒํ ๋ฐ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ํตํด ํ๊ณผ ํ์ ํ๊ณ , ๋ฆฐํ ๋ฐ CI/CD ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌํ๋ก์ฐ๋ฅผ ์๋ํํ๋ ๊ฒ์ ์์ง ๋ง์ธ์. ์ด๋ฌํ ์ค์ฒ์ ํตํด ๊ฐ์ฅ ๋ณต์กํ CSS ํ๋ก์ ํธ๋ ํด๊ฒฐํ ์ ์์ต๋๋ค.