이미지를 텍스트로 보내야 했던 날 – Base64 변환기가 구원이었다

이메일 HTML에 이미지를 직접 넣어야 했던 상황

회사에서 마케팅 이메일 템플릿을 만드는 업무를 맡았다. 보통은 이미지를 서버에 올리고 URL로 참조하면 되는데, 이번에는 외부 이미지 호스팅을 쓸 수 없는 상황이었다. 보안 정책 때문에 내부 서버 이미지만 사용해야 했고, 수신자의 이메일 클라이언트에서 외부 이미지 로딩이 차단될 수 있어서 이미지를 HTML 안에 직접 내장해야 했다.

그때 알게 된 게 Base64 인코딩이다. 이미지 파일을 Base64 문자열로 변환해서 HTML의 img 태그에 직접 넣는 방식이다. Base64 변환기를 사용해서 로고 이미지를 Base64로 변환하고, 이메일 HTML에 삽입했더니 어떤 메일 클라이언트에서도 이미지가 정상적으로 표시됐다.

텍스트를 Base64로, Base64를 텍스트로 양방향 변환

Base64는 이미지뿐 아니라 텍스트, 파일 등 모든 바이너리 데이터를 ASCII 문자열로 변환하는 인코딩 방식이다. 이 도구는 텍스트를 Base64로 인코딩하는 것과, Base64 문자열을 원래 텍스트로 디코딩하는 것 둘 다 지원한다.

예를 들어 "Hello, World!"를 Base64로 인코딩하면 "SGVsbG8sIFdvcmxkIQ=="가 된다. 이걸 다시 디코딩하면 원래 텍스트가 복원된다. 단순한 변환이지만 API 개발, 인증 토큰 처리, 데이터 전송 등 다양한 곳에서 사용된다.

JWT 토큰 디버깅할 때 없으면 안 된다

개발자라면 JWT(JSON Web Token)를 자주 다루는데, JWT의 구조가 Header.Payload.Signature 세 부분으로 되어 있고, Header와 Payload가 Base64로 인코딩되어 있다. 로그인 후 발급된 토큰에 어떤 정보가 담겨 있는지 확인하고 싶을 때 Base64 디코딩이 필요하다.

Base64 인코더/디코더 사이트에서 JWT의 Payload 부분을 디코딩하면 사용자 ID, 만료 시간, 권한 정보 등이 JSON 형태로 나온다. jwt.io 같은 전용 도구도 있지만, Base64 디코딩만 빠르게 하고 싶을 때는 이 도구가 더 가볍고 빠르다.

API 인증에서 Basic Auth의 비밀

HTTP Basic Authentication이라는 인증 방식이 있다. 사용자명과 비밀번호를 콜론(:)으로 연결한 문자열을 Base64로 인코딩해서 HTTP 헤더에 넣어 보내는 방식이다. 예를 들어 "admin:password123"을 Base64로 인코딩하면 "YWRtaW46cGFzc3dvcmQxMjM="가 되고, 이걸 Authorization 헤더에 넣는 거다.

API 테스트를 할 때 이 Base64 인코딩된 값을 직접 만들어야 하는 경우가 있다. Postman 같은 도구가 자동으로 해주기도 하지만, curl 명령어로 직접 테스트할 때는 Base64 값을 수동으로 만들어야 한다. 이럴 때 이 변환기가 딱이다.

CSS에 작은 아이콘을 인라인으로 넣을 때

웹 성능 최적화 기법 중 하나로 작은 아이콘 이미지를 Base64로 변환해서 CSS에 직접 넣는 방법이 있다. 이렇게 하면 이미지 파일을 별도로 다운로드하는 HTTP 요청이 줄어들어서 페이지 로딩 속도가 빨라진다.

물론 Base64로 변환하면 원본 파일보다 크기가 약 33% 커지기 때문에 큰 이미지에는 적합하지 않다. 보통 1~2KB 이하의 작은 아이콘에만 사용한다. 이 도구로 아이콘 파일을 Base64로 변환하고, 결과 문자열을 CSS의 background-image: url(data:image/png;base64,...) 형태로 넣으면 된다.

Base64는 암호화가 아니라는 점을 명심하자

가끔 Base64를 암호화와 혼동하는 사람이 있는데, 절대 아니다. Base64는 단순한 인코딩이다. 누구나 디코딩할 수 있기 때문에 보안 목적으로는 전혀 쓸 수 없다. 비밀번호나 개인정보를 Base64로 인코딩해서 저장하면 보안이 전혀 안 된다.

이걸 오해하는 주니어 개발자가 의외로 많다. "인코딩해서 알아볼 수 없게 했으니까 안전하지 않나요?" 아니다. Base64는 누구나 1초 만에 디코딩할 수 있다. 보안이 필요하면 AES 같은 실제 암호화 알고리즘을 써야 한다. Base64는 데이터 전송 형태를 바꾸는 도구일 뿐이다.

대용량 파일은 변환하지 마세요

Base64 변환은 텍스트나 작은 파일에 적합하다. 수 MB 이상의 큰 파일을 Base64로 변환하면 결과 문자열이 엄청나게 길어지고, 브라우저가 느려지거나 메모리 문제가 생길 수 있다. HTML이나 JSON에 수 MB짜리 Base64 문자열을 넣는 건 좋지 않은 패턴이다.

큰 파일은 별도의 파일 서버나 CDN에 올리고 URL로 참조하는 게 맞다. Base64 인라인은 아이콘, 작은 로고, 간단한 그래픽 정도에만 사용하자. 용량 기준은 보통 10KB 이하를 권장하는 편이다.

마무리 – 인코딩의 기본이자 필수 도구

Base64는 웹 개발에서 이미지 인라인, JWT 디코딩, API 인증, 데이터 전송 등 다양한 곳에서 사용되는 기본 인코딩 방식이다. Base64 변환기를 북마크해두면 인코딩이든 디코딩이든 필요할 때 바로 처리할 수 있다. 개발자라면 반드시 알아야 하는 개념이고, 이 도구로 직접 변환해보면 원리를 금방 이해할 수 있다.

댓글

3
익명
2026.02.17 10:34
Base64 변환 깔끔하네요 ㅋㅋ 간단하고 좋음
익명
2026.02.22 00:03
이미지 Base64 인코딩도 되나요? HTML에 이미지 임베드할 때 필요한데. 텍스트 변환은 잘 되는 거 확인했어요.
익명
2026.02.22 15:59
프론트엔드 작업하다가 Base64 인코딩 필요할 때가 은근 많은데 매번 다른 사이트 찾아다녔거든요. 여기가 속도도 빠르고 인코딩 디코딩 전환도 편해서 작업 효율이 올라갔습니다. 북마크 해둘게요.
← 목록으로