1. Base64
1️⃣ Base64 란?
1) 개념
데이터를 "텍스트 형태로 안전하게 표현하기 위한 인코딩 방식"
- 바이너리 데이터(이미지, 파일, 암호키 등)를 ASCII 문자로 변환
- 이름 의미
- 사용 가능한 문자 집합이 64개
- 사용 문자
A–Z (26)
a–z (26)
0–9 (10)
+ /총 64개 문자
(+ 패딩용
=)2️⃣ 왜 Base64를 사용할까?
1) 핵심 이유
- 텍스트만 안전한 환경 때문
- 인터넷의 많은 시스템은 기본적으로 텍스트 중심
- 예
- 이메일 (SMTP)
- JSON / XML
- URL
- HTTP 헤더
- 쿠키
이 환경들은 바이너리 데이터 직접 처리 어려움 ❌
✅ 텍스트는 안정적
➡️ 바이너리 → 텍스트 변환 필요 → Base64
2) 대표 사용 사례
- 이미지 데이터를 JSON에 포함
- 이메일 첨부파일
- JWT 토큰
- 암호화 키 표현
- Data URI
- 예
<imgsrc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."/>3️⃣ 장단점
1) 장점
- 안전성
- 텍스트만 허용되는 환경에서도 사용 가능
- 깨짐 / 손상 위험 감소
- 호환성
- 거의 모든 시스템에서 처리 가능
- 플랫폼 독립적
- 단순성
- 구현이 매우 간단
- 디코딩도 쉬움
2) 단점
- 데이터 크기 증가
- Base64 인코딩 시 약 33% 증가
- 이유 : 3바이트 → 4문자 변환 구조
- 예
원본: 3 bytes (24 bits)
Base64: 4 chars (32 bits)- 암호화 아님
- 보안 기술 ❌ 단순 변환 ⭕
누구나 디코딩 가능
- 처리 비용
- 인코딩 / 디코딩 CPU 사용
- 대량 데이터 시 부담
4️⃣ 동작 원리 (실행 흐름)
Base64 핵심 아이디어 : 6비트 단위 변환
Step 1) 데이터를 비트로 변환
예:
문자: "Man"
M → 01001101
a → 01100001
n → 01101110합치면:
010011010110000101101110
(24 bits)Step 2) 6비트씩 분할
010011 010110 000101 101110Step 3) 10진수 변환
010011 → 19
010110 → 22
000101 → 5
101110 → 46Step 4) Base64 문자 매핑
Base64 테이블 사용:
19 → T
22 → W
5 → F
46 → u결과:
TWFu5️⃣ 패딩(=)이 필요한 이유
- 입력 데이터가 3바이트 단위가 아닐 경우 발생
- 예
- 1바이트 →
== - 2바이트 →
=
- 목적 : 길이 맞추기
6️⃣ 핵심 요약 (시험용 / 면접용)
- Base64 = 인코딩 방식
- 목적 = 바이너리 → 텍스트 변환
- 특징
- 안전성 ↑
- 크기 ↑ (~33%)
- 보안 X
- 6비트 단위 변환
7️⃣ 그림으로 이해하기

Share article