CSS ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํด์๊ณผ ๊ธ๋ก๋ฒ ์น ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ์ ์ค์ํ ์ญํ ์ ๋ํด ์์๋ณด์ธ์. ํจ์จ์ ์ธ ์บ์ฑ ์ ๋ต์ด ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ธ์.
CSS ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํด์: ๊ธ๋ก๋ฒ ์น ์ฑ๋ฅ์ ์ํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ ์ดํด
CSS ์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ ๋ฑ์ฅ์ ์ง์ ํ ๋ฐ์ํ ๋ฐ ์ ์ํ ์น ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๋ฐ ์์ด ์ค์ํ ๋์ฝ์ ์๋ฏธํฉ๋๋ค. ๋ทฐํฌํธ์ ์น์์ ๋ฐ์ํ๋ ๊ธฐ์กด ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ ๋ฌ๋ฆฌ, ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ์์๊ฐ ๋ถ๋ชจ ์ปจํ ์ด๋์ ํฌ๊ธฐ ๋ฐ ๊ธฐํ ํน์ฑ์ ๋ฐ์ํ๋๋ก ํฉ๋๋ค. ์ด ์ธ๋ฐํ ์ ์ด๋ ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ๋ทฐํฌํธ์ ๊ด๊ณ์์ด ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ๋ฐ ๋งฅ๋ฝ์์ ์๋ฒฝํ๊ฒ ์กฐ์ ๋๋ ๋์ฑ ๊ฐ๋ ฅํ๊ณ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๋์์ธ์ ๊ตฌ์ถํ ์ ์๋๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํด์์ ๊ธฐ๋ณธ ๋ฉ์ปค๋์ฆ๊ณผ, ์ค์ํ๊ฒ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ์ ์๋ฏธ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ๊ธ๋ก๋ฒ ๊ท๋ชจ์์ ์ต์ ์ ์น ์ฑ๋ฅ์ ๋ฌ์ฑํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ ํ๊ณผ ๋ฏธ๋ฌํ ์ฐจ์ด
์บ์ฑ์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ ์ ์ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ ํต์ฌ ๊ฐ๋ ์ ๊ฐ๋ตํ๊ฒ ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ์ฐฝ์ด ์๋ ํน์ HTML ์์(์ปจํ ์ด๋)์ ์น์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ์ผ์ ์ ์ฉํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ ๋ณต์กํ UI, ๋์์ธ ์์คํ ๋ฐ ํฌํจ๋ ์ปดํฌ๋ํธ์์ ์์์ ์คํ์ผ๋ง์ด ์ฃผ๋ณ ๋ ์ด์์๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์กฐ์ ๋์ด์ผ ํ ๋ ํนํ ํ์ ์ ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์ ์ฒด ๋๋น ๋ฐฐ๋, ๋ค์ค ์ด ๊ทธ๋ฆฌ๋ ๋๋ ์ข์ ์ฌ์ด๋๋ฐ ๋ฑ ๋ค์ํ ๋ ์ด์์์์ ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋ ์ ํ ์นด๋ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํด ๋ณด์ธ์. ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์นด๋๋ ์คํ์ผ ๋ณ๊ฒฝ์ ์ํ JavaScript ๊ฐ์ ์์ด๋ ์ด๋ฌํ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ปจํ ์ด๋ ํฌ๊ธฐ ๋ด์์ ์ต์์ ๋ชจ์์ ๊ฐ๋๋ก ํ์ดํฌ๊ทธ๋ํผ, ๊ฐ๊ฒฉ ๋ฐ ์ฌ์ง์ด ๋ ์ด์์์ ์๋์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
container-type(์: ๋๋น ๊ธฐ๋ฐ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐinline-size) ๋ฐ ํน์ ์ปจํ ์ด๋๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐcontainer-name์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์์๋ฅผ ์ ์ํฉ๋๋ค.- ์ปจํ
์ด๋์ ์ฟผ๋ฆฌ ๊ด๋ จ ์น์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ์ผ์ ์ ์ฉํ๊ธฐ ์ํด
@container๊ท์น์ ์ฌ์ฉํฉ๋๋ค.
์์:
.card {
container-type: inline-size;
}
@container (min-width: 400px) {
.card__title {
font-size: 1.5rem;
}
}
@container (min-width: 600px) {
.card {
display: flex;
align-items: center;
}
.card__image {
margin-right: 1rem;
}
}
์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํด์: ํ๋ก์ธ์ค
๋ธ๋ผ์ฐ์ ๊ฐ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋ ์คํ์ผ์ํธ๋ฅผ ๋ง๋๋ฉด ์ปจํ ์ด๋์ ํ์ฌ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค ์คํ์ผ์ ์ ์ฉํ ์ง ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ํด์ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ์ปจํ
์ด๋ ์์ ์๋ณ: ๋ธ๋ผ์ฐ์ ๋ ๋จผ์
container-type์ ์ค์ ํ์ฌ ์ปจํ ์ด๋๋ก ์ง์ ๋ ๋ชจ๋ ์์๋ฅผ ์๋ณํฉ๋๋ค. - ์ปจํ ์ด๋ ์น์ ์ธก์ : ๊ฐ ์ปจํ ์ด๋ ์์์ ๋ํด ๋ธ๋ผ์ฐ์ ๋ ๊ด๋ จ ์น์(์: inline-size, block-size)๋ฅผ ์ธก์ ํฉ๋๋ค. ์ด ์ธก์ ์ ๋ณธ์ง์ ์ผ๋ก ๋ฌธ์ ํ๋ฆ ๋ด์์์ ์์ ์์น์ ์์ ์์์ ๋ ์ด์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ์ปจํ
์ด๋ ์ฟผ๋ฆฌ ์กฐ๊ฑด ํ๊ฐ: ๋ธ๋ผ์ฐ์ ๋ ์ธก์ ๋ ์ปจํ
์ด๋ ์น์์ ๋ํด ๊ฐ
@container๊ท์น์ ์ง์ ๋ ์กฐ๊ฑด์ ํ๊ฐํฉ๋๋ค. - ์ผ์นํ๋ ์คํ์ผ ์ ์ฉ: ์ผ์นํ๋
@container๊ท์น์ ์คํ์ผ์ด ํด๋น ์์์ ์ ์ฉ๋ฉ๋๋ค.
์ด ํด์ ํ๋ก์ธ์ค๋ ํนํ ๋ง์ ์ปจํ ์ด๋ ์์์ ๋ณต์กํ ์ค์ฒฉ ์ฟผ๋ฆฌ๊ฐ ์๋ ํ์ด์ง์์ ๊ณ์ฐ ์ง์ฝ์ ์ผ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์์ ์ํธ ์์ฉ(์ฐฝ ํฌ๊ธฐ ์กฐ์ , ์คํฌ๋กค), ๋์ ์ฝํ ์ธ ๋ก๋ ๋๋ ๊ธฐํ ๋ ์ด์์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ปจํ ์ด๋ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ ๋๋ง๋ค ์ด๋ฌํ ์ฟผ๋ฆฌ๋ฅผ ๋ค์ ํ๊ฐํด์ผ ํฉ๋๋ค.
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ์ ์ค์ํ ์ญํ
์ด๊ฒ์ด ๋ฐ๋ก ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ์ด ํ์์ ์ธ ์ด์ ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์บ์ฑ์ ์์ฃผ ์ก์ธ์ค๋๋ ๋ฐ์ดํฐ ๋๋ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ํฅํ ์์ฒญ์ ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ ๋๋ค. ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ๋งฅ๋ฝ์์ ์บ์ฑ์ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฅํ๋ ๋ฅ๋ ฅ์ ์๋ฏธํฉ๋๋ค.
์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ ์บ์ฑ์ด ์ค์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
- ์ฑ๋ฅ: ์ ์ฌ์ ์ธ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๊ณ์ฐํ๋ ๊ฒ์ ์๋นํ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ด๋ํ ์ ์์ต๋๋ค. ์ ๊ตฌํ๋ ์บ์๋ ์ค๋ณต ๊ณ์ฐ์ ํผํ์ฌ ๋ ๋๋ง ์๋๋ฅผ ๋์ด๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค. ํนํ ์ ์ธ๊ณ์ ๋ ๊ฐ๋ ฅํ ์ฅ์น ๋๋ ๋๋ฆฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๊ฐ์ง ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
- ๋ฐ์์ฑ: ์ปจํ ์ด๋ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋ธ๋ผ์ฐ์ ๋ ๊ด๋ จ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ฅผ ์ ์ํ๊ฒ ๋ค์ ํ๊ฐํด์ผ ํฉ๋๋ค. ์บ์ฑ์ ์ด๋ฌํ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฌ ๋น ๋ฅธ ์คํ์ผ ์ ๋ฐ์ดํธ์ ๋์ฑ ์ ์ฐํ ๋ฐ์ํ ํ๊ฒฝ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ํจ์จ์ฑ: ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์์๊ฑฐ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋์ผํ ์์์ ๋ํ ๋ฐ๋ณต ๊ณ์ฐ์ ๋ฐฉ์งํจ์ผ๋ก์จ ๋ธ๋ผ์ฐ์ ๋ ๋ ๋๋ง, JavaScript ์คํ ๋ฐ ์ํธ ์์ฉ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์์ ์ ๋ฆฌ์์ค๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ํ ๋นํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ฉ ๋ธ๋ผ์ฐ์ ์บ์ฑ ์๋ ๋ฐฉ์
๋ธ๋ผ์ฐ์ ๋ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ์บ์ฑ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ ๊ตํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ์ ํํ ๊ตฌํ ์ธ๋ถ ์ ๋ณด๋ ๋ธ๋ผ์ฐ์ ์์ง(์: Chrome/Edge์ฉ Blink, Firefox์ฉ Gecko, Safari์ฉ WebKit)๋ง๋ค ๋ค๋ฅผ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ธ ์์น์ ์ผ๊ด๋๊ฒ ์ ์ง๋ฉ๋๋ค:
1. ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ ์ฅ:
- ์ปจํ
์ด๋ ์์์ ์น์๋ฅผ ์ธก์ ํ๊ณ ์ ์ฉ ๊ฐ๋ฅํ
@container๊ท์น์ ํ๊ฐํ ๋ ๋ธ๋ผ์ฐ์ ๋ ์ด ํ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด ๊ฒฐ๊ณผ์๋ ์ด๋ค ์ฟผ๋ฆฌ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์๊ณ ์ด๋ค ์คํ์ผ์ด ์ ์ฉ๋์ด์ผ ํ๋์ง๊ฐ ํฌํจ๋ฉ๋๋ค. - ์ด ์ ์ฅ๋ ๊ฒฐ๊ณผ๋ ํน์ ์ปจํ ์ด๋ ์์ ๋ฐ ์ฟผ๋ฆฌ ์กฐ๊ฑด๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค.
2. ๋ฌดํจํ ๋ฐ ์ฌํ๊ฐ:
- ์บ์๋ ์ ์ ์ด์ง ์์ต๋๋ค. ์กฐ๊ฑด์ด ๋ณ๊ฒฝ๋ ๋ ๋ฌดํจํ๋๊ณ ์ ๋ฐ์ดํธ๋์ด์ผ ํฉ๋๋ค. ๋ฌดํจํ์ ์ฃผ์ ํธ๋ฆฌ๊ฑฐ๋ ์ปจํ ์ด๋ ์น์์ ๋ณ๊ฒฝ์ ๋๋ค.
- ์ปจํ ์ด๋ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด(์ฐฝ ํฌ๊ธฐ ์กฐ์ , ์ฝํ ์ธ ๋ณ๊ฒฝ ๋ฑ) ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์ปจํ ์ด๋์ ์บ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ค๋๋ ๊ฒ์ผ๋ก ํ์ํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ๋ธ๋ผ์ฐ์ ๋ ์ปจํ ์ด๋๋ฅผ ๋ค์ ์ธก์ ํ๊ณ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ฅผ ๋ค์ ํ๊ฐํฉ๋๋ค. ์ ๊ฒฐ๊ณผ๋ UI๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์บ์๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ค์ํ ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ค์ ๋ก ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ์ปจํ ์ด๋ ๋๋ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ฐฉ์์ผ๋ก ์์ ์์์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋ ์ปจํ ์ด๋์ ๋ํ ์ฟผ๋ฆฌ๋ง ์ฌํ๊ฐํ๋๋ก ์ต์ ํ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
3. ์บ์ฑ์ ์ธ๋ถ์ฑ:
- ์บ์ฑ์ ์ผ๋ฐ์ ์ผ๋ก ์์ ์์ค์์ ์ํ๋ฉ๋๋ค. ๊ฐ ์ปจํ ์ด๋ ์์์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์บ์๋ฉ๋๋ค.
- ํ ์ปจํ ์ด๋์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํด๋ ๊ด๋ จ ์๋ ์ปจํ ์ด๋์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ๋ค์ ํ๊ฐํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ์ธ๋ถ์ฑ์ด ํ์์ ์ ๋๋ค.
์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์บ์ฑ ํจ์จ์ฑ์ ์ํฅ์ ๋ฏธ์น๋ ์์ธ
๋ช ๊ฐ์ง ์์ธ์ด ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์ผ๋ง๋ ํจ๊ณผ์ ์ผ๋ก ์บ์ฑ๋๋์ง, ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ์ฒด ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค:
- DOM ๋ณต์ก์ฑ: ๊น๊ฒ ์ค์ฒฉ๋ DOM ๊ตฌ์กฐ์ ์๋ง์ ์ปจํ ์ด๋ ์์๊ฐ ์๋ ํ์ด์ง๋ ์ธก์ ๋ฐ ์บ์ฑ ์ค๋ฒํค๋๋ฅผ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๊น๋ํ๊ณ ํจ์จ์ ์ธ DOM ๊ตฌ์กฐ๋ฅผ ์ํด ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค.
- ๋น๋ฒํ ๋ ์ด์์ ์ด๋: ๋งค์ฐ ๋์ ์ธ ์ฝํ ์ธ ๊ฐ ์๊ฑฐ๋ ์ปจํ ์ด๋ ํฌ๊ธฐ ์กฐ์ ์ ์ง์์ ์ผ๋ก ์ ๋ฐํ๋ ๋น๋ฒํ ์ฌ์ฉ์ ์ํธ ์์ฉ์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋น๋ฒํ ์บ์ ๋ฌดํจํ ๋ฐ ์ฌํ๊ฐ๋ฅผ ์ ๋ฐํ ์ ์์ผ๋ฉฐ, ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- CSS ํน์ด์ฑ ๋ฐ ๋ณต์ก์ฑ: ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์์ฒด๋ ๋ฉ์ปค๋์ฆ์ด์ง๋ง, ํด๋น ์ฟผ๋ฆฌ ๋ด์ CSS ๊ท์น์ ๋ณต์ก์ฑ์ ์ผ์น ํญ๋ชฉ์ด ๋ฐ๊ฒฌ๋ ํ ๋ ๋๋ง ์๊ฐ์ ์ฌ์ ํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ๊ตฌํ: ๋ธ๋ผ์ฐ์ ์ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํด์ ๋ฐ ์บ์ฑ ์์ง์ ํจ์จ์ฑ๊ณผ ์ ๊ตํจ์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ฃผ์ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฌํ ์ธก๋ฉด์ ์ต์ ํํ๊ธฐ ์ํด ์ ๊ทน์ ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ์ต์ ํ๋ฅผ ์ํ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ ๋ชจ๋ฒ ์ฌ๋ก
์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ํํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ๊ฐ๋ฐ์์ ๊ฒฝ์ฐ, ํจ์จ์ ์ธ ์บ์ฑ ์ ๋ต์ ํตํด ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค:
1. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ์ผ๋์ ๋ ๋์์ธ
์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ์ ์ ์๋๊ณ ๋ ๋ฆฝ์ ์ธ UI ์ปดํฌ๋ํธ์ ํจ๊ป ์ฌ์ฉํ ๋ ๋น์ ๋ฐํฉ๋๋ค. ์ปดํฌ๋ํธ๋ฅผ ์์ฒด ํฌํจ๋๊ณ ํ๊ฒฝ์ ์ ์ํ ์ ์๋๋ก ์ค๊ณํ์ญ์์ค.
- ์บก์ํ: ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์ ์คํ์ผ๋ง ๋ ผ๋ฆฌ๊ฐ ํด๋น ๋ฒ์ ๋ด์ ์๋์ง ํ์ธํฉ๋๋ค.
- ์ต์ ์์กด์ฑ: ์ปจํ ์ด๋๋ณ ์กฐ์ ์ด ํ์ํ ๊ฒฝ์ฐ ์ธ๋ถ ์์ธ(์: ์ ์ญ ๋ทฐํฌํธ ํฌ๊ธฐ)์ ๋ํ ์์กด์ฑ์ ์ค์ ๋๋ค.
2. ์ปจํ ์ด๋ ์ ํ์ ์ ๋ต์ ์ฌ์ฉ
๋์์ธ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ์ ํ container-type์ ์ ํํ์ญ์์ค. inline-size๋ ๋๋น ๊ธฐ๋ฐ ๋ฐ์์ฑ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด์ง๋ง block-size(๋์ด) ๋ฐ size(๋๋น ๋ฐ ๋์ด ๋ชจ๋)๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
inline-size: ๊ฐ๋ก ๋ ์ด์์ ๋๋ ์ฝํ ์ธ ํ๋ฆ์ ์กฐ์ ํด์ผ ํ๋ ์์์ ์ด์์ ์ ๋๋ค.block-size: ์์ง ๋ ์ด์์์ ์กฐ์ ํด์ผ ํ๋ ์์(์: ์์ด๊ฑฐ๋ ์ถ์๋ ์ ์๋ ํ์ ๋ฉ๋ด)์ ์ ์ฉํฉ๋๋ค.size: ๋ ์น์ ๋ชจ๋ ์กฐ์ ์ ์ค์ํ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค.
3. ํจ์จ์ ์ธ ์ปจํ ์ด๋ ์ ํ
๋ชจ๋ ์์๋ฅผ ๋ถํ์ํ๊ฒ ์ปจํ
์ด๋๋ก ์ง์ ํ์ง ๋ง์ญ์์ค. container-type์ ์ค์ ๋ก ์์ฒด ์น์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์กฐ์ ๊ฐ๋ฅํ ์คํ์ผ์ ๊ตฌ๋ํ ํ์๊ฐ ์๋ ์์์๋ง ์ ์ฉํ์ญ์์ค.
- ๋์ ์ ์ฉ: ์ปจํ ์ด๋ ์์ฑ์ ํ์ํ ์ปดํฌ๋ํธ ๋๋ ์์์๋ง ์ ์ฉํฉ๋๋ค.
- ๋ถํ์ํ ๊ฒฝ์ฐ ์ปจํ ์ด๋์ ๊น์ ์ค์ฒฉ ํผํ๊ธฐ: ์ค์ฒฉ์ ๊ฐ๋ ฅํ์ง๋ง, ๋ช ํํ ์ด์ ์์ด ์ปจํ ์ด๋์ ๊ณผ๋ํ ์ค์ฒฉ์ ๊ณ์ฐ ๋ถํ๋ฅผ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
4. ์ค๋งํธ ์ฟผ๋ฆฌ ์ค๋จ์
์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์ค๋จ์ ์ ์ ์คํ๊ฒ ์ ์ํ์ญ์์ค. ์ปดํฌ๋ํธ ๋์์ธ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์กฐ์ ํด์ผ ํ๋ ์์ฐ์ค๋ฌ์ด ์ค๋จ์ ์ ๊ณ ๋ คํ์ญ์์ค.
- ์ฝํ ์ธ ๊ธฐ๋ฐ ์ค๋จ์ : ์์์ ์ฅ์น ํฌ๊ธฐ ๋์ ์ฝํ ์ธ ์ ๋์์ธ์ด ์ค๋จ์ ์ ๊ฒฐ์ ํ๋๋ก ํฉ๋๋ค.
- ์ค์ฒฉ๋๊ฑฐ๋ ์ค๋ณต๋๋ ์ฟผ๋ฆฌ ํผํ๊ธฐ: ์ฟผ๋ฆฌ ์กฐ๊ฑด์ด ๋ช ํํ๊ณ ํผ๋์ด๋ ๋ถํ์ํ ์ฌํ๊ฐ๋ฅผ ์ ๋ฐํ๋ ๋ฐฉ์์ผ๋ก ์ค์ฒฉ๋์ง ์๋๋ก ํฉ๋๋ค.
5. ๋ ์ด์์ ์ด๋ ์ต์ํ
๋ ์ด์์ ์ด๋(๋์ ๋ ์ด์์ ์ด๋ - CLS)์ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ ์ฌํ๊ฐ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ฑฐ๋ ์ต์ํํ๋ ๊ธฐ์ ์ ์ฌ์ฉํ์ญ์์ค.
- ์น์ ์ง์ :
width๋ฐheight์์ฑ ๋๋ CSS๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง, ๋น๋์ค ๋ฐ iframe์ ์น์๋ฅผ ์ ๊ณตํฉ๋๋ค. - ๊ธ๊ผด ๋ก๋ฉ ์ต์ ํ:
font-display: swap์ ์ฌ์ฉํ๊ฑฐ๋ ์ค์ํ ๊ธ๊ผด์ ์ฌ์ ๋ก๋ํฉ๋๋ค. - ๋์ ์ฝํ ์ธ ๊ณต๊ฐ ์์ฝ: ์ฝํ ์ธ ๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋๋๋ ๊ฒฝ์ฐ ์ฝํ ์ธ ๊ฐ ์ ํํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ํ ๊ณต๊ฐ์ ์์ฝํฉ๋๋ค.
6. ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ํ ์คํธ
๋ค์ํ ์ฅ์น, ๋คํธ์ํฌ ์กฐ๊ฑด ๋ฐ ์ง๋ฆฌ์ ์์น์์ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ์ ๊ธฐ์ ์ผ๋ก ํ ์คํธํ์ญ์์ค. Lighthouse, WebPageTest ๋ฐ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๊ฐ์ ๋๊ตฌ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
- ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํ ์คํธ: ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ๋น๊ต์ ์๋ก์ด ๊ธฐ๋ฅ์ ๋๋ค. ์ฃผ์ ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ผ๊ด๋ ๋์ ๋ฐ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ๋คํธ์ํฌ ์กฐ๊ฑด ์๋ฎฌ๋ ์ด์ : ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋คํธ์ํฌ ์ค๋กํ๋ง ๋๋ WebPageTest์ ๊ฐ์ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฆฐ ์ฐ๊ฒฐ์ ๊ฐ์ง ์ฌ์ฉ์์ ์ฑ๋ฅ์ ์ดํดํฉ๋๋ค.
- ๋ ๋๋ง ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ๋ ๋๋ง ํจ์จ์ฑ์ ์ํฅ์ ๋ฐ๋ First Contentful Paint(FCP), Largest Contentful Paint(LCP) ๋ฐ Interaction to Next Paint(INP)์ ๊ฐ์ ๋ฉํธ๋ฆญ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ ๋๋ค.
7. ์ ์ง์ ํฅ์
์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ๊ฐ๋ ฅํ ์ ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ์ด๋ฅผ ์ง์ํ์ง ์์ ์ ์๋ ์ด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ๋์ฒด ์คํ์ผ: ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์๋ํ๋ ๊ธฐ๋ณธ ์คํ์ผ์ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ๋ฅ ๊ฐ์ง: ์ด์ CSS ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ปจํ ์ด๋ ์ฟผ๋ฆฌ์ ์ง์ ์ฌ์ฉํ ์๋ ์์ง๋ง, ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์ง์์ด ์๋ ๊ฒฝ์ฐ ๋ ์ด์์์ด ์ฐ์ํ๊ฒ ์ ํ๋๋๋ก ํฉ๋๋ค. ์ข ์ข ๊ฐ๋ ฅํ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋์ฒด ๋๋ ๋ ๊ฐ๋จํ ๋์์ธ์ด ๋์์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์บ์ฑ์ ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ๊ตฌ์ถํ ๋ ์ฑ๋ฅ์ ๋จ์ํ ์๋์ ๊ดํ ๊ฒ์ด ์๋๋ผ ์์น ๋๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋์ญํญ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์ ์ ๊ทผ์ฑ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ดํ ๊ฒ์ ๋๋ค.
- ๋ค์ํ ๋คํธ์ํฌ ์๋: ๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ ๋งค์ฐ ๋ค๋ฅธ ์ธํฐ๋ท ์๋๋ฅผ ๊ฒฝํํฉ๋๋ค. ํจ์จ์ ์ธ ์บ์ฑ์ ๋๋ฆฐ ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ์ค์ํฉ๋๋ค.
- ์ฅ์น ๋ค์์ฑ: ๊ณ ๊ธ ์ค๋งํธํฐ๋ถํฐ ๊ตฌํ ๋ฐ์คํฌํฑ ์ปดํจํฐ๊น์ง ์ฅ์น ๊ธฐ๋ฅ์ ๋ค์ํฉ๋๋ค. ์บ์ฑ์ผ๋ก ์ธํ ์ต์ ํ๋ ๋ ๋๋ง์ CPU ๋ถํ๋ฅผ ์ค์ ๋๋ค.
- ๋ฐ์ดํฐ ๋น์ฉ: ์ธ๊ณ ์ฌ๋ฌ ์ง์ญ์์๋ ๋ชจ๋ฐ์ผ ๋ฐ์ดํฐ๊ฐ ๋น์๋๋ค. ์บ์ฑ์ ํตํ ๋ ๋๋ง ๊ฐ์ ๋ฐ ํจ์จ์ ์ธ ๋ฆฌ์์ค ๋ก๋ฉ์ ์ฌ์ฉ์ ๋ฐ์ดํฐ ์๋น๋ฅผ ์ค์ด๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ธฐ๋์น: ์ ์ธ๊ณ ์ฌ์ฉ์๋ ๋น ๋ฅด๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์น์ฌ์ดํธ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ์ธํ๋ผ์ ์ฐจ์ด๊ฐ ์ด์ ํ ๊ฒฝํ์ ๊ฒฐ์ ํด์๋ ์ ๋ฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ๋ด๋ถ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ์ด๋ฌํ ๋ณต์ก์ฑ์ ๋ง์ ๋ถ๋ถ์ ์ถ์ํํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฐ์๋ ์ด ์บ์ฑ์ด ํจ๊ณผ์ ์ด๋๋ก ์ฌ๋ฐ๋ฅธ ์กฐ๊ฑด์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฆ์ผ๋ก์จ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฌํ ์บ์๋ ๊ฒฐ๊ณผ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ํ์ฌ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ผ๊ด๋๊ณ ๋น ๋ฅด๋ฉฐ ์ ์์ ์ธ ํ๊ฒฝ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์บ์ฑ์ ๋ฏธ๋
์ปจํ ์ด๋ ์ฟผ๋ฆฌ๊ฐ ์ฑ์ํ๊ณ ๋ ๋๋ฆฌ ์ฑํ๋จ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ๊ณต๊ธ์ ์ฒด๋ ํด์ ๋ฐ ์บ์ฑ ์ ๋ต์ ๊ณ์ํด์ ๊ฐ์ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์์ํ ์ ์์ต๋๋ค:
- ๋ ์ ๊ตํ ๋ฌดํจํ: ์ ์ฌ์ ์ธ ํฌ๊ธฐ ๋ณ๊ฒฝ์ ์์ธกํ๊ณ ์ฌํ๊ฐ๋ฅผ ์ต์ ํํ๋ ๋ ์ค๋งํธํ ์๊ณ ๋ฆฌ์ฆ.
- ์ฑ๋ฅ ๊ฐ์ : ์ธก์ ๋ฐ ์คํ์ผ ์ ์ฉ์ ๊ณ์ฐ ๋น์ฉ์ ์ค์ด๋ ๋ฐ ์ง์์ ์ธ ์ง์ค.
- ๊ฐ๋ฐ์ ๋๊ตฌ ๊ฐ์ : ์บ์๋ ์ํ๋ฅผ ๊ฒ์ฌํ๊ณ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ดํดํ๊ธฐ ์ํ ๋ ๋์ ๋๋ฒ๊น ๋๊ตฌ.
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์ฑ์ ์ดํดํ๋ ๊ฒ์ ๋จ์ํ ํ๋ฌธ์ ์ธ ์ฐ์ต์ด ์๋๋๋ค. ์ต์ ๋ฐ์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ์ค์ง์ ์ธ ํ์ ์ฌํญ์ ๋๋ค. ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ฅผ ์ ์คํ๊ฒ ํ์ฉํ๊ณ ํด์ ๋ฐ ์บ์ฑ์ ์ฑ๋ฅ ์ํฅ์ ์ธ์งํจ์ผ๋ก์จ ์ง์ ์ผ๋ก ์ ์ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ ๊ธ๋ก๋ฒ ์ฌ์ฉ์์๊ฒ ์ก์ธ์ค ๊ฐ๋ฅํ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ฒฐ๋ก
CSS ์ปจํ ์ด๋ ์ฟผ๋ฆฌ๋ ์ ๊ตํ๊ณ ๋งฅ๋ฝ์ ์ธ์ํ๋ ๋ฐ์ํ ๋์์ธ์ ๋ง๋๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ์ด๋ฌํ ์ฟผ๋ฆฌ์ ํจ์จ์ฑ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ง๋ฅ์ ์ผ๋ก ์บ์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฅ๋ ฅ์ ํฌ๊ฒ ์ข์ฐ๋ฉ๋๋ค. ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ํด์ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๊ณ ์ปดํฌ๋ํธ ์ํคํ ์ฒ, ์ ๋ต์ ์ธ ์ปจํ ์ด๋ ์ฌ์ฉ, ๋ ์ด์์ ์ด๋ ์ต์ํ ๋ฐ ์๊ฒฉํ ํ ์คํธ์ ์ด๋ฅด๊ธฐ๊น์ง ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ด ๊ธฐ์ ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ ์ ์์ต๋๋ค.
๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด, ์ฅ์น ๊ธฐ๋ฅ ๋ฐ ์ฌ์ฉ์ ๊ธฐ๋์น๊ฐ ์๋ ดํ๋ ๊ธ๋ก๋ฒ ์น์์๋ ์ปจํ ์ด๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ์ต์ ํ๋ ์บ์ฑ์ด ๋จ์ํ '์์ผ๋ฉด ์ข์' ๊ฒ์ด ์๋๋ผ ๊ทผ๋ณธ์ ์ธ ์๊ตฌ ์ฌํญ์ ๋๋ค. ์ด๋ ์ ์ํ ๋์์ธ์ด ์ฑ๋ฅ ๋น์ฉ์ผ๋ก ์ค์ง ์๋๋ก ๋ณด์ฅํ์ฌ ๋ชจ๋ ์ฌ๋์๊ฒ ์ด๋์์๋ ์ผ๊ด๋๊ฒ ํ๋ฅญํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ธฐ์ ์ด ๋ฐ์ ํจ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ์ต์ ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ๊ณ ์ฑ๋ฅ์ ๊ณ์ ์ฐ์ ์ํ๋ ๊ฒ์ด ์ฐจ์ธ๋ ์ ์ํ ๋ฐ ํฌ์ฉ์ ์ธ ์น ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ํต์ฌ์ด ๋ ๊ฒ์ ๋๋ค.