1. Base64란?
Base64는 바이너리 데이터(이미지, 파일 등)를 텍스트로 변환하는 인코딩 방식입니다. 64개의 ASCII 문자(A-Z, a-z, 0-9, +, /)와 패딩 문자(=)를 사용해 안전하게 전송할 수 있게 합니다.
2. 왜 사용하나요?
- 텍스트만 허용하는 시스템(예: JSON, 이메일, HTTP)에서 바이너리 데이터를 보낼 때.
- 데이터 손상 방지: 특수 문자가 바이너리에 섞이지 않음.
- 예: 플러터 앱에서 파일을 Base64로 변환해 서버로 업로드.
3. 어떻게 작동하나요?
- 바이너리 데이터를 8비트 바이트로 봅니다.
- 6비트 단위로 나눕니다 (3바이트 = 24비트 = 4개의 6비트).
- 각 6비트를 0-63 숫자로 변환 후, Base64 테이블에서 문자로 매핑.
- 나머지 비트가 부족하면 =로 패딩.
도식화 (간단 예: "Man" 문자열)
- 원본: M a n (ASCII: 77, 97, 110 → 바이너리: 01001101 01100001 01101110)
- 6비트 나누기: 010011 010110 000101 101110
- 10진수: 19, 22, 5, 46
- Base64 매핑: T W F u
- 결과: TWFu
Base64 역직렬화(디코딩)는 Base64 문자열을 원본 바이너리로 복원합니다.
- Base64 문자열을 4문자(24비트) 단위로 나눕니다.
- 각 문자를 6비트(0-63)로 매핑 후 결합해 8비트 바이트로 재구성.
- 패딩(=) 무시.
도식화 ("TWFu" 디코딩 예):
- Base64: T W F u (인덱스: 19, 22, 5, 46 → 6비트: 010011 010110 000101 101110)
- 8비트 재구성: 01001101 01100001 01101110 (ASCII: 77, 97, 110 → "Man")
'SpringBoot' 카테고리의 다른 글
| SSE(Server-Sent Events) 채팅 시스템 (4) | 2025.09.02 |
|---|---|
| 폴링 채팅 시스템 (1) | 2025.09.02 |
| Swagger란? (1) | 2025.07.21 |
| JWT란? (0) | 2025.07.21 |
| 이미지 업로드 기능 (0) | 2025.07.21 |