개발자 도구7 분 읽기|MJ민재

Base64 인코딩 디코딩 완벽 가이드 - 원리부터 활용법까지 2026

Base64 인코딩이란 무엇인지, 이메일/이미지/API에서 왜 쓰이는지, 3바이트→4문자 변환 원리, 개발자를 위한 실무 팁까지.

Base64 인코딩은 모든 개발자가 만나지만 완전히 이해하는 사람은 드문 주제입니다. 이메일 첨부파일, HTML 이미지 임베딩, JSON API를 통한 바이너리 데이터 전송 등 Base64는 바이너리와 텍스트 세계를 연결하는 다리 역할을 합니다.

Base64 인코딩이란?

Base64는 바이너리 데이터를 64개의 안전한 ASCII 문자(A-Z, a-z, 0-9, +, /)로 변환하는 인코딩 방식입니다. 이메일(SMTP)처럼 원시 바이너리를 손상시킬 수 있는 텍스트 전용 채널을 통해 바이너리를 안전하게 전송하기 위해 설계되었습니다.

  • 한 번에 3바이트(24비트)의 바이너리 데이터를 처리
  • 6비트씩 4개 그룹으로 분할
  • 각 6비트 그룹을 64개의 출력 가능한 ASCII 문자 중 하나로 매핑
  • 결과는 원본보다 항상 약 33% 더 큼
  • 입력 길이가 3으로 나누어지지 않으면 = 패딩 사용

왜 Base64를 사용하나요?

Base64는 근본적인 문제를 해결합니다: 텍스트 기반 형식에 바이너리 데이터를 포함하는 방법. 주요 사용 사례:

  • 이메일 첨부파일(MIME): 7비트 ASCII만 처리하는 SMTP 서버를 통해 안전하게 전송하기 위해 원시 바이너리 파일을 Base64로 인코딩.
  • HTML/CSS의 Data URI: data:image/png;base64,...를 사용해 작은 이미지를 HTML에 직접 임베딩하여 추가 HTTP 요청 제거.
  • API 페이로드(JSON): JSON은 바이너리를 지원하지 않으므로, 요청/응답 본문에 파일과 이미지를 포함하려면 Base64 인코딩 필요.
  • JWT 토큰: JSON Web Token은 URL-safe Base64(base64url)를 사용해 헤더, 페이로드, 서명을 인코딩.
  • HTTP Basic 인증: 사용자 이름과 비밀번호를 결합하여 Authorization 헤더에 Base64 인코딩.

지금 이 도구를 사용해 보세요:

Base64 인코더/디코더 바로 사용하기

표준 Base64 vs URL-Safe Base64

표준 Base64는 +와 / 문자를 사용하는데, URL에서 특별한 의미가 있습니다. URL-safe Base64(base64url)는 이를 대체합니다:

  • 표준: A-Z, a-z, 0-9, +, / 사용, = 패딩 포함
  • URL-safe: +를 -로, /를 _로 교체, = 패딩 제거
  • JWT 토큰은 항상 URL-safe Base64 사용
  • 웹 애플리케이션에서는 URL-safe가 더 안전한 선택

이미지 → Base64: 실무 가이드

이미지를 Base64로 변환하면 HTML이나 CSS에 직접 임베딩할 수 있습니다. 다만 다음 가이드라인을 참고하세요:

  • 작은 이미지에 적합(<10KB): 아이콘, 로고, 작은 UI 요소는 인라인 임베딩이 유리 — HTTP 요청 감소.
  • 큰 이미지에는 부적합(>50KB): Base64는 바이너리보다 33% 더 큼. 100KB 이미지가 Base64로 133KB가 되고, 별도 캐싱 불가.
  • 형식: data:image/png;base64,iVBORw0KGgo... — 접두사가 MIME 타입을 지정.
  • Image 탭을 사용하면 모든 이미지를 즉시 data URI 형식으로 변환할 수 있습니다.

도구 비교: btoa()/atob() vs 터미널 vs QuickFigure

  • JavaScript btoa()/atob(): 브라우저 내장 함수이지만, btoa()는 Latin1 문자만 처리 — 유니코드/이모지에서 실패. UTF-8에는 TextEncoder 우회 필요.
  • 터미널(base64 명령): Mac/Linux에서 `echo -n 'text' | base64`로 사용. 스크립트에 좋지만 이미지 지원이나 URL-safe 모드 없음.
  • QuickFigure: UTF-8 처리, URL-safe 토글, 이미지 드래그앤드롭, 양방향 변환, 바이트 크기 통계. 모든 처리가 브라우저에서 — 데이터가 서버로 전송되지 않음.

지금 이 도구를 사용해 보세요:

Base64 도구로 지금 확인하기

자주 묻는 질문

Base64는 암호화인가요?

아니요. Base64는 인코딩이지 암호화가 아닙니다. 어떤 보안도 제공하지 않습니다 — 누구나 Base64를 원본 데이터로 디코딩할 수 있습니다. 민감한 정보를 '보호'하는 데 Base64를 사용하지 마세요. 보안에는 실제 암호화(AES, RSA)를 사용하세요.

왜 Base64 결과가 입력보다 큰가요?

Base64는 3바이트를 4문자로 변환합니다(8비트 대신 6비트씩). 이로 인해 약 33%의 크기 증가가 발생합니다. 이것이 바이너리 데이터를 텍스트로 안전하게 표현하기 위한 트레이드오프입니다.

모든 파일 유형을 Base64로 인코딩할 수 있나요?

네, Base64는 이미지, PDF, 오디오, 실행 파일 등 모든 바이너리 데이터를 인코딩할 수 있습니다. 다만 33% 크기 오버헤드 때문에 작은 파일에 가장 실용적입니다.

= 패딩은 무엇을 의미하나요?

Base64는 3바이트 그룹으로 작동합니다. 입력이 3으로 나누어지지 않으면 출력을 4의 배수로 맞추기 위해 = 문자가 추가됩니다. =는 1바이트 패딩, ==는 2바이트 패딩을 의미합니다.

이 글에서 다룬 도구 바로 사용하기

MJ

민재

개발자 겸 테크 라이터. 개발 도구와 파일 변환 기술을 깊이 있게 다룹니다.

이 글이 도움이 되셨나요? 새 가이드 알림 받기

스팸 없이, 새 소식만 보내드립니다. 언제든 취소 가능. · 구독 시 개인정보처리방침에 동의합니다.

이런 글도 좋아하실 수 있어요

84+

제공 도구

97+

블로그 글

English & 한국어

지원 언어

이 페이지를 즐겨찾기하세요! 매주 새로운 무료 도구가 추가됩니다.