Base64는 8비트 이진 데이터(이미지, 실행 파일 등)를 ASCII 영역의 64개 문자만 사용하여 텍스트로 변환하는 인코딩 방식입니다.
쉽게 말해, 컴퓨터만 이해하는 복잡한 이진 데이터를 **"전 세계 어디서나 통용되는 안전한 문자 포장지"**로 감싸는 것이라고 이해하면 됩니다.
왜 굳이 변환하나요?
과거의 네트워크 시스템(특히 이메일 전송 표준인 SMTP)은 오직 7비트 ASCII 문자만 처리할 수 있었습니다. 여기에 한글이나 이미지 같은 8비트 데이터를 그대로 보내면 시스템이 해석하지 못해 데이터가 깨지거나 전송이 중단되는 사고가 발생했죠. Base64는 이런 데이터 깨짐 현상을 방지하기 위해 등장했습니다.
2. Base64의 핵심 원리: "3-to-4" 규칙
인코딩 4단계 (예: "Man" 변환하기)
-
2진수 변환: 문자 "Man"을 ASCII 코드로 바꾼 뒤 이진수로 나열합니다.
-
M(77) →
01001101/ a(97) →01100001/ n(110) →01101110
-
-
6비트 분할: 총 24비트의 데이터를 앞에서부터 6비트씩 4묶음으로 자릅니다.
-
010011|010110|000101|101110
-
-
10진수 치환: 자른 6비트 묶음을 다시 숫자로 바꿉니다.
-
19 | 22 | 5 | 46
-
-
문자 매핑: 아래의 Base64 색인표에서 숫자에 해당하는 문자를 찾습니다.
-
T | W | F | u
-
결과: "Man"은 Base64로 인코딩하면 **"TWFu"**가 됩니다!
3. 끝에 붙는 = 기호는 무엇인가요?
Base64는 데이터를 3바이트(24비트) 단위로 처리하는데, 원본 데이터가 1바이트나 2바이트만 남아서 딱 떨어지지 않을 때가 있습니다. 이때 비어있는 자리를 0으로 채우고, 보는 사람에게 "여기는 원래 데이터가 없던 자리야"라고 알려주기 위해 =을 붙이는 것입니다.

