📦 Multipart란?

정의

Multipart는 하나의 HTTP 요청 안에 여러 종류의 데이터를 함께 담아 전송하는 방식이다. 보통 파일과 텍스트 데이터를 같이 보낼 때 사용한다.

🎯 사용하는 이유

  • 파일 업로드를 처리한다.
  • 텍스트와 파일을 동시에 전송한다.
  • 대용량 바이너리 데이터를 분리해서 처리한다.

🧱 특징

  • Content-Type: multipart/form-data를 사용한다.
  • 각 파트는 별도의 헤더와 본문을 가진다.
  • 서버는 각 파트를 나눠서 처리한다.
  • 일반 JSON 요청과는 처리 방식이 다르다.

포인트

Multipart는 HTTP 요청을 여러 조각으로 나눠 담는 형식이라고 보면 된다.

🛠️ 사용 예시

HTML

<form method="post" enctype="multipart/form-data" action="/files/upload">
    <input type="file" name="file">
    <input type="text" name="title">
    <button type="submit">업로드</button>
</form>

Spring Boot Controller

@PostMapping("/upload")
public ResponseEntity<String> upload(
        @RequestParam("file") MultipartFile file,
        @RequestParam("title") String title) {
    return ResponseEntity.ok("업로드 완료: " + title);
}

🔍 Multipart와 일반 JSON 요청 차이

항목 Multipart JSON
용도 파일 + 텍스트 구조화된 데이터
Content-Type multipart/form-data application/json
처리 방식 파트 단위 분리 객체 전체 파싱

⚠️ 주의할 점

  • 파일 크기 제한을 반드시 확인한다.
  • 업로드 경로와 파일명을 안전하게 처리해야 한다.
  • 확장자만 믿지 말고 내용 검증도 고려한다.
  • 너무 큰 파일은 별도 저장소를 사용하는 것이 좋다.

[!important] 정리 Multipart는 파일 업로드를 위한 표준 전송 형식이다. 파일과 텍스트를 함께 보내야 하는 경우에 특히 유용하다.


연결문서

댓글남기기