Multipart
📦 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는 파일 업로드를 위한 표준 전송 형식이다. 파일과 텍스트를 함께 보내야 하는 경우에 특히 유용하다.
댓글남기기