💡 개요
오늘은 데이터를 주고받을 때 사용되는 데이터 타입인 MIME에 대해 정리해 보자.
🛠️ MIME
MIME(Multipurpose Internet Mail Extensions)은 이메일을 비롯한 인터넷을 통한 데이터 전송에서 텍스트 이외의 다양한 형식의 데이터를 전송할 수 있게 해주는 표준이다.
보통 이메일을 전송할 땐 내부에 텍스트 뿐만 아니라 파일을 전송하는 경우가 많다.
그래서 첨부파일과 같은 데이터는 MIME을 사용해 영문과 숫자 조합으로 변환하여 메일 본문 내부에 포함하면, 마치 첨부파일을 텍스트 데이터처럼 처리한다.
한글로 작성된 메일은 7비트 US-ASCII로 표현을 못하기 때문에 위와 같은 방법으로 MIME을 활용하고 있다.
실제로 MIME을 사용한 메일 데이터를 보면 Content-Type이 multipart/mixed인 경우, 해당 메일에는 텍스트 뿐만 아니라 첨부 파일과 같은 여러 요소들이 함께 조합되어 있다는 의미이다.
Content-Type이 text/plain인 경우 뒤이어 나오는 데이터는 텍스트 문자라는 의미이고, image/jpeg인 경우는 JPEG 형식의 이미지 파일이라는 것이다.
이렇게 Content-Type 뒤에 데이터의 종류를 표현하는 문자열을 MIME 타입이라고 하는데, HTTP에서도 웹 페이지 내부에서 텍스트 뿐만 아니라 영상이나 이미지같은 다양한 데이터 타입을 주고 받을 때 MIME 타입 정보를 활용한다.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="boundary123"
--boundary123
Content-Type: text/plain; charset="UTF-8"
Hello, this is the email body.
--boundary123
Content-Type: application/pdf
Content-Disposition: attachment; filename="file.pdf"
Content-Transfer-Encoding: base64
JVBERi0xLjQKJ...
--boundary123--
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.05.11 - Redis 만료 원리 (0) | 2025.05.11 |
---|---|
[개발 일기] 2025.05.10 - Bulk을 사용한 저장이 하나씩 저장하는 것 보다 빠른 이유 (0) | 2025.05.10 |
[개발 일기] 2025.05.08 - 레코드 수준의 잠금(row-level locking) (0) | 2025.05.08 |
[개발 일기] 2025.05.07 - WebRTC 구현 방식 (0) | 2025.05.07 |
[개발 일기] 2025.05.06 - WebRTC 연결 (0) | 2025.05.06 |