티스토리 뷰

@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";
    }

}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG more
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함