Base64 인코딩 설명: 언제 어떻게 사용하나요
Base64 문자열은 어디에서나 볼 수 있습니다 — 이메일 첨부파일, 데이터 URI, API 토큰, JWT 페이로드까지. 문자, 숫자, 그리고 가끔 +나 /로 구성된 긴 문자열은 암호화된 데이터처럼 보일 수 있지만, Base64는 암호화가 전혀 아닙니다. 인코딩 방식이며, 그 차이를 이해하는 것이 중요합니다.
Base64 인코딩이란?
Base64는 이진 데이터를 64개의 출력 가능한 ASCII 문자(A-Z, a-z, 0-9, +, /)와 패딩용 =를 사용하여 텍스트로 변환합니다. 이를 통해 텍스트 전용 시스템에서 이진 데이터를 안전하게 전송할 수 있습니다.
결과는 항상 원본보다 33% 더 커집니다 — 이것이 텍스트 안전성을 위한 대가입니다.
Base64 인코더로 직접 시도해보세요 — 텍스트를 붙여넣고 즉시 변환을 확인하세요. 모든 인코딩은 브라우저에서 처리되므로 데이터가 비공개로 유지됩니다.
Base64 작동 원리
인코딩 과정은 입력을 6비트 그룹으로 분할하고 (2^6 = 64이므로) 각 그룹을 64개 문자 중 하나에 매핑합니다. 입력 길이가 3으로 나누어지지 않으면 = 패딩이 나타납니다.
Base64를 사용해야 할 때
HTML/CSS에 이미지 임베딩
데이터 URI는 작은 이미지에 대한 HTTP 요청을 제거합니다. 10KB 미만의 아이콘에 적합합니다. 더 큰 이미지는 먼저 이미지 최적화기로 최적화하세요.
API 데이터 전송
API가 JSON 페이로드에 이진 데이터를 넣어야 할 때, Base64가 표준 인코딩입니다.
JWT 토큰
JSON Web Token은 Base64URL 인코딩을 사용합니다. JWT 인코더/디코더로 모든 JWT를 디코딩할 수 있습니다.
Basic 인증
HTTP Basic Auth는 자격 증명을 Base64로 인코딩합니다. 중요: 이것은 인코딩이지 암호화가 아닙니다. 항상 HTTPS를 사용하세요.
일반적인 Base64 실수
- 암호화로 취급 — Base64는 보안을 전혀 제공하지 않습니다. 실제 해싱이 필요하면 해시 생성기를 사용하세요
- 대용량 파일 인코딩 — 33% 크기 증가는 대규모에서 중요합니다
- 이중 인코딩 — 인코딩하기 전에 데이터가 이미 인코딩되어 있는지 확인하세요
- 패딩 누락 — 일부 시스템은
=패딩 문자를 제거합니다
다양한 언어에서의 Base64
JavaScript: btoa('Hello') / atob('SGVsbG8=')
Python: base64.b64encode(b'Hello') / base64.b64decode('SGVsbG8=')
커맨드 라인: echo -n 'Hello' | base64
자주 묻는 질문
Base64 인코딩과 암호화는 같은 건가요?
아닙니다. Base64는 누구나 자유롭게 되돌릴 수 있습니다. 보안을 위해서는 적절한 암호화를 사용하세요.
Base64는 왜 데이터를 더 크게 만드나요?
3바이트가 4개 문자로 변환됩니다 (8비트 대신 6비트씩), 33% 증가를 유발합니다.
관련 리소스
- URL 인코딩 가이드 — 웹 개발자를 위한 또 다른 필수 인코딩
- JWT 토큰 설명 — JWT 내에서의 Base64 활용
- Base64 인코더/디코더 — 즉시 인코딩 및 디코딩
- 해시 생성기 — 실제 보안이 필요할 때