Engineering Note

[Network] Multipart라는 개념이 등장하게 된 배경 본문

Computer Science/Network

[Network] Multipart라는 개념이 등장하게 된 배경

Software Engineer Kim 2025. 7. 29. 20:24

Spring으로 웹 개발을 하다보면 파일 전송할 때 Multipart라는 객체를 사용하는데 왜 Multipart라는 개념이 등장하게 됐는지 궁금해서 자료를 찾아 보았습니다.



🔍 Multipart라는 개념이 생긴 배경

✅ 1. 단일 데이터 구조의 한계

초기의 HTTP나 이메일 시스템(MIME 이전)은 텍스트 기반 메시지를 주고받기 위한 프로토콜이었어.
그래서 구조가 매우 단순했고, "하나의 메시지는 하나의 내용만 담는다"는 게 기본 전제였지.

  • 이메일이면: 본문만 있거나, 본문 하나 + 첨부파일 하나 정도
  • HTTP면: 하나의 이미지나 하나의 HTML 파일 정도

이 단일 구조는 점점 현실적인 데이터 처리 요구를 충족시키지 못하게 됨.


✅ 2. 복합 데이터를 다뤄야 하는 현실적인 요구 등장

기술이 발전하면서 다음과 같은 문제가 나타났어:

  • 메일 하나에 본문 + 이미지 + 첨부파일 여러 개를 넣고 싶다
  • 웹 요청 하나에 JSON 데이터 + 파일을 함께 전송하고 싶다
  • 서버에서 응답을 줄 때, 썸네일 + 원본 이미지 + 설명 정보를 한 번에 주고 싶다

즉, "하나의 메시지에 복수의 데이터 조각들논리적으로 묶어서 보내야 하는 필요"가 생긴 거야.

→ 이걸 단일 구조로는 표현할 수 없었고, 새로운 **"복합 구조(Composite Structure)"**가 필요했어.


✅ 3. 하나의 요청/응답 안에 여러 개의 데이터 묶음을 담기 위한 모델 → "Multipart"

그래서 나온 개념이 바로 "Multipart", 즉 **"여러 개의 파트로 구성된 메시지"**란 개념이야.

핵심 아이디어는 이거야:
"우리는 하나의 메시지지만, 그 안에는 여러 개의 독립적이고 다양한 데이터 블록이 존재할 수 있다."
즉, 메시지를 부분(part) 단위로 나눠서 논리적 계층구조로 본 거지.


✅ 4. "Multipart"는 일종의 컨테이너(Container) 개념

생각해봐:

  • 이메일 하나 안에 텍스트, HTML, 이미지가 다 들어간다?
    → Multipart Email
  • HTTP 요청 안에 JSON 데이터 + 이미지 파일 같이 보낸다?
    → Multipart Request

즉, Multipart는 "복수의 데이터를 하나의 메시지 단위로 묶는 포장(container)"의 개념이야.

기존 방식은 하나의 덩어리밖에 안 되니, 데이터를 쪼개거나 분기 처리할 수 없었지만,
Multipart는 조합·재구성·다중 전송이 가능해진 셈이지.


✅ 5. 네트워크 자원의 최적화와도 연결됨

과거엔 파일 하나 요청하려고 HTTP 커넥션을 여러 번 열었어. 하지만:

  • 서버 부하 증가
  • 느린 응답 시간
  • 커넥션 관리 문제

이런 단점이 있었고, **"하나의 연결로 여러 데이터를 한꺼번에 주고받는 구조"**가 필요했지.
→ 이 점에서도 Multipart는 의미가 컸어. 단일 메시지에 여러 콘텐츠 묶음 전송이 가능하니까.


✅ 결론

"Multipart"는 하나의 메시지로는 표현할 수 없었던 복합적인 정보 묶음을 전송하기 위한 개념적 확장이다.

전통적인 '단일 메시지 구조'의 한계를 넘기 위한 발명이며, 이로 인해 메일, 웹, API 모두 복합 데이터를 유연하게 처리할 수 있게 된 것이다.


 

 

참고 자료 : Generative AI를 통해 생성된 자료

Comments