image-transferbase64serialization
JSON으로 이미지를 전달하려면 어떻게 해야 하나요?
- 예상 시간
- 7분
30초 답변
꼬리질문
조금 더 깊게 물어본다면
답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.
Base64로 인코딩하면 용량이 얼마나 커지나요?
Base64는 암호화인가요?
왜 용량이 약 33% 증가하나요?
용량 외에 어떤 단점이 있나요?
이미지를 URL로 전달하는 방식의 장점은?
multipart/form-data는 어떨 때 쓰나요?
소형 이미지 vs 대형 이미지에서 어떤 방식이 유리한가요?
CDN과 이미지 전송 방식은 어떤 관계인가요?
부가 설명
Base64는 binary data를 ASCII 문자열로 바꿔 text 기반 protocol에서 안전하게 전달하기 위한 인코딩 방식입니다. 예를 들어 JSON에 다음처럼 담을 수 있습니다.
{
"image": "data:image/png;base64,iVBORw0KGgo..."
}하지만 이 방식은 파일이 커질수록 비효율적입니다. JSON parsing 비용도 커지고, network payload도 증가하며, browser나 server memory 사용량도 늘 수 있습니다.
대안으로는 다음 방식이 있습니다.
multipart/form-data로 이미지 binary를 직접 업로드합니다.- 이미지를 storage에 업로드하고 JSON에는 URL만 전달합니다.
- 큰 파일은 chunk upload나 resumable upload를 사용합니다.
한 줄 정리
JSON으로 이미지를 전달할 때는 Base64로 문자열화할 수 있지만, 큰 이미지는 URL이나 multipart upload로 분리하는 편이 보통 더 적합합니다.