Base64 인코딩 완전 정복: 개발자를 위한 사용 가이드

Base64가 뭔가요? 왜 이미지를 텍스트로 바꾸나요? 개발하다 보면 자주 마주치는 Base64 인코딩의 모든 것을 쉽게 설명합니다.

1. Base64란 무엇인가?

Base64는 바이너리 데이터(이미지, 파일 등)를 텍스트 형태로 변환하는 인코딩 방식입니다. 64개의 안전한 문자(A-Z, a-z, 0-9, +, /)만 사용하여 데이터를 표현합니다.

예시:

원본 텍스트: Hello

Base64 인코딩: SGVsbG8=

2. 왜 Base64를 사용할까?

이유 #1: 이메일 전송

이메일은 텍스트만 전송할 수 있습니다. 이미지 첨부 파일은 Base64로 변환되어 전송됩니다.

이유 #2: Data URI

HTML/CSS에서 이미지를 직접 삽입할 때 Base64를 사용합니다.

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

이유 #3: API 인증

Basic Authentication에서 username:password를 Base64로 인코딩하여 전송합니다.

3. Base64의 장단점

장점:

  • ✅ 바이너리 데이터를 텍스트로 안전하게 전송
  • ✅ 별도 파일 업로드 없이 HTML/CSS에 이미지 삽입 가능
  • ✅ HTTP 요청 수 감소 (작은 아이콘들)

단점:

  • ❌ 용량이 약 33% 증가합니다
  • ❌ 큰 이미지는 적합하지 않음
  • ❌ 브라우저 캐싱 불가

4. Base64 사용 사례

사례 1: 작은 아이콘 삽입

웹사이트 로딩 속도를 높이기 위해 작은 아이콘(10KB 이하)을 Base64로 인코딩하여 CSS에 직접 삽입합니다.

사례 2: JWT 토큰

JSON Web Token은 Header와 Payload를 Base64로 인코딩합니다.

사례 3: 이미지 미리보기

파일 업로드 미리보기 기능에서 이미지를 Base64로 변환하여 즉시 보여줍니다.

5. Base64 인코딩/디코딩 하는 방법

방법 1: JavaScript

// 인코딩 const encoded = btoa("Hello");  // "SGVsbG8=" // 디코딩 const decoded = atob("SGVsbG8=");  // "Hello"

방법 2: Python

import base64 # 인코딩 encoded = base64.b64encode(b"Hello") # 디코딩 decoded = base64.b64decode(encoded)

방법 3: 온라인 도구 사용 (가장 간편!)

코드 없이 클릭 한 번으로 변환하세요.

6. Base64는 암호화가 아닙니다!

⚠️ 중요한 주의사항

Base64는 인코딩이지 암호화가 아닙니다. 누구나 쉽게 디코딩할 수 있으므로 비밀번호나 개인정보를 Base64로만 보호하면 안 됩니다!

7. 언제 Base64를 사용하면 좋을까?

  • ✅ 작은 이미지 (10KB 이하)
  • ✅ 아이콘, 로고
  • ✅ Data URI가 필요한 경우
  • ✅ 이메일 첨부 파일

사용하지 말아야 할 경우:

  • ❌ 큰 이미지 (100KB 이상)
  • ❌ 보안이 필요한 데이터
  • ❌ 자주 변경되는 이미지

마무리

Base64는 개발자라면 반드시 알아야 할 기본 개념입니다. 언제 사용하고, 언제 사용하지 말아야 하는지만 제대로 알아도 웹 성능 최적화에 큰 도움이 됩니다.

Cheetset이 여러분의 개발 여정을 응원합니다! 🚀

Share this post

Base64 인코딩 완전 정복: 개발자를 위한 사용 가이드