유틸리티

Base64 인코딩이란, 이미지와 텍스트 변환 방법 정리

API 응답에서 이상한 영문+숫자 문자열이 잔뜩 들어 있다면, 십중팔구 Base64로 인코딩된 데이터다. Base64 인코딩은 바이너리 데이터를 텍스트로 바꾸는 방법으로, 웹 개발에서 자주 만나게 된다.

Base64는 왜 쓰는가

이메일, JSON, HTML처럼 텍스트만 전달할 수 있는 환경에서 이미지나 파일 같은 바이너리 데이터를 보내야 할 때 Base64를 쓴다. 원본 3바이트를 4글자의 ASCII 텍스트로 변환하는 방식이라, 어떤 시스템에서든 깨지지 않고 전달된다.

참고 Base64로 변환하면 원본보다 약 33% 크기가 커진다. 대용량 파일에는 적합하지 않고, 작은 아이콘이나 짧은 데이터에 주로 쓴다.

어디서 쓰이나

이미지 인라인 삽입
CSS나 HTML에 이미지를 data:image/png;base64,... 형태로 직접 넣으면 별도 HTTP 요청 없이 이미지를 표시할 수 있다. 작은 아이콘에 유용.
이메일 첨부파일
MIME 형식에서 첨부파일을 Base64로 인코딩해서 메일 본문에 포함시킨다.
JWT 토큰
JWT(JSON Web Token)의 헤더와 페이로드는 Base64URL로 인코딩되어 있다. 디코딩하면 JSON 데이터를 읽을 수 있다.
API 데이터 전송
바이너리 데이터를 JSON 필드에 담아 보낼 때 Base64로 감싸서 전달한다.

Base64와 암호화는 다르다

Base64는 인코딩이지 암호화가 아니다. 누구나 디코딩해서 원본을 볼 수 있다. 비밀번호나 개인정보를 Base64로만 감싸서 보내는 건 보안이 아니다. 민감한 데이터는 반드시 AES, RSA 같은 암호화를 별도로 적용해야 한다.

변환 직접 해보기

개발 중에 Base64 문자열을 디코딩해서 내용을 확인하거나, 이미지를 Data URL로 바꿔야 할 때 Base64 변환 도구에 텍스트를 붙여넣거나 이미지를 드래그하면 바로 결과가 나온다. 입출력 크기 비교도 실시간으로 보여줘서 용량 증가분을 바로 확인할 수 있다.

코드 한 줄로도 할 수 있지만, 빠르게 확인만 하고 싶을 때는 브라우저 도구가 편하다.