Base64란 무엇인가? 완벽 가이드
Base64 인코딩의 원리, 사용 사례, 그리고 왜 개발자들이 이를 사용하는지 알아봅니다.
5분 읽기
Base64란?
Base64는 바이너리 데이터를 ASCII 문자열로 인코딩하는 방식입니다. 64개의 인쇄 가능한 문자(A-Z, a-z, 0-9, +, /)만을 사용하여 모든 종류의 데이터를 안전하게 텍스트로 표현할 수 있습니다.
왜 Base64를 사용하나요?
-
이메일 전송: SMTP 프로토콜은 7비트 ASCII만 지원하므로, 바이너리 첨부 파일을 전송할 때 Base64가 필수입니다.
-
HTML/CSS 임베딩: Data URI를 사용하여 이미지를 HTML이나 CSS에 직접 포함할 수 있습니다.
-
API 통신: JSON은 바이너리 데이터를 직접 지원하지 않으므로, Base64로 인코딩하여 전송합니다.
Base64 인코딩 과정
- 원본 데이터를 8비트 바이트로 분할
- 6비트 단위로 재그룹화
- 각 6비트 값을 Base64 문자표에서 해당하는 문자로 변환
- 필요시 패딩(=) 추가
JavaScript에서 Base64 사용하기
// 인코딩 const encoded = btoa('Hello, World!'); console.log(encoded); // "SGVsbG8sIFdvcmxkIQ==" // 디코딩 const decoded = atob('SGVsbG8sIFdvcmxkIQ=='); console.log(decoded); // "Hello, World!"
주의사항
- Base64로 인코딩하면 데이터 크기가 약 33% 증가합니다.
- Base64는 암호화가 아닙니다. 누구나 쉽게 디코딩할 수 있습니다.
- 큰 파일을 Base64로 인코딩하면 메모리 사용량이 크게 증가할 수 있습니다.