MultipartFile: 멀티파트 요청 캡슐화 인터페이스
상위 맥락
01. 서버측 처리 프로세스 < 04. 파일 업로드와 자원 관리 < 02. Spring MVC2 핵심 기술과 설계 < MVC < Spring < Web
핵심 정리
MultipartFile은 클라이언트가 multipart/form-data 형식으로 전송한 파일 데이터를 스프링에서 다루기 쉽게 추상화한 인터페이스입니다.
자료에서는 원시적인 바이너리 스트림을 직접 파싱하지 않고, 컨트롤러에서 @RequestParam MultipartFile file 형태로 받을 수 있다고 설명합니다.
클라이언트 전송 조건
파일 업로드 요청은 일반 텍스트 파라미터와 달리 multipart/form-data 규격을 사용합니다.
전통적인 HTML form에서는 enctype="multipart/form-data"가 필요하고, 비동기 방식에서는 FormData API를 사용해 파일과 텍스트 데이터를 함께 전송할 수 있습니다.
제공 기능
MultipartFile은 파일 처리에 필요한 메서드를 제공합니다.
- 원본 파일명 확인: getOriginalFilename()
- Content-Type 확인: getContentType()
- 바이트 배열 확인: getBytes()
- 실제 파일 저장: transferTo()
- 파일이 비었는지 확인: isEmpty()
설계 의미
MultipartFile은 파일이 메모리에 있는지, 임시 파일로 존재하는지 개발자가 직접 알 필요 없게 만듭니다. 컨트롤러와 서비스는 추상화된 MultipartFile 객체를 통해 메타데이터를 확인하고 저장 로직을 수행하면 됩니다.
연결되는 개념
파일 크기와 임시 저장 정책은 application.properties 설정에서 제어하고, 실제 물리 저장은 transferTo()가 담당합니다.
한 문장 요약
MultipartFile은 멀티파트 파일 업로드 요청의 바이너리 데이터를 스프링 컨트롤러에서 객체처럼 다룰 수 있게 캡슐화한 파일 업로드 인터페이스입니다.
핵심 연결
@RequestParam와 함께 읽으면 좋습니다.