왜 메일의 첨부파일의 크기는 원본파일의 크기보다 클까요? 


결론부터 말하면 banary로 이루어진 이미지나 문서, 동영상들이 메일에 첨부될때 base64라는 문자열 기반으로 변경되어 메일에 실리기 때문입니다. 

그래서 변경 과정중에 파일 크기는 일반적을 약 37% 수준의 증가가 발생하게 됩니다. 즉 메일에 첨부되는 파일의 크기는 원본 파일보다 약 37% 큽니다.


일반적으로 MIME (Multipurpose Internet Mail Extentions) 의 스펙 규약에 따르면 "base64"는 binary-to-text 인코딩 스키마의 한 종류 입니다.  

MIME의 base64인코딩은 PEM(privacy enhanced mail)의 RFC1421 버전에 기반하고 있습니다. 

(base64에 대한 자세한 설명: https://en.wikipedia.org/wiki/Base64 ) 


왜 이런일이 발생할까요? 


기본적으로 메일은 처음에 텍스트'만' 주고받는 미디어 였습니다.

그런데 요즘에는 메일에 여러가지 파일들이 첨부될 수 있게 되었죠. (동영상, 사진, 문서, 음악 등등)

그럼 이러한 0에서 255까지의 값을 가지는 데이터들을 어떻게 0~127값만 다루는 매체에 담아서 보낼수 있을까요?

정답은! -> 바로바로바로바로 '인코딩을 활용하는 것'입니다. 즉 바이너리 데이터를 텍스트로 변환하는 것입니다. 


예를들면, 

iVBORw0KGgoAAAANSUhEUgAAAQQAAABOCAIAAABJ3v/jAAAACXBIWXMAABJ0AAASdAHeZh94
AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUI
IFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuj

이런 문자열들을 여러분은 보신적이 있을겁니다. 이런것이 바로 base64로 변환된 데이터 입니다. 

즉 2진데이터를 텍스트로 표현하면 더 커집니다. 실제 커지는 이유는 여러가지 요소가 있지만

주로 사용하는 인코딩 방식에 따라서 영향을 가장 크게 받습니다.


이런게 왜 중요할까요? 


보통 메일 서버는 수신할수 있는 메일의 크기를 제한해 놓습니다.

왜냐하면 대량 스팸메일을 동시에 받을경우 메일 서버가 죽을수도 있기 때문입니다.

일반적으로는 20MB~ 40MB정도가 일반적입니다.

다시 말하면 보내는 파일 사이즈가 약 14MB ~ 30MB정도가 넘어가면 받는 메일 서버쪽에서는 메일을 받지 않고 돌려보냅니다.

따라서 메일 크기를 아는 것이 중요합니다 



도움이 되셨나요? ^^

광고를 클릭하시면 글쓴이에게 수익의 일부가 돌아갑니다.

감사합니다.

+ Recent posts