HTML 폼데이터를 서버로 전송하는 두가지 방식이 있다
Spring에서 multipartFile을 제공
파일의 경우 Content-Disposition이라는 헤더에 filename 값이 추가되고 Content-Type 헤더도 추가된다.
멀티파트 형식은 전송 데이터를 하나하나 각각 부분(part)으로 나누어 전송한다. 'parts'에는 이렇게 나누어진 데이터가 각각 담긴다.
서블릿이 제공하는 'Part'는 멀티파트 형식을 편리하게 읽을 수 있는 다양한 메서드를 제공한다.
스프링은 'MultipartFile'이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원한다.
MultipartFile 주요 메서드
1. file.getOriginalFilename(); : 업로드 파일명
2. file.transferTo(...); : 파일 저장
저장된 파일은 데이터베이스에 저장하지 않고 저장공간에 따로 저장하고 경로만 데이터베이스에 저장
이미지를 S3 혹은 서버 저장소에 저장하고 Url로 불러오는 것 자체가 파일을 로드하는 것임!