TOOLHUB

Base64가 뭐고 왜 쓰는 걸까? — 5분 정리

Base64 인코딩의 원리, 사용 사례, 흔한 오해와 주의점을 개발자·비개발자 모두를 위해 정리했습니다.

[광고 자리 · slot: 4444444444]

Base64, 한 줄 정의

Base64는 바이너리 데이터를 ASCII 64개 문자(A-Z, a-z, 0-9, +, /)로 안전하게 표현하는 인코딩 방식입니다. 암호화가 아닙니다.

왜 필요한가?

많은 전송 수단(이메일 헤더, URL, JSON, HTML 속성 등)은 원래 텍스트만 전달하도록 설계돼 있어서 바이너리 데이터를 넣으면 중간 경로에서 깨질 수 있습니다. Base64는 어떤 바이트 열도 "텍스트처럼 보이는 문자열"로 바꿔 어디든 안전하게 실어 나르게 해 줍니다.

동작 원리

  1. 원본 바이트 열을 3바이트(24비트) 블록으로 자릅니다.
  2. 각 블록을 6비트씩 4조각으로 쪼갭니다.
  3. 각 6비트 값(0~63)을 Base64 테이블의 문자로 매핑합니다.
  4. 바이트 수가 3의 배수가 아니면 = 패딩을 붙여 길이를 맞춥니다.

결과적으로 원본보다 약 4/3(33%) 더 길어집니다.

자주 쓰는 상황

  • 이메일 첨부(MIME)
  • HTML/CSS 안에 이미지 임베드 (data:image/png;base64,...)
  • JSON에 바이너리 담기 (예: JWT 헤더/페이로드)
  • URL 파라미터로 짧은 바이너리 전달 (URL-safe Base64 사용)

흔한 오해

  • "Base64는 암호화다" — 아닙니다. 누구나 디코딩하면 원본이 그대로 나옵니다. 보안이 필요하면 AES 같은 암호화를 써야 합니다.
  • "한글이 포함된 문자열은 안 된다" — UTF-8 바이트로 먼저 변환한 뒤 Base64를 적용하면 됩니다. Base64 도구는 이를 자동 처리합니다.

직접 해보기

브라우저에서 바로 인코딩/디코딩해 볼 수 있는 Base64 인코더/디코더를 준비했습니다. 입력은 서버로 전송되지 않고 브라우저 안에서만 처리됩니다.

관련 도구

[광고 자리 · slot: 5555555555]