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
이메일 첨부 파일 (MIME)
SMTP와 같은 이메일 프로토콜은 7비트 ASCII만 지원합니다. Base64를 사용하면 바이너리 파일을 안전하게 전송할 수 있습니다.
HTTP 기본 인증
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
// "username:password"로 디코딩됩니다
크기 오버헤드
Base64 인코딩은 데이터 크기를 약 33% 증가시킵니다. 3바이트의 입력은 4바이트의 출력을 생성합니다.
중요한 알림
- Base64는 인코딩이지 암호화가 아닙니다. 보안을 제공하지 않습니다.
- 항상 33% 크기 증가를 고려하세요
- URL에 Base64 문자열이 나타날 때는 URL 안전 변형을 사용하세요
Base64 인코더/디코더 도구를 사용하여 즉시 인코딩 및 디코딩하세요.