이미지 Base64 변환은 바이너리 이미지 데이터를 ASCII 텍스트 문자열로 인코딩하는 기술입니다. Base64는 64개의 출력 가능한 문자(A-Z, a-z, 0-9, +, /)로 바이너리 데이터를 표현하며, 3바이트마다 4개의 Base64 문자로 변환하고 끝에 = 패딩을 추가합니다. 전체 인코딩 과정은 RFC 4648 표준을 따릅니다.
**인코딩 원리**: Base64는 3바이트(24비트)를 네 개의 6비트 그룹으로 나누고 각 그룹을 Base64 알파벳의 문자에 매핑합니다. 바이트 수가 3의 배수가 아니면 끝에 1-2개의 = 패딩 문자를 추가합니다. 그래서 파일 크기가 약 33%(4/3 ≈ 1.33) 증가합니다.
**Web Worker 최적화**: 이 도구는 Web Worker를 사용해 메인 스레드와 분리된 브라우저 스레드에서 인코딩을 실행합니다. ArrayBuffer.transfer()로 Worker에 zero-copy 전송을 수행해 메인 스레드 차단을 피합니다. 수 MB 이미지도 UI가 부드럽게 반응하며 진행률을 실시간으로 표시합니다.
**개인정보 보호와 보안**: 이미지를 서버에 업로드해야 하는 도구와 달리 이 도구는 완전히 브라우저에서 실행됩니다. 이미지 데이터가 제3자 서버를 거치지 않으므로 신분증이나 계약서 같은 민감한 이미지를 다룰 때 특히 중요합니다.
**사용 사례**: Base64 이미지는 CSS Sprites(HTTP 요청 감소), HTML 이메일 템플릿(메일 클라이언트의 이미지 차단 회피), API 바이너리 데이터 전송, 외부 리소스를 참조할 수 없는 브라우저 확장 또는 단일 파일 앱에서 자주 사용됩니다.