@RequestParam vs @RequestPart 파일 업로드

Reading-Snail·2024년 2월 10일
0

오잉, @RequestParam이 파일 전송이 가능하다고?

@RequestParam이 파일 전송이 가능할 것이라는 생각은 처음에 하지 못했습니다. 왜냐하면, get방식 처럼 ? 뒤에 오는 query 내용을 다루는 애노테이션이라고 생각하여 4000 또는 8000자 제한이 있는 URL을 사용하기는 불가능하다고 생각하였기 때문입니다. 그러나 블로그들에 많은 예시가 보였고, 좀 더 찾아보니 @RequestParam은 단순히 url의 query 말고도 form 방식으로 담겨온 body에 application/x-www-form-urlencoded 방식으로 담긴 내용도 다룬다는 것을 알게되었습니다.

해당 내용들을 요약하면 아래와 같습니다.

@RequestParam:

  • 특징:
    • HTTP 요청의 쿼리 매개변수 또는 폼 데이터를 수신할 때 사용됩니다.
    • 주로 단일 값 또는 파일이 하나만 업로드 되는 경우에 사용됩니다.
    • Content-Type: application/x-www-form-urlencoded 또는 Content-Type: multipart/form-data와 함께 사용됩니다.
  • 장점:
    • 단일 파일 또는 값에 대한 간단한 업로드를 처리하기에 적합합니다.
    • 단일 파일의 경우에는 추가 설정이 필요하지 않습니다.
  • 단점:
    • 멀티파트 요청에서 여러 파일을 동시에 업로드하는 데 적합하지 않습니다.
    • 멀티파트 데이터의 한 부분만을 처리할 수 없습니다.

@RequestPart:

  • 특징:
    • 멀티파트 요청(Multipart Request)에서 한 부분으로부터 데이터를 수신할 때 사용됩니다.
    • 주로 파일 업로드를 처리하는 데 사용됩니다.
    • 일반적으로 Content-Type: multipart/form-data인 요청에서 사용됩니다.
  • 장점:
    • 멀티파트 요청에서 파일 및 기타 파트의 데이터를 동시에 처리할 수 있습니다.
    • 멀티파트 데이터를 각각의 파라미터로 매핑하기 쉽습니다.
  • 단점:
    • 파라미터가 한 개 이상인 경우 @RequestPart를 사용하여 여러 개의 파일을 동시에 업로드하는 것은 복잡할 수 있습니다.

요약:

  • @RequestPart는 멀티파트 요청에서 한 부분으로부터 데이터를 수신하고, 파일 업로드와 멀티파트 데이터 처리에 적합합니다.
  • @RequestParam은 단일 값 또는 파일 업로드에 사용되며, 단일 파일의 경우 간편하게 사용할 수 있습니다.
  • 선택은 요청의 형식과 업로드하는 데이터의 종류에 따라 달라집니다. 하나의 파일을 업로드하는 경우에는 @RequestParam을 사용하고, 여러 파일 또는 파일과 다른 데이터를 동시에 업로드하는 경우에는 @RequestPart를 사용하는 것이 좋습니다.
profile
책읽는 달팽이 || 공학도에서 개발자로! || 결국 과거의 흐름을 이해했을 때 지금의 것들을 통찰력있게 바라볼 수 있다고 믿습니다.

0개의 댓글

관련 채용 정보