티스토리 뷰
■ @RequestBody : 클라이언트로 부터 온 HTTP 요청의 바디 내용을 자바 객체로 변환하여, 해당 HTTP요청에 연결된(맵핑된) 메서드의 파라미터로 전달해줌.
즉,
HTTP 요청 바디 내용 → 자바 객체
예시로 이해해보자!
ex )
@RequestMapping(value = "/products", method = RequestMethod.POST)
public ProductDTO createProduct(
@RequestBody ProductDTO productDTO
) {
return simpleProductService.add(productDTO);
}
이런 코드가 있다고 하자.
이때 ProductDTO는 다음과 같이 생겼다.
public class ProductDTO {
private Long id;
private String name;
private Integer price;
private Integer amount;
// (생략)
}
그리고, HTTP 요청 바디는 다음과 같이 생겼다.

( /products경로로 get 요청을 보낼 때 마다 상품의 id는 1씩 올라가는 형식으로 구성해놓았기에, HTTP 바디에는 들어있지 않도록 해놓음. )
즉, HTTP 응답 바디를 이용하여, ProductDTO의 필드인 name, price, amount에 맞추어 ProductDTO 객체를 만들어 createProduct 메서드의 파라미터로 전달해주는 것이다.
■ @ResponseBody : @RequestBody와 반대이다 ( 자바 객체를 HTTP 응답 본문의 객체로 변환한다 ( 클라이언트에게 전달하기 위함 ).
즉,
자바 객체 → HTTP 요청 바디 내용
예시로 이해하자.
( Spring @RestController 를 이용하여 REST API 개발 참고함! )
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class FirstController {
@ResponseBody // View 페이지가 아닌 응답값 그대로 반환하기 위해 사용
@RequestMapping(value = "/helloworld", method = RequestMethod.GET)
public String helloWorld() {
return "hello world";
}
}'백엔드' 카테고리의 다른 글
| 백엔드 개념 - 도메인, 도메인 객체, 엔티티(Entity), 값 객체(Value Object) 개념 정리 (0) | 2025.10.28 |
|---|---|
| web - CRUD, REST, REST API, RESTful 의미 정리 (0) | 2025.10.14 |
| web - URL, URI 개념 및 차이 (0) | 2025.10.14 |
| 스프링 부트 - @RequestParam, @PathVariable 차이 정리 (0) | 2025.10.14 |
| 스프링 부트 - Ambiguous mapping 오류 (0) | 2025.10.12 |