Hex에서 RGB 색상 변환: 완벽 가이드
· 12분 읽기
📑 목차
웹 디자인, CSS 또는 그래픽 소프트웨어로 작업해본 적이 있다면 #FF5733 또는 #3498DB와 같은 암호 같은 문자열인 hex 색상 코드를 접해봤을 것입니다. 하지만 이것들이 실제로 무엇을 의미하며 RGB 값과 어떤 관련이 있을까요?
이 변환을 이해하는 것은 웹사이트를 구축하든, 로고를 디자인하든, 프로그래밍 방식으로 이미지를 처리하든, 화면에서 페인트 색상을 선택하든 디지털 색상 작업의 기본입니다. 16진수와 RGB 표기법 간의 관계는 단순한 기술적 호기심이 아니라 다양한 플랫폼과 도구에서 색상을 더 효율적으로 작업하는 데 도움이 되는 실용적인 기술입니다.
이 종합 가이드는 hex 및 RGB 색상에 대해 알아야 할 모든 것을 다룹니다: 두 시스템의 작동 방식, 변환의 수학적 원리, 즉시 사용할 수 있는 실용적인 예제, 인기 있는 색상의 편리한 참조 표, CSS 모범 사례 및 변환을 쉽게 만드는 도구.
RGB 색상 모델 이해하기
RGB 색상 모델은 화면, 모니터 및 디지털 디스플레이에 사용되는 가산 색상 시스템입니다. 화면에서 보는 모든 색상은 세 가지 기본 빛의 색상을 혼합하여 만들어집니다:
- 빨강 (R) — 0에서 255까지의 강도
- 초록 (G) — 0에서 255까지의 강도
- 파랑 (B) — 0에서 255까지의 강도
세 채널이 모두 0일 때 검은색(빛 없음)이 됩니다. 세 채널이 모두 255일 때 흰색(완전한 빛)이 됩니다. 이것은 256 × 256 × 256 = 16,777,216가지 가능한 색상을 제공합니다 — 인간의 눈이 구별할 수 있는 것보다 많습니다.
"가산"이라는 용어는 색상이 함께 더해진다는 것을 의미합니다 — 색상을 결합하면 더 어두워지는 페인트(감산 혼합)와 달리 빛 혼합은 더 밝게 만듭니다. 이것이 모니터가 물리적 안료로는 불가능한 생생하고 빛나는 색상을 생성할 수 있는 이유입니다.
RGB가 0-255를 사용하는 이유
0-255 범위는 임의적이지 않습니다. 이것은 256개의 다른 값을 저장할 수 있는 8비트 데이터(1바이트)를 나타냅니다. 컴퓨터는 이진법으로 작동하므로 RGB 값을 저장하고 처리하는 데 매우 효율적입니다.
화면의 각 픽셀은 총 24비트(채널당 8비트)를 사용하므로 디스플레이 기능을 논의할 때 "24비트 색상" 또는 "트루 컬러"라는 용어를 자주 듣게 됩니다.
빠른 팁: RGB 값은 때때로 0-255 대신 백분율(0-100%)로 표현됩니다. 변환하려면: 255로 나누고 100을 곱합니다. 예를 들어, RGB(255, 128, 0) = RGB(100%, 50%, 0%).
Hex 색상 코드 작동 방식
16진수 색상 코드는 단순히 RGB 값을 작성하는 간결한 방법입니다. 세 개의 별도 10진수 대신 hex는 해시 기호(#)가 앞에 오는 단일 6자 문자열로 결합합니다.
형식은 다음과 같습니다: #RRGGBB
각 문자 쌍은 16진수(16진법) 표기법으로 하나의 색상 채널을 나타냅니다:
- 처음 두 문자 (RR) = 빨강 값
- 중간 두 문자 (GG) = 초록 값
- 마지막 두 문자 (BB) = 파랑 값
예를 들어, #FF5733은 다음과 같이 분해됩니다:
FF= 255 빨강57= 87 초록33= 51 파랑
16진수 체계 기초
16진수(16진법)는 일상적인 10진수 계산에서 사용하는 10개 대신 16개의 숫자를 사용합니다. 숫자는: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F입니다.
hex 숫자가 10진수 값에 매핑되는 방법은 다음과 같습니다:
| Hex | 10진수 | Hex | 10진수 |
|---|---|---|---|
| 0 | 0 | 8 | 8 |
| 1 | 1 | 9 | 9 |
| 2 | 2 | A | 10 |
| 3 | 3 | B | 11 |
| 4 | 4 | C | 12 |
| 5 | 5 | D | 13 |
| 6 | 6 | E | 14 |
| 7 | 7 | F | 15 |
축약형 Hex 표기법
각 색상 쌍의 두 숫자가 동일할 때 세 문자 축약형을 사용할 수 있습니다. 예를 들어:
#FFFFFF는#FFF로 작성할 수 있습니다 (흰색)#000000는#000으로 작성할 수 있습니다 (검은색)#FF0000는#F00으로 작성할 수 있습니다 (빨강)#3399CC는#39C로 작성할 수 있습니다
브라우저는 각 숫자를 반복하여 축약형을 자동으로 확장합니다. 따라서 #39C는 #3399CC가 됩니다.
변환 수학: Hex에서 RGB로
hex를 RGB로 변환하려면 각 두 문자 hex 쌍을 10진수 등가물로 변환해야 합니다. 수학 공식은 간단합니다:
10진수 값 = (첫 번째 숫자 × 16) + 두 번째 숫자
#FF5733을 분해해 봅시다:
빨강 채널 (FF):
- F = 10진수로 15
- F = 10진수로 15
- 계산: (15 × 16) + 15 = 240 + 15 = 255
초록 채널 (57):
- 5 = 10진수로 5
- 7 = 10진수로 7
- 계산: (5 × 16) + 7 = 80 + 7 = 87
파랑 채널 (33):
- 3 = 10진수로 3
- 3 = 10진수로 3
- 계산: (3 × 16) + 3 = 48 + 3 = 51
결과: #FF5733 = rgb(255, 87, 51)
왜 16을 곱하나요?
16진수에서 각 위치는 10진수에서 각 위치가 10의 거듭제곱을 나타내는 것처럼 16의 거듭제곱을 나타냅니다. 첫 번째 숫자(가장 왼쪽)는 "16의 자리"(161)에 있고 두 번째 숫자는 "1의 자리"(160)에 있습니다.
이것이 첫 번째 숫자에 16을 곱하고 두 번째 숫자를 단순히 더하는 이유입니다.
단계별 수동 변환
계산기 없이 hex 색상을 RGB로 변환하는 실용적인 안내는 다음과 같습니다:
- 해시 기호 제거 — 6자만으로 시작
- 세 쌍으로 분할 — RR, GG, BB 분리
- 각 문자를 10진수로 변환 — 위의 참조 표 사용
- 공식 적용 — 각 쌍에 대해 (첫 번째 × 16) + 두 번째
- RGB 표기법 작성 — rgb(R, G, B)로 형식 지정
예제 1: #3498DB 변환
인기 있는 파란색 음영 #3498DB를 변환해 봅시다:
1단계: 쌍으로 분할: 34, 98, DB
2단계: 빨강 변환 (34):
- 3 = 3, 4 = 4
- (3 × 16) + 4 = 48 + 4 = 52
3단계: 초록 변환 (98):
- 9 = 9, 8 = 8
- (9 × 16) + 8 = 144 + 8 = 152
4단계: 파랑 변환 (DB):
- D = 13, B = 11
- (13 × 16) + 11 = 208 + 11 = 219
결과: rgb(52, 152, 219)
예제 2: #E74C3C 변환
색상 #E74C3C (생생한 빨강)의 또 다른 예:
빨강 (E7): (14 × 16) + 7 = 224 + 7 = 231
초록 (4C): (4 × 16) + 12 = 64 + 12 = 76
파랑 (3C): (3 × 16) + 12 = 48 + 12 = 60
결과: rgb(231, 76, 60)
전문가 팁: 더 빠른 암산 변환을 위해 일반적인 hex 쌍을 암기하세요: 00=0, 33=51, 66=102, 99=153, CC=204, FF=255. 이것들은 웹 안전 색상에서 자주 나타납니다.
일반 Hex 색상 코드 참조 표
다음은 hex 및 RGB 값이 모두 포함된 인기 있는 색상의 종합 참조입니다. 이것들은 웹 디자인, 브랜딩 및 UI 개발에서 일반적으로 사용됩니다:
| 색상 이름 | Hex 코드 | RGB 값 | 시각적 |
|---|---|---|---|
| 순수 빨강 | #FF0000 |
rgb(255, 0, 0) | |
| 순수 초록 | #00FF00 |
rgb(0, 255, 0) | |
| 순수 파랑 | #0000FF |
rgb(0, 0, 255) | |
| 흰색 | #FFFFFF |
rgb(255, 255, 255) | |
| 검은색 | #000000 |
rgb(0, 0, 0) | |
| 노란색 | #FFFF00 |
rgb(255, 255, 0) | |
| 청록색 | #00FFFF |
rgb(0, 255, 255) | |
| 자홍색 | #FF00FF |
rgb(255, 0, 255) | |
| 은색 | #C0C0C0 |
rgb(192, 192, 192) | |
| 회색 | #808080 |
rgb(128, 128, 128) | |
| 밤색 | #800000 |
rgb(128, 0, 0) | |
| 올리브색 | #808000 |
rgb(128, 128, 0) | |
| 남색 | #000080 |
rgb(0, 0, 128) | |
| 청록색 | #008080 |
rgb(0, 128, 128) | |
| 주황색 | #FFA500 |
rgb(255, 165, 0) |
현대 UI 색상 팔레트
이 색상들은 현대 웹 디자인 및 디자인 시스템에서 인기가 있습니다: