HEX vs RGB vs HSL: ์ด๋ค ์์ ํ์์ ์ฌ์ฉํด์ผ ํ ๊น์?
HEX vs RGB vs HSL: ์ด๋ค ์์ ํ์์ ์ฌ์ฉํด์ผ ํ ๊น์?
CSS๋ ์์์ ์ ์ํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง๋ง, ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ธ ๊ฐ์ง ํ์์ HEX, RGB, HSL์ ๋๋ค. ๊ฐ ํ์์ ๋๋ ทํ ๊ฐ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ์ธ์ ์ฌ์ฉํด์ผ ํ๋์ง ์๋ฉด ์คํ์ผ์ํธ ์ ์ง ๊ด๋ฆฌ์ฑ๊ณผ ๋์ ์์ ์์คํ ์์ฑ ๋ฅ๋ ฅ์ ๊ทน์ ์ผ๋ก ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋๋ ๋ชจ๋ ํ์์ ๋ถ์ํ์ฌ ์ด๋ค ์ํฉ์์๋ ์ ํฉํ ๊ฒ์ ์ ํํ ์ ์๋๋ก ํฉ๋๋ค.
HEX ์์ ํ์: ์ ๊ณ ํ์ค
HEX(16์ง์) ์์์ ์น ๋์์ธ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์์
๋๋ค. hex ์์์ ๋นจ๊ฐ, ์ด๋ก, ํ๋ ๊ฐ์ ์์๋๋ก ๋ํ๋ด๋ 6์๋ฆฌ 16์ง์ ์ซ์๊ฐ ๋ค๋ฐ๋ฅด๋ #๋ก ์์ฑ๋ฉ๋๋ค.
#FF5733
- #FF โ ๋นจ๊ฐ (10์ง์ 255)
- #57 โ ์ด๋ก (10์ง์ 87)
- #33 โ ํ๋ (10์ง์ 51)
HEX ๋ณํ
HEX๋ ๋ค์ํ ํ์์ ๋ง๋ ์ฌ๋ฌ ํ๊ธฐ๋ฒ์ ์ง์ํฉ๋๋ค:
/* ํ์ค 6์๋ฆฌ hex */
color: #FF5733;
/* ๋จ์ถํ โ ๋์ผํ ์์ด 3์๋ฆฌ๋ก ์ถ์๋จ */
color: #F53; /* #FF5533์ผ๋ก ํ์ฅ๋จ */
/* ์ํ ์ฑ๋์ด ์๋ 8์๋ฆฌ hex */
color: #FF573380; /* 50% ๋ถํฌ๋ช
๋ */
๋จ์ถํ HEX๋ ๊ฐ ์์ด ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ ๋ ์๋ํฉ๋๋ค: #AABBCC๋ #ABC๊ฐ ๋ฉ๋๋ค. ์ด๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋๋ ์์ ํ ๊ณต๊ฐ ์ ์ฝ ๊ท์น์
๋๋ค.
8์๋ฆฌ HEX(#RRGGBBAA)๋ ์ํ ํฌ๋ช
๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ํ ๊ฐ์ 00(์์ ํฌ๋ช
)์์ FF(์์ ๋ถํฌ๋ช
)๊น์ง์ ๋ฒ์๋ฅผ ๊ฐ์ง๋๋ค. 8์๋ฆฌ hex์ ๋ธ๋ผ์ฐ์ ์ง์์ ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ํ๋ฅญํฉ๋๋ค.
4์๋ฆฌ ๋จ์ถํ(#RGBA)๋ ์กด์ฌํฉ๋๋ค: #F538์ #FF553388๋ก ํ์ฅ๋ฉ๋๋ค.
HEX๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ
- ๋์์ธ ๋๊ตฌ์์ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ โ Figma, Sketch, Adobe XD ๋ชจ๋ ๊ธฐ๋ณธ์ ์ผ๋ก hex๋ฅผ ์ถ๋ ฅํฉ๋๋ค
- ํ๋์ฝ๋ฉ๋ ๋ธ๋๋ ์์ โ Hex๋ ์ ๋ ๋ณ๊ฒฝ๋์ง ์๋ ๊ฐ์ ๋ํด ๋ชจํธํ์ง ์๊ณ ๊ฐ๊ฒฐํฉ๋๋ค
- ๋ฌธ์ํ ๋ฐ ๋ชฉ์ โ Hex๋ ๋์์ด๋์ ๊ฐ๋ฐ์ ์ฌ์ด์์ ๊ฐ์ฅ ์ ์๋ ค์ง ํ์์ ๋๋ค
- CSS ์ฌ์ฉ์ ์ ์ ์์ฑ โ hex๋ก ๋ธ๋๋ ํ ํฐ์ ์ ์ฅํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๊ดํ์ ๋๋ค
HEX๋ฅผ ํผํด์ผ ํ๋ ๊ฒฝ์ฐ
- ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์์ ์กฐ์ โ ๊ฐ๋ณ ์ฑ๋ ์กฐ์ ์๋ ๋ฌธ์์ด ํ์ฑ์ด ํ์ํฉ๋๋ค
- ์์ ์์คํ ๋ง๋ค๊ธฐ โ ๋ ๋ฐ๊ฑฐ๋ ์ด๋์ด ๋ณํ ์์ฑ์๋ ์ฌ์ํ์ง ์์ ์ํ์ด ํ์ํฉ๋๋ค
- ์์ ์๋ ์ ๋ฌํ๊ธฐ โ Hex๋ ์์์ ๋ํ ์๋ฏธ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค
RGB ์์ ํ์: ์ฑ๋ ์ ์ด
RGB๋ ๋นจ๊ฐ(Red), ์ด๋ก(Green), ํ๋(Blue)์ ์๋ฏธํฉ๋๋ค. CSS์์๋ 0์์ 255๊น์ง์ ๊ฐ ๋๋ ๋ฐฑ๋ถ์จ(0%์์ 100%)์ ์ฌ์ฉํ๋ ํจ์๋ก ์์ฑ๋ฉ๋๋ค.
/* ๋ ๊ฑฐ์ ์ผํ ๊ตฌ๋ถ ๊ตฌ๋ฌธ */
color: rgb(255, 87, 51);
color: rgba(255, 87, 51, 0.5);
/* ์ต์ ๊ณต๋ฐฑ ๊ตฌ๋ถ ๊ตฌ๋ฌธ */
color: rgb(255 87 51);
color: rgb(255 87 51 / 0.5);
/* ๋ฐฑ๋ถ์จ ๊ฐ */
color: rgb(100% 34% 20%);
์ต์ RGB ๊ตฌ๋ฌธ ๊ฐ์ ์ฌํญ
CSS Color Level 4 ๋ช
์ธ๋ rgb() ํจ์๋ฅผ ๋ ๊ฐ์ง ์ค์ํ ๋ฐฉ์์ผ๋ก ํ๋ํํ์ต๋๋ค:
- ๊ณต๋ฐฑ ๊ตฌ๋ถ ๊ฐ โ ์ผํ๊ฐ ๋ ์ด์ ํ์ํ์ง ์์ ๊ตฌ๋ฌธ์ด ๋ ๊น๋ํด์ก์ต๋๋ค
- ์ฌ๋์ ๊ตฌ๋ถ ์ํ โ
rgba()๋ณ์นญ์ด ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค;rgb()๊ฐ ์ด์ ์ ํ์ ์ํ ์ฑ๋์ ํ์ฉํฉ๋๋ค
๋ ๊ฑฐ์์ ์ต์ ๊ตฌ๋ฌธ ๋ชจ๋ ์์ ํ ์ง์๋์ง๋ง, ์ ์ฝ๋์๋ ์ต์ ๊ตฌ๋ฌธ์ด ๊ถ์ฅ๋ฉ๋๋ค.
RGB๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ
- Canvas ๋ฐ WebGL โ ์ด๋ฏธ์ง ๋ฐ์ดํฐ API๋ ํฝ์ ๊ฐ์ RGB๋ก ๋ฐํํฉ๋๋ค
- ์์น์ ์์ ์กฐ์ โ ๋นจ๊ฐ, ์ด๋ก, ํ๋ ๊ฐ์ด ๋ณ๋์ ๋ณ์๋ก ์ ์ฅ๋ ๊ฒฝ์ฐ
- ๋์์ธ ์ฌ์์์ ๋ณํ โ ์ผ๋ถ ๋์์ธ ์์คํ ์ ์์์ RGB ์ธ ์์ผ๋ก ์ง์ ํฉ๋๋ค
- ์์ ์ ํ๊ธฐ ์์ โ ๋ง์ ์์ ์ ํ๊ธฐ UI๊ฐ 0-255 ์ฌ๋ผ์ด๋๋ฅผ ์ฌ์ฉํฉ๋๋ค
RGB๋ฅผ ํผํด์ผ ํ๋ ๊ฒฝ์ฐ
- ์์ง๋ ฅ ์๋ ์์ ํ๋ ํธ ๋ง๋ค๊ธฐ โ ์ธ ์ฑ๋์ ๋ชจ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์กฐ์ ํ๋ฉด ์ผ๊ด๋ ์กฐ์ ์ด ์ด๋ ต์ต๋๋ค
- ์ธ๊ฐ ๊ฐ๋
์ฑ โ
rgb(123, 45, 67)์ ์ด๋ค ์์์ ๋ํ๋ด๋์ง ์ฆ๊ฐ์ ์ธ ๊ฐ์ ์ฃผ์ง ์์ต๋๋ค
HSL ์์ ํ์: ์ธ๊ฐ ์นํ์ ์์
HSL์ ์์(Hue), ์ฑ๋(Saturation), ๋ช ๋(Lightness)๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ํ์์ ์์ ์์ฒด(์์)๋ฅผ ๊ฐ๋(์ฑ๋)์ ๋ฐ๊ธฐ(๋ช ๋)์์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ธ๊ฐ์๊ฒ ๋ ์ง๊ด์ ์ ๋๋ค.
/* ๋ ๊ฑฐ์ ๊ตฌ๋ฌธ */
color: hsl(12, 100%, 60%);
color: hsla(12, 100%, 60%, 0.5);
/* ์ต์ ๊ตฌ๋ฌธ */
color: hsl(12 100% 60%);
color: hsl(12 100% 60% / 0.5);
HSL ์ฑ๋ ์ดํดํ๊ธฐ
์์ (0-360) โ ์์ํ์์์ ์์ ๊ฐ๋. ์ด๊ฒ์ด "๋ฌด์จ ์์ธ๊ฐ" ๊ตฌ์ฑ ์์์ ๋๋ค:
| ์์ ๊ฐ | ์์ | |----------|--------| | 0 ๋๋ 360 | ๋นจ๊ฐ | | 30 | ์ฃผํฉ | | 60 | ๋ ธ๋ | | 120 | ์ด๋ก | | 180 | ์ฒญ๋ก | | 240 | ํ๋ | | 300 | ์ํ |
์ฑ๋ (0-100%) โ ์์์ด ์ผ๋ง๋ ๊ฐ๋ ฌํ๊ฑฐ๋ ์ ๋ช ํ์ง. 0%๋ ํ์ ์์์ ์์ฑํฉ๋๋ค; 100%๋ ์์กฐ์ ๊ฐ์ฅ ์์ํ ๋ฒ์ ์ ๋๋ค.
๋ช ๋ (0-100%) โ ์์์ด ์ผ๋ง๋ ๋ฐ๊ฑฐ๋ ์ด๋์ด์ง. 0%๋ ํญ์ ๊ฒ์ , 50%๋ ์์กฐ์ "์ ์" ๋ฒ์ , 100%๋ ํญ์ ํฐ์์ ๋๋ค.
HSL์ด ์์ ์์คํ ์ ๋ ์ฐ์ํ ์ด์
HSL์ HEX๋ RGB์์ ์ด๋ ค์ด ์์ ์ ์ฌ์ํ๊ฒ ๋ง๋ญ๋๋ค:
/* ์ฃผ์ ๋ธ๋๋ ์์ */
--brand: hsl(220, 80%, 50%);
/* ํธ๋ฒ ์ํ โ ์ฝ๊ฐ ๋ ๋ฐ๊ฒ */
--brand-hover: hsl(220, 80%, 60%);
/* ํ์ฑ ์ํ โ ์ฝ๊ฐ ๋ ์ด๋ก๊ฒ */
--brand-active: hsl(220, 80%, 40%);
/* ๋นํ์ฑ ์ํ โ ์ฑ๋ ๋ฎ์ถค */
--brand-disabled: hsl(220, 30%, 70%);
/* ๋ฐฐ๊ฒฝ ํดํธ โ ๋งค์ฐ ๋ฐ๊ฒ */
--brand-bg: hsl(220, 40%, 95%);
HSL์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋ณํ์ด ํ๋์ ๋ณ์ ๋ณ๊ฒฝ์ ๋๋ค. ์ด๋ HEX๋ก๋ ๋ถ๊ฐ๋ฅํ๊ณ RGB๋ก๋ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค.
HSL์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ
- ์์ ํ๋ ํธ ๋ง๋ค๊ธฐ โ HSL์ ๋์์ธ ํ ํฐ ์์ฑ์ ์ํ ์ฌ์ค์์ ํ์ค์ ๋๋ค
- ํ ๋ง ๋ฐ ๋คํฌ ๋ชจ๋ โ ๋ช ๋ ๊ฐ์ ๊ต์ฒดํ์ฌ ๋คํฌ ๋ชจ๋ ๋ณํ ๋ง๋ค๊ธฐ
- ํธ๋ฒ ๋ฐ ํฌ์ปค์ค ์ํ โ ๊ณ ์ ๋ ๋น์จ๋ก ๋ช ๋ ์กฐ์
- ์ ๊ทผ์ฑ ์กฐ์ โ ์์์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ช ๋ ๋๋น ์ฆ๊ฐ
- ๋ํํ ์์ ์ ํ๊ธฐ โ HSL ์ฌ๋ผ์ด๋๋ RGB ์ฌ๋ผ์ด๋๋ณด๋ค ๋ ์ง๊ด์ ์ ๋๋ค
๋น ๋ฅธ ๋น๊ต ํ ์ด๋ธ
| ๊ธฐ๋ฅ | HEX | RGB | HSL |
|------|-----|-----|-----|
| ํฝ์
์์ค ๊ฐ๋
์ฑ | ๋ฎ์ | ๋ณดํต | ์ข์ |
| ์ฑ๋ ์๋ฏธ | ๋ถํฌ๋ช
| ์์น์ | ์ง๊ฐ์ |
| ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์กฐ์ | ์ด๋ ค์ | ๋ณดํต | ์ฌ์ |
| ์ํ ํฌ๋ช
๋ | 8์๋ฆฌ hex | rgb(R G B / A) | hsl(H S% L% / A) |
| ๋ธ๋ผ์ฐ์ ์ง์ | ํ๋ฅญํจ | ํ๋ฅญํจ | ํ๋ฅญํจ |
| ์ต์ ๊ตฌ๋ฌธ | ์๋์ | ์ | ์ |
| ๋์์ธ ๋๊ตฌ ๊ธฐ๋ณธ๊ฐ | ์ | ํํจ | ๋๋ฌพ |
| ์์ ์์คํ
์ ํฉ์ฑ | ๋ฎ์ | ๋ณดํต | ํ๋ฅญํจ |
๋ธ๋ผ์ฐ์ ์ง์: ์ธ ๊ฐ์ง ๋ชจ๋ ์์ ํฉ๋๋ค
HEX, RGB, HSL์ ๋์ผํ ๋ธ๋ผ์ฐ์ ์ง์์ ๋๋ฆฝ๋๋ค. ์ธ ๊ฐ์ง ๋ชจ๋ Internet Explorer 9 ์ดํ ์ถ์๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์๋ํฉ๋๋ค. ์ต์ ๊ณต๋ฐฑ ๊ตฌ๋ถ ๊ตฌ๋ฌธ(rgb(255 0 0 / 0.5))์ 2020๋
์ดํ ์ถ์๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋ฉ๋๋ค. ํ๋๋ฅผ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ์ ํํ ํธํ์ฑ ์ด์ ๋ ์์ต๋๋ค.
์ค์ฉ์ ์์ฌ ๊ฒฐ์ ํ๋ ์์ํฌ
์ํ ์ค์ธ ์์ ์ ๋ฐ๋ผ ํ์์ ์ ํํ์ธ์:
- ๋์์ธ ๋ชฉ์ ์์ ๋ณต์ฌํ๋์? HEX๋ฅผ ์ฌ์ฉํ์ธ์ โ ๋์์ธ ๋๊ตฌ๊ฐ ์ถ๋ ฅํ๋ ๊ฒ์ ๋๋ค.
- ๋์์ธ ํ ํฐ ์์คํ ์ ๊ตฌ์ถํ๋์? HSL์ ์ฌ์ฉํ์ธ์ โ ํ๋ ํธ ์์ฑ์ด ์ฌ์ํด์ง๋๋ค.
- canvas ๋๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ก ์์ ํ๋์? RGB๋ฅผ ์ฌ์ฉํ์ธ์ โ ํฝ์ API๊ฐ RGB๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
- ์ผํ์ฑ ์คํ์ผ ๊ท์น์ ์์ฑํ๋์? HEX๋ฅผ ์ฌ์ฉํ์ธ์ โ ๊ฐ์ฅ ๊ฐ๊ฒฐํฉ๋๋ค.
- ๋์ ์์ ์ ํ์ ๋ง๋๋์? HSL์ ์ฌ์ฉํ์ธ์ โ ์์กฐ๋ฅผ ๋ณด๊ฐํ๋ฉด ๋ฌด์ง๊ฐ ํจ๊ณผ๊ฐ ์์ฑ๋ฉ๋๋ค; RGB๋ฅผ ๋ณด๊ฐํ๋ฉด ์น์นํ ์ค๊ฐ์์ด ์์ฑ๋ฉ๋๋ค.
๋ชจ๋ ํ์ ๊ฐ ๋ณํํ๊ธฐ
๋ฌด๋ฃ ์จ๋ผ์ธ ์์ ๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ HEX, RGB, HSL ๋ฐ ๊ธฐํ CSS ์์ ํ์ ๊ฐ์ ์ฆ์ ๋ณํํ์ธ์. ๋ ์ด์ ์๋ ๊ณ์ฐ์ด๋ ๋ธ๋ผ์ฐ์ DevTools ํ์์ด ํ์ ์์ต๋๋ค.