Base64는 바이너리 데이터를 텍스트로 안전하게 옮기기 위해 자주 쓰는 인코딩 방식입니다. 웹 개발을 하다 보면 이미지 내장, 인증 헤더, 토큰, 메일 첨부 등 다양한 곳에서 만나게 됩니다.
왜 Base64가 필요한가요?
많은 시스템은 원래 텍스트를 주고받는 데 맞춰져 있습니다. 그런데 파일, 이미지, 암호화된 값처럼 바이너리 형태의 데이터를 그대로 넣으면 깨지거나 전송이 어려울 수 있습니다. Base64는 이런 데이터를 문자 집합으로 바꿔서 다루기 쉽게 만들어 줍니다.
알아두면 좋은 특징
- 원본보다 크기가 약 33% 정도 늘어납니다.
- 사람이 읽기 위한 형식이 아니라 전송을 위한 형식입니다.
- 암호화가 아니라 인코딩이므로, 디코딩하면 다시 원래 내용이 보입니다.
자주 보는 사용 사례
데이터 URI
작은 이미지를 HTML이나 CSS 안에 직접 넣을 때 씁니다.
인증 헤더
Basic Auth처럼 사용자 정보 조합을 문자열로 바꿔 전송할 때 사용합니다.
JWT
JWT는 헤더와 페이로드가 Base64URL 방식으로 인코딩되어 있습니다. 내용 확인은 JWT 디코더로 빠르게 할 수 있습니다.
이메일 첨부
텍스트 기반 메일 시스템에서 첨부 파일을 안전하게 보내기 위해 자주 사용됩니다.
Base64와 Base64URL 차이
일반 Base64는 + 와 / 문자를 쓰지만, URL 안에서 안전하게 다루기 어렵습니다. 그래서 URL이나 토큰에는 - 와 _ 를 쓰는 Base64URL 변형이 자주 사용됩니다.
함께 보면 좋은 도구
- JWT 디코더: Base64URL로 인코딩된 토큰 내용 확인
- URL 인코딩 디코딩: 쿼리 문자열과 리디렉션 값 점검
- JSON YAML 변환: 디코딩한 데이터를 보기 좋게 정리
핵심은 간단합니다. Base64는 보안을 위한 장치가 아니라, 바이너리 데이터를 텍스트 채널에 실어 나르기 위한 포장 방식이라고 이해하면 됩니다.