인코딩

Data URI / Base64 이미지

이미지를 Data URI(data:image/…;base64,…)로 인코딩해 CSS/HTML에 삽입하고, Data URI나 순수 Base64를 다시 파일로 디코딩 — 모두 브라우저에서 바로.

여기에 이미지 미리보기가 표시됩니다.

A Data URI embeds a file's contents (usually an image) directly into HTML or CSS as a Base64 string, instead of linking to a separate file. This removes an extra network request at the cost of a larger document.

How to use it

Common uses

Things to keep in mind

Base64 encoding grows the data by about 33% — for large images, a Data URI is usually a worse choice than a separate file with browser caching.

A Data URI isn't cached separately from the document it's embedded in — it gets re-downloaded along with the page every time.

이 도구에 대한 아티클: Data URI: 이미지를 코드에 직접 삽입해야 할 때

자주 묻는 질문

Data URI는 언제 사용하는 게 좋은가요?

작은 아이콘이나 스프라이트처럼 별도 HTTP 요청을 줄이고 싶은 이미지를 CSS나 HTML에 직접 삽입할 때 유용합니다. 반면 용량이 큰 이미지는 파일 크기가 커지고 브라우저·이메일 클라이언트별 크기 제한에 걸릴 수 있어 적합하지 않습니다.

Data URI로 넣은 이미지도 일반 파일처럼 캐시되나요?

아니요. Data URI는 HTML/CSS 문서 안에 이미지 데이터 자체가 포함된 형태라 별도의 리소스 URL이 없고, 브라우저가 독립된 파일처럼 캐싱하지 않습니다. 같은 이미지를 여러 곳에서 반복 사용하면 문서 크기만 계속 늘어납니다.

업로드한 이미지가 서버에 저장되나요?

아니요. 인코딩과 디코딩 모두 브라우저 안에서 처리되며 이미지 파일이나 Data URI는 서버로 전송되지 않습니다.

SVG를 Base64 없이 Data URI로 사용할 수 있나요?

네. SVG는 텍스트(XML)이므로 Base64 대신 특수 문자를 percent-encoding하는 것으로 충분합니다: data:image/svg+xml,%3Csvg...%3E. 이 방식은 더 작고 CSS 파일 안에서 그대로 편집할 수 있습니다.

href 속성이나 background-image에도 Data URI를 쓸 수 있나요?

네, Data URI는 리소스 참조가 필요한 모든 곳 — src, href, CSS의 background-image, 심지어 @import에서도 사용할 수 있습니다. 문법과 크기 제한은 img 태그와 동일합니다.

아티클: 인코딩

Base64: 인코딩이 필요한 이유와 작동 방식

Base64가 바이너리 데이터를 ASCII 텍스트로 바꾸는 방법과 실제로 언제 필요한지.

Base32: Base64와 다른 점과 더 편리한 경우

대소문자를 구분하지 않는 Base32 알파벳과 Base64보다 편리한 상황.

URL Encode/Decode: 링크에서의 퍼센트 인코딩

주소와 매개변수의 특수 문자가 %XX 시퀀스로 바뀌는 과정.

HTML Entities: 특수 문자를 안전하게 표시하는 방법

< > & 문자를 이스케이프해야 하는 이유와 이것이 마크업 손상을 막는 방법.

JWT: 토큰 구조와 JWT를 "디코딩"한다는 것의 의미

JWT의 header, payload, signature와, 디코딩이 서명 검증과 다른 이유.

Unicode Escape: \uXXXX 시퀀스의 의미

JSON과 JS 문자열에 나타나는 \u0041 같은 시퀀스가 어디서 오는지, 무엇을 의미하는지.

ROT13과 시저 암호: 단순한 문자 치환

13글자 이동이 ROT13을 자기 역함수로 만드는 이유와 오늘날에도 쓰이는 이유.

Punycode: 국제화 도메인이 DNS에서 작동하는 방식

라틴 문자가 아닌 문자를 포함한 도메인이 xn-- 접두사가 붙은 ASCII 형식으로 바뀌는 과정.

모스 부호: 텍스트가 점과 선으로 바뀌는 원리

문자를 점과 선으로 인코딩하는 원리와 모스 부호가 오늘날 어디에 쓰이는지.

Gzip + Base64: 텍스트로 전송하기 위한 데이터 압축

압축된 바이너리 데이터를 텍스트 필드에 넣기 전에 Base64로도 인코딩하는 이유.

XML Entities: XML 문서에서 문자 이스케이프하기

이것이 없으면 파싱 중 문서가 깨지는, XML의 다섯 가지 필수 엔티티.