16진법 색상코드 이해하기 - #FFFFFF가 흰색인 이유부터 실전 활용까지
웹에서 매일 마주치는 #FF5733 같은 6자리 코드, 어떤 원리로 색이 되는 걸까요? 16진법 기초부터 색상코드 읽는 법, 실무 활용 팁까지 한 번에 정리했습니다.
![]()
웹사이트 배경색을 바꾸려고 설정 화면을 열었는데 #FF5733 같은 알 수 없는 코드가 나와서 당황한 경험, 한 번쯤 있으실 겁니다. 숫자도 아니고 영어 단어도 아닌 이 6자리 조합이 대체 어떻게 색이 되는 걸까요? 사실 원리를 알고 나면 굉장히 단순합니다. 16진법 색상코드 이해는 30분이면 충분하고, 한 번 익혀두면 블로그 꾸미기부터 CSS 수정까지 평생 써먹을 수 있습니다.
16진법이란 무엇인가
우리가 평소 쓰는 숫자는 10진법입니다. 0부터 9까지 10개의 기호로 수를 표현하지요. 16진법은 여기에 6개를 더해 0~9와 A~F, 총 16개의 기호로 수를 표현하는 방식입니다.
- A = 10, B = 11, C = 12
- D = 13, E = 14, F = 15
- 따라서 한 자리로 표현할 수 있는 가장 큰 수는 F(15)입니다
두 자리가 되면 어떨까요? 10진법에서 두 자리 최대값이 99이듯, 16진법의 두 자리 최대값은 FF입니다. 계산해 보면 15 × 16 + 15 = 255가 됩니다. 즉 16진법 두 자리로 0부터 255까지, 정확히 256가지 값을 표현할 수 있습니다. 이 256이라는 숫자가 색상코드의 핵심입니다.
왜 하필 16진법을 쓸까
컴퓨터는 데이터를 8비트(1바이트) 단위로 다루는 경우가 많고, 8비트로 표현 가능한 값이 정확히 256가지입니다. 2진법으로 쓰면 11111111처럼 8자리가 필요하지만 16진법으로는 FF, 단 두 자리면 됩니다. 짧고 정확하게 쓸 수 있어서 색상 표현의 표준이 된 것입니다.
색상코드 6자리 해부하기
모니터의 모든 색은 빨강(Red), 초록(Green), 파랑(Blue) 세 가지 빛의 조합으로 만들어집니다. 16진법 색상코드는 이 세 채널의 밝기를 각각 두 자리씩, 총 6자리로 표현한 것입니다.
#RRGGBB 구조를 기억하세요. 앞 두 자리는 빨강, 가운데 두 자리는 초록, 뒤 두 자리는 파랑의 세기입니다. 각 채널은 00(꺼짐)부터 FF(최대 밝기)까지 256단계를 가집니다.
- #FF0000: 빨강만 최대, 나머지 0 = 순수한 빨간색
- #FFFFFF: 세 채널 모두 최대 = 흰색 (빛을 모두 합치면 흰색이 됩니다)
- #000000: 세 채널 모두 꺼짐 = 검은색
- #808080: 세 채널 모두 중간값(128) = 회색
이렇게 조합 가능한 색의 수는 256 × 256 × 256 = 약 1,677만 가지입니다. 흔히 말하는 트루컬러(24비트 색상)가 바로 이것입니다.
색상코드는 암호가 아니라 좌표입니다. 빨강, 초록, 파랑이라는 세 개의 축에서 각각 얼마나 밝은지를 적어둔 것뿐입니다. 이 관점 하나만 잡으면 어떤 코드를 봐도 대략적인 색을 머릿속에 그릴 수 있습니다.
자주 쓰는 색상코드 모음
실무에서 자주 마주치는 대표 색상들을 정리했습니다. 코드와 RGB 값을 나란히 보면 구조가 한눈에 들어옵니다.
| 색상 | 16진법 코드 | RGB 값 | 주요 용도 |
|---|---|---|---|
| 흰색 | #FFFFFF | 255, 255, 255 | 배경, 텍스트 |
| 검은색 | #000000 | 0, 0, 0 | 본문 텍스트 |
| 빨간색 | #FF0000 | 255, 0, 0 | 경고, 강조 |
| 초록색 | #008000 | 0, 128, 0 | 성공, 완료 표시 |
| 파란색 | #0000FF | 0, 0, 255 | 링크, 버튼 |
| 노란색 | #FFFF00 | 255, 255, 0 | 하이라이트 |
| 주황색 | #FFA500 | 255, 165, 0 | 알림, 포인트 |
| 회색 | #808080 | 128, 128, 128 | 보조 텍스트 |
실무에서 유용한 활용 팁
투명도까지 표현하는 8자리 코드
최신 CSS에서는 #RRGGBBAA처럼 8자리 코드도 지원합니다. 마지막 두 자리가 투명도(알파값)로, 00은 완전 투명, FF는 완전 불투명입니다. 예를 들어 #FF000080은 절반쯤 투명한 빨간색이 됩니다.
URL에 색상코드를 넣을 때는 인코딩 필수
색상코드를 웹 주소의 파라미터로 전달할 일이 종종 있습니다. 예를 들어 배너 생성 도구에 color=#FF5733 같은 값을 넘기는 경우인데, 여기서 문제가 생깁니다. # 기호는 URL에서 특별한 의미(페이지 내 위치 이동)를 갖기 때문에 그대로 쓰면 # 뒤의 값이 잘려나갑니다. 이럴 때는 #을 %23으로 변환해서 color=%23FF5733 형태로 넣어야 합니다. 변환 규칙이 헷갈린다면 URL 인코더에 붙여넣기만 하면 바로 변환된 값을 얻을 수 있습니다.
이미지에서 색을 추출했다면 용량도 함께 챙기기
디자인 작업을 하다 보면 사진이나 로고에서 스포이드로 색을 추출해 색상코드를 얻는 경우가 많습니다. 이렇게 뽑은 색으로 사이트를 꾸민 뒤 원본 이미지를 그대로 올리면 로딩 속도가 느려지기 쉽습니다. 업로드 전에 이미지 압축 도구로 용량을 줄여두면 색감은 유지하면서 페이지 속도를 지킬 수 있습니다.
자주 하는 실수와 마무리 정리
초보자가 흔히 겪는 실수 몇 가지를 짚고 넘어가겠습니다.
- 대소문자 혼동: #ff0000과 #FF0000은 완전히 같은 색입니다. 대소문자를 구분하지 않으니 걱정하지 않아도 됩니다
- 자릿수 누락: #FF00처럼 4자리나 5자리 코드는 유효하지 않습니다. 3자리, 6자리, 8자리만 정상 동작합니다
- # 기호 생략: CSS에서 color: FF0000처럼 #을 빼먹으면 색이 적용되지 않습니다
- 모니터별 색 차이: 같은 코드라도 모니터 설정에 따라 다르게 보일 수 있습니다. 코드가 틀린 게 아니라 화면 보정의 문제입니다
오늘 배운 내용을 실전으로 연결해 보세요. 먼저 자주 가는 웹사이트를 열고 개발자 도구로 버튼이나 배경의 색상코드를 직접 확인해 보는 것입니다. 그리고 그 코드를 #RRGGBB 구조로 나눠서 빨강, 초록, 파랑이 각각 얼마나 섞였는지 읽어보세요. 이 연습을 서너 번만 반복하면 색상코드가 더 이상 암호처럼 보이지 않을 것입니다.