기술 2026년 5월 12일 약 2분

Base64 인코더/디코더 — 데이터 인코딩의 원리와 활용

O
Oiyo 기여자

Base64란 무엇인가

Base64는 바이너리 데이터를 ASCII 문자로 표현하는 인코딩 방식입니다. 이미지, 파일, 바이너리 데이터를 텍스트 기반 시스템(이메일, JSON, HTML)에서 안전하게 전송하기 위해 사용됩니다.

64개의 ASCII 문자(A-Z, a-z, 0-9, +, /)를 사용해 모든 바이너리 데이터를 표현합니다.


Base64 인코더 / 디코더

이미지 Base64 변환기

Binary to Text Serialization

이미지를 텍스트 데이터(Base64)로 변환하여 코드에 직접 삽입할 수 있게 합니다.

Data URI 형식
순수 Base64

Base64 인코딩 원리

3바이트(24비트)의 이진 데이터를 4개의 6비트 그룹으로 나눕니다.

원문: "Man"
ASCII: 77 97 110
이진: 01001101 01100001 01101110

6비트 분할: 010011 010110 000101 101110
Base64 인덱스: 19 22 5 46
Base64 문자: T W F u
결과: "TWFu"

Base64로 인코딩하면 원래 데이터보다 약 33% 크기가 늘어납니다 (3바이트 → 4문자).


주요 활용 사례

1. 이미지를 HTML/CSS에 직접 삽입

<img src="data:image/png;base64,iVBORw0KGgo..." />
.icon {
  background-image: url("data:image/svg+xml;base64,...");
}

작은 아이콘을 별도 파일 요청 없이 바로 넣을 때 유용합니다.

2. 이메일 첨부파일 (MIME)

이메일 프로토콜(SMTP)은 텍스트만 전송 가능합니다. 첨부파일은 Base64로 인코딩해 텍스트로 변환 후 전송됩니다.

3. JWT (JSON Web Token)

JWT의 헤더·페이로드는 Base64Url로 인코딩됩니다. (Base64의 +-로, /_로 교체한 변형)

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0...

4. API 인증 (Basic Auth)

HTTP Basic 인증에서 username:password를 Base64로 인코딩합니다.

Authorization: Basic dXNlcjpwYXNz

5. 데이터 URL

파일 내용을 URL 형식으로 표현합니다.

data:text/plain;base64,SGVsbG8gV29ybGQ=

Base64 vs URL 인코딩

항목Base64URL 인코딩 (%인코딩)
목적바이너리→텍스트 변환URL 특수문자 처리
출력A-Z, a-z, 0-9, +, /%XX 형식
크기 증가33%최대 300%
주요 사용처이메일, JWT, 이미지URL 파라미터

자주 하는 실수

  • Base64 ≠ 암호화: Base64는 누구나 디코딩 가능합니다. 보안을 위한 수단이 아닙니다.
  • 패딩 =: Base64 문자열 끝의 =은 패딩 기호로 3의 배수가 아닌 데이터를 맞추기 위한 것입니다. 제거하면 디코딩이 실패할 수 있습니다.
  • Base64Url: URL에서 사용할 때는 +-, /_로 교체한 Base64Url을 사용해야 합니다.
O

Oiyo

Content Editor

지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.