도구상자FREE ONLINE TOOLS
← 가이드 목록

이미지를 코드 안에 — Base64 데이터 URI 쓰는 법

코드를 보다가 data:image/png;base64,iVBORw0KGgo… 같은 끝없는 문자열을 만난 적이 있다면, 그게 바로 이미지를 글자로 바꿔 코드에 심은 것입니다. 파일 없이 그림을 넣는 이 방식의 구조와 쓸 곳·피할 곳을 정리합니다.

데이터 URI의 구조

데이터 URI는 "주소 대신 내용을 담은 주소"입니다.

data:image/png;base64,iVBORw0KGgoAAAANS...
↑스킴  ↑MIME 타입   ↑인코딩  ↑Base64로 글자화된 이미지 데이터
  • 이미지의 바이너리를 Base64(64개 문자만 쓰는 표기법)로 글자화한 것이라, 코드·텍스트 어디든 넣을 수 있습니다.
  • HTML에서는 <img src="data:...">, CSS에서는 background-image: url(data:...)로 그대로 사용합니다.

어울리는 경우

  • 작은 아이콘·로고 — 수 KB짜리 이미지를 별도 요청 없이 표시. 요청 수가 줄어 빠릅니다.
  • 단일 파일 배포 — HTML 하나로 완결돼야 하는 보고서·오프라인 문서. 이미지가 코드 안에 있으니 파일이 흩어질 일이 없습니다.
  • 이메일 서명·템플릿 — 외부 이미지가 차단되는 메일 환경에서 유용합니다(일부 클라이언트는 data URI도 제한하니 테스트 필요).
  • CSS만으로 끝내고 싶은 작은 장식 — 패턴·불릿 같은 마이크로 그래픽.

치러야 할 비용 — 33%와 캐시

  • 용량 +33% — Base64는 같은 데이터를 더 많은 글자로 표현하므로 원본보다 약 1/3 커집니다.
  • 캐시를 잃음 — 일반 이미지 파일은 한 번 받으면 브라우저가 기억하지만, 코드에 박힌 이미지는 페이지를 받을 때마다 함께 내려옵니다.
  • 결론: 작고 한 몸이어야 하는 것엔 데이터 URI, 크고 여러 곳에서 재사용되는 것엔 일반 파일.

만들기·되돌리기 단계

  1. 이미지를 변환 도구에 올리면 Base64 데이터 URI가 생성됩니다.
  2. 통째로 복사해 img src나 CSS url()에 붙여 넣습니다.
  3. 반대로, data:로 시작하는 문자열을 붙여 넣으면 원본 이미지를 미리 보고 파일로 내려받을 수 있습니다.
이미지 ↔ Base64인코딩·디코딩 양방향 — 브라우저 안에서만 변환하기 →
자주 묻는 질문
Q. 데이터 URI가 정확히 뭔가요?

파일 주소 대신 파일 내용 자체를 글자로 담은 주소입니다. 이미지의 바이너리 데이터를 Base64로 글자화해서 data:image/png;base64,iVBORw0… 형태로 만들면, 브라우저는 이 긴 문자열을 주소처럼 읽어 이미지를 그려 냅니다. 외부 파일 요청 없이 HTML·CSS 코드 안에 그림이 통째로 들어가는 셈입니다.

Q. 언제 데이터 URI를 쓰고 언제 일반 파일을 쓰나요?

작고 한 몸이어야 하는 것에는 데이터 URI, 크고 재사용되는 것에는 일반 파일이 맞습니다. 수 KB짜리 아이콘·로고, HTML 파일 하나로 배포해야 하는 보고서·이메일 서명 같은 경우가 전자입니다. 반면 큰 사진은 Base64로 33%쯤 커지는 데다 브라우저 캐시의 이점도 잃으므로, 여러 페이지에서 반복 사용되는 큰 이미지는 일반 파일이 유리합니다.

Q. 받은 Base64 문자열을 다시 이미지로 볼 수도 있나요?

네, 디코딩하면 됩니다. 이미지 ↔ Base64 변환 도구에 data:로 시작하는 문자열을 붙여 넣으면 원래 이미지를 미리보기로 확인하고 파일로 내려받을 수 있습니다. 코드 속에 박혀 있는 이미지가 무엇인지 확인하거나, API 응답으로 받은 Base64 이미지를 꺼내 볼 때 유용합니다.

함께 보면 좋은 가이드