Base64 Encoding: 바이너리의 텍스트화 및 인라인 삽입

상위 맥락

03. 데이터 최적화와 비동기 < 04. 파일 업로드와 자원 관리 < 02. Spring MVC2 핵심 기술과 설계 < MVC < Spring < Web

핵심 정리

Base64 Encoding은 바이너리 데이터를 ASCII 문자열로 변환하여 HTML이나 JSON 안에 직접 삽입할 수 있게 하는 방식입니다. 자료에서는 이미지 데이터를 data:image/png;base64,... 형태의 Data URI로 만들어 <img> 태그에 바로 넣는 흐름을 설명합니다.

장점

  • 이미지를 가져오기 위한 별도 HTTP 요청을 줄일 수 있습니다.
  • 파일 경로나 정적 리소스 매핑을 따로 관리하지 않아도 됩니다.
  • 비동기 업로드 후 서버가 Base64 문자열을 JSON으로 돌려주면, 클라이언트가 즉시 화면에 표시할 수 있습니다.
  • 작은 이미지나 일회성 미리보기에는 빠른 피드백을 줄 수 있습니다.

한계

자료에서는 Base64 방식의 핵심 단점으로 데이터 크기 증가와 캐싱 문제를 설명합니다. 바이너리를 텍스트로 바꾸면 원본보다 데이터 크기가 증가합니다. 또한 파일 URL로 제공되는 정적 리소스와 달리, HTML이나 JSON 안에 들어간 Base64 문자열은 독립적인 브라우저 캐싱을 활용하기 어렵습니다.

적용 기준

작은 아이콘, 캡차, 비동기 업로드 직후 미리보기처럼 크기가 작고 일회성인 데이터에는 적합합니다. 반대로 고해상도 이미지나 여러 화면에서 반복적으로 쓰이는 리소스는 정적 자원 서빙과 브라우저 캐싱을 활용하는 방식이 더 적합합니다.

한 문장 요약

Base64 Encoding은 바이너리 파일을 텍스트로 변환해 HTML이나 JSON 안에 직접 삽입함으로써 요청 수를 줄이지만, 데이터 크기 증가와 캐싱 불리함을 함께 가지는 최적화 전략입니다.