블로그로 돌아가기
base64 2025-02-10

Base64 인코딩 설명: 작동 원리와 사용 시기

Base64 인코딩의 철저한 설명, 그 뒤의 알고리즘, 그리고 웹 개발에서의 실용적인 사용 사례입니다.

Base64 인코딩은 컴퓨팅에서 가장 기본적인 인코딩 방식 중 하나입니다. 이메일에 이미지를 삽입하든, JSON에 바이너리 데이터를 저장하든, 인증 토큰을 처리하든, Base64는 어디에나 있습니다.

Base64란 정확히 무엇인가?

Base64는 바이너리 데이터를 64개의 인쇄 가능한 ASCII 문자 문자열로 변환하는 바이너리-텍스트 인코딩 방식입니다. "Base64"라는 이름은 64자의 알파벳을 사용한다는 사실에서 유래합니다.

Base64 알파벳

표준 Base64 알파벳은 다음으로 구성됩니다:

  • A-Z (인덱스 0-25)
  • a-z (인덱스 26-51)
  • 0-9 (인덱스 52-61)
  • + (인덱스 62)
  • / (인덱스 63)
  • = (패딩 문자)

단계별 인코딩 과정

"Hi!" 문자열을 단계별로 인코딩해 봅시다:

1. 바이너리로 변환: H=01001000, i=01101001, !=00100001

2. 연결: 010010000110100100100001

3. 6비트 그룹으로 분할: 010010 000110 100100 100001

4. 10진수로 변환: 18, 6, 36, 33

5. Base64 알파벳에 매핑: S, G, k, h

6. 결과: SGkh

패딩 설명

입력 길이가 3으로 나누어지지 않을 때 = 패딩이 추가됩니다:

  • 1바이트 남음: 2개의 Base64 문자 + ==
  • 2바이트 남음: 3개의 Base64 문자 + =
  • 0바이트 남음: 패딩 불필요

URL 안전 Base64

표준 Base64는 URL에서 특별한 의미를 가진 +/를 사용합니다. URL 안전 Base64(Base64url)는 다음을 대체합니다:

  • +-
  • /_
  • 패딩 =는 종종 생략

이 변형은 RFC 4648에 명시되어 있으며 JWT 토큰 및 기타 URL 관련 컨텍스트에서 사용됩니다.

일반적인 사용 사례

HTML/CSS의 데이터 URI

embedded image

이메일 첨부 파일 (MIME)

SMTP와 같은 이메일 프로토콜은 7비트 ASCII만 지원합니다. Base64를 사용하면 바이너리 파일을 안전하게 전송할 수 있습니다.

HTTP 기본 인증

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

// "username:password"로 디코딩됩니다

크기 오버헤드

Base64 인코딩은 데이터 크기를 약 33% 증가시킵니다. 3바이트의 입력은 4바이트의 출력을 생성합니다.

중요한 알림

  • Base64는 인코딩이지 암호화가 아닙니다. 보안을 제공하지 않습니다.
  • 항상 33% 크기 증가를 고려하세요
  • URL에 Base64 문자열이 나타날 때는 URL 안전 변형을 사용하세요

Base64 인코더/디코더 도구를 사용하여 즉시 인코딩 및 디코딩하세요.