유틸리티

Base64 인코딩이란? 텍스트·이미지 변환과 활용법

이메일 첨부파일이 서버 로그에 SGVsbG8gV29ybGQ= 같은 알 수 없는 문자열로 찍혀 있다. 암호화된 건 아니다. Base64로 인코딩된 것이고, 디코딩하면 원래 내용이 그대로 나온다.

Base64가 뭔가

Base64는 바이너리 데이터를 텍스트 형태로 변환하는 인코딩 방식이다. A~Z, a~z, 0~9, +, / 총 64개의 문자만 사용해서 어떤 데이터든 표현할 수 있다. 이름에 "64"가 들어간 이유다.

암호화와는 다르다. 누구나 디코딩할 수 있으므로 보안 목적으로는 쓰면 안 된다. 목적은 단순하다. 바이너리 데이터를 텍스트가 필요한 환경에서 안전하게 전달하는 것이다.

어디에 쓰이나

  • 이메일 첨부파일 — SMTP 프로토콜은 텍스트만 전송 가능하다. 이미지나 문서를 Base64로 바꿔서 본문에 넣는다.
  • HTML/CSS 인라인 이미지 — 작은 아이콘을 별도 파일 없이 data:image/png;base64,... 형태로 직접 삽입한다. HTTP 요청 수를 줄여 로딩 속도가 빨라진다.
  • JWT 토큰 — 로그인 인증에 쓰이는 JWT는 헤더와 페이로드가 Base64URL로 인코딩되어 있다.
  • API 데이터 전송 — JSON 안에 바이너리를 넣어야 할 때 Base64 문자열로 감싸서 보낸다.

텍스트 변환 예시

"Hello World"를 Base64로 인코딩하면 SGVsbG8gV29ybGQ=가 된다. 끝에 붙는 =는 패딩 문자로, 원본 데이터 길이가 3의 배수가 아닐 때 채워지는 것이다.

참고 Base64로 인코딩하면 원본보다 약 33% 크기가 늘어난다. 큰 파일에 쓰면 전송 데이터가 불필요하게 커지므로, 작은 데이터에만 사용하는 게 효율적이다.

이미지를 Base64로 바꾸는 법

Base64 변환기에 이미지를 드래그해서 놓으면 Data URL 형태의 Base64 문자열이 생성된다. PNG, JPG, GIF, SVG, WebP를 모두 지원하고, 생성된 코드를 HTML <img> 태그의 src 속성에 그대로 넣을 수 있다. 텍스트 인코딩·디코딩도 같은 페이지에서 처리되고, 브라우저에서만 동작하기 때문에 민감한 데이터를 넣어도 외부로 전송되지 않는다.

Base64는 개발 실무에서 매일 마주치는 인코딩이다. 원리만 한 번 이해해두면 로그 분석이나 API 디버깅에서 당황할 일이 줄어든다.