본문 바로가기
BE/JAVA

[JAVA] @ResponseBody, @RequestBody 란?

by スモモ🍒 2024. 3. 12.

" HTTP 요청과 응답에서 데이터를 처리할 때 사용하는 스프링 애노테이션 "


@ResponseBody

: 컨트롤러 메서드가 반환하는 데이터를 HTTP 응답의 본문(body)으로 직접 전송하도록 지시

(자바 객체를 응답 본문의 객체로 변환 후 서버에서 클라이언트로 응답 데이터 전송)

 

- 주로 JSON, XML등의 형식으로 데이터를 응답할 때 사용된다

- 메서드 레벨에 사용할 경우, 해당 컨트롤러의 모든 메서드가 기본적으로 @ResponseBody 동작을 갖게 되며, 특정 메서드에만 적용하려면 해당 메서드에 애노테이션을 적용

@RestController
public class TestController {

	@RequestMapping("/example")
    @ResponseBody
    public String exampleResponseBody(){
    	return "/main.do";
    }

}

 

@RequestBody

: 클라이언트에서 서버로 필요한 데이터를 전송하기 위해 HTTP 요청의 본문(body)에 있는 데이터를 메서드의 매개변수에 매핑하도록 지정 (자바 객체로 변환시켜 객체에 저장, 서버에서 클라이언트로 응답 데이터 전송)

 

- 주로 JSON, XML등의 형식으로 데이터를 응답할 때 사용된다

@RestController
public class TestController {

	@RequestMapping("/example")
    public ResponseEntity<String> exampleResponseBody(@RequestBody DTO dto){
    // DTO 객체에 클라이언트에서 전송한 데이터가 매핑됨
    	
        return ResponseEntity.ok(DTO.toString());
    }

}

 

 RESTful API와 같이 데이터를 주고받는데 유용하게 사용
: @ResponseBody는 응답의 본문을 직접 사용할때, @RequestBody는 요청의 본문을 객체로 변환할때 주로 사용된다.