Base64 인코딩이란 무엇이며 언제 사용해야 하나요

· 4 분 소요

API, 이메일 시스템, 웹 개발을 다룬다면 알아채지 못했더라도 Base64를 만난 적이 있을 것입니다. 알 수 없는 글자처럼 보이는 그 긴 영문자와 숫자 문자열? 아마도 Base64일 것입니다.

Base64가 하는 일

Base64는 이진 데이터(어떤 바이트 시퀀스든)를 "안전한" 64개 문자(A-Z, a-z, 0-9, +, /)만 사용하는 텍스트 문자열로 변환합니다. 결과는 필요한 경우 항상 = 패딩으로 끝납니다.

예시:

이 인코딩이 존재하는 이유는 많은 시스템(이메일, JSON, URL, XML)이 텍스트만 처리하기 때문입니다. 이진 데이터 — 이미지, 압축 파일, 원시 바이트 — 에는 이런 시스템을 망가뜨릴 수 있는 문자가 포함될 수 있습니다. Base64는 이진 데이터를 어떤 텍스트 채널이라도 손상 없이 통과하는 텍스트로 변환합니다.

일반적인 사용처

HTML/CSS에 이미지 임베드:

<img src="data:image/png;base64,iVBORw0KGgoAAAA..." />

작은 아이콘과 로고를 HTML에 직접 임베드하여 추가 HTTP 요청을 없앨 수 있습니다.

API 페이로드: API가 JSON을 기대하지만 이진 데이터(파일 업로드, 서명 이미지)를 포함해야 할 때, Base64로 인코딩하면 일반 텍스트 필드처럼 포함할 수 있습니다.

이메일 첨부: 이메일 프로토콜(SMTP)은 텍스트 기반입니다. 모든 첨부 파일은 텍스트로 전송되도록 뒤에서 Base64로 인코딩됩니다.

인증 헤더: HTTP 기본 인증은 사용자:비밀번호를 Base64로 인코딩하여 Authorization 헤더에 넣습니다. (이는 인코딩이지 암호화가 아닙니다 — 그 자체로는 어떤 보안도 제공하지 않습니다.)

인코딩과 디코딩 방법

  1. 인코딩 또는 디코딩을 선택하세요 — 변환 방향을 선택하세요.
  2. 텍스트를 붙여 넣거나 파일을 가져오세요 — 텍스트를 직접 입력하거나 파일을 드래그 앤 드롭하세요(최대 5MB).
  3. 결과를 복사하세요 — 출력이 즉시 업데이트됩니다. 클립보드로 복사하세요.

Base64를 사용해야 할 때

사용해야 할 때:

사용하지 말아야 할 때:

요령

자주 묻는 질문

Base64가 내 데이터를 암호화하나요?

아니요. Base64는 인코딩이지 암호화가 아닙니다. 누구나 Base64 문자열을 디코딩할 수 있습니다 — 어떤 보안도 제공하지 않습니다. 데이터를 보호하려면 실제 암호화(AES, RSA 등)를 사용하세요.

왜 Base64는 파일을 더 무겁게 만드나요?

Base64 인코딩은 데이터 크기를 약 33% 증가시킵니다. 3바이트의 이진 데이터가 4개의 Base64 문자가 됩니다. 이 오버헤드는 이진 데이터를 텍스트로 안전하게 전송할 수 있게 하는 비용입니다.

텍스트뿐 아니라 파일도 인코딩할 수 있나요?

네. 모든 파일(이미지, PDF, 오디오)은 Base64로 인코딩할 수 있습니다. 작은 이미지를 데이터 URL 형태로 HTML이나 CSS에 직접 임베드할 때 흔히 사용됩니다.

Base64를 사용하지 말아야 할 때는 언제인가요?

큰 파일에는 사용하지 마세요. 1MB 이미지는 Base64 텍스트로 1.33MB가 되며, 브라우저가 별도로 캐싱할 수 없습니다. 몇 KB를 넘는 것이라면 파일을 정상적으로 제공하는 것이 더 효율적입니다.