본문 바로가기

Spring boot

@ModelAttribute vs @RequestBody

반응형

Spring Boot에서 클라이언트와 서버 사이에서 JSON으로 데이터를 주고받기 위해서는 주로 @RequestBody를 사용합니다. @RequestBody는 HTTP 요청 본문(body)에 포함된 JSON 데이터를 Java 객체로 변환해주는 역할을 합니다. 반면 @ModelAttribute는 주로 폼 데이터나 쿼리 파라미터를 객체로 바인딩할 때 사용됩니다.

@RequestBody와 @ModelAttribute의 차이

@RequestBody

  • 용도: HTTP 요청 본문에 포함된 JSON, XML, 또는 다른 형식의 데이터를 Java 객체로 변환할 때 사용합니다.
  • 변환: HttpMessageConverter를 사용하여 요청 본문을 Java 객체로 변환합니다. 기본적으로 JSON 처리를 위해 MappingJackson2HttpMessageConverter를 사용합니다.
  • 형식: 주로 JSON 형식의 데이터와 함께 사용됩니다.

@ModelAttribute

  • 용도: HTTP 요청의 폼 데이터, 쿼리 파라미터 또는 경로 변수와 같은 데이터를 Java 객체로 바인딩할 때 사용합니다.
  • 변환: DataBinder를 사용하여 요청 데이터를 Java 객체로 바인딩합니다.
  • 형식: 주로 application/x-www-form-urlencoded 또는 multipart/form-data 형식의 데이터와 함께 사용됩니다.
  • 예제:
 

정리

  • JSON 데이터 송수신: @RequestBody를 사용하여 클라이언트에서 서버로 JSON 데이터를 보낼 때 적합합니다.
  • 폼 데이터 송수신: @ModelAttribute를 사용하여 클라이언트에서 서버로 폼 데이터나 쿼리 파라미터를 보낼 때 적합합니다.

Spring Boot 애플리케이션에서 클라이언트와 JSON 데이터를 주고받는 상황에서는 @RequestBody를 사용하는 것이 가장 일반적이고 적합한 방법입니다.

반응형

'Spring boot' 카테고리의 다른 글

쿠키,세션,토큰,JWT  (0) 2024.07.31
@NotNull vs @NotEmpty  (0) 2024.07.29
CI/CD란 무엇인가  (0) 2024.07.25
RESTful API 란 무엇인가??  (0) 2024.07.25
SpringBoot TDD 끄적끄적  (0) 2024.07.21