피드로 돌아가기
What is Base64? A Deep Dive for Developers
Dev.toDev.to
Backend

바이너리 데이터를 텍스트로, Base64 인코딩의 작동 원리와 실무 활용법

What is Base64? A Deep Dive for Developers

Ken Dsouza2026년 4월 5일10beginner

Context

텍스트 기반 시스템인 HTTP 헤더, JSON, XML은 원시 바이너리 데이터를 처리하지 못함. 바이너리 데이터를 직접 전송하면 데이터 손실이나 문구 왜곡 같은 오염 발생. 텍스트 전용 시스템에서도 안전하게 바이너리를 전달할 수 있는 표현 방식 필요.

Technical Solution

  • 64개의 출력 가능한 ASCII 문자셋(A-Z, a-z, 0-9, +, /)을 활용한 데이터 변환 설계
  • 8비트 단위의 바이너리 데이터를 6비트씩 쪼개어 2^6=64개의 인덱스로 매핑하는 처리 방식
  • 입력 데이터가 3바이트(24비트) 단위로 떨어지지 않을 때 '=' 문자를 추가하는 패딩 전략
  • URL 환경에서 안전한 전송을 위해 '+'를 '-'로, '/'를 '_'로 치환하는 Base64URL 변형 적용
  • HTTP 요청 횟수를 줄이기 위해 소형 이미지나 아이콘을 HTML/CSS 내부에 직접 삽입하는 인라인 임베딩 구조
  • JSON 페이로드 내에 파일을 포함하기 위해 파일 데이터를 텍스트 문자열로 변환하는 API 통신 설계

Impact

  • 인코딩 후 파일 크기 약 33% 증가

Key Takeaway

Base64는 데이터 전송의 호환성을 위한 인코딩 방식일 뿐 암호화 기술이 아니므로 보안 목적으로 사용해서는 안 됨.


HTTP Round-trip 감소가 파일 크기 증가보다 이득인 소형 아이콘/로고에 한해 인라인 임베딩을 적용할 것

원문 읽기