본문 바로가기
FrameWork/Spring

@ResponseBody

by titlejjk 2023. 6. 16.

Spring을 강사님께 Spring을 배우는 중에 @ResponseBody의 기능에 대해 배우게 되었다. JSON의 문자열을 여러가지 방법을 통해 가져올 수 있는 기능중 하나라고 설명해 주셨는데 더 자세히 알고싶어서 구글링해 검색해 보았다.

 

@ResponseBody는 스프링 프레임워크에서 사용되는 어노테이션중 하나로, 웹 응답의 데이터를 HTTP응답 본문에 직접 쓰기 위해 사용된다. 즉, 해당 어노테이션을 사용하면 메소드의 반환 값이 웹 응답으로 전송되어 클라이언트(사용자)에게 반환이 된다.

 

@ResponseBody어노테이션은 주로 스프림 MVC에서 사용되며, 컨트롤러의 메소드에 적용된다. 적용된 메소드는 일반적으로 JSON, XML, 텍스트 또는 기타 형식의 데이터를 반환한다. 클라이언트가 HTTP 요청을 보내면, 해당 요청에 대한 응답으로 반환된 데이터가 HTTP응답 본문에 포함되어 전송이 된다.

 

예를 들어, JSON형식의 데이터를 반환하려면 메소드에 @ResponseBody어노테이션을 추가하고, 해당 메소드가 반환하는 객체를 JSON으로 변환하여 응답 본문에 포함시킨다. 클라이언트는 이 JSON 데이터를 받아서 필요한 작업을 수행할 수 있다.

@RestController
@RequestMapping("/api")
public class MyController {
    
    @GetMapping("/data")
    @ResponseBody
    public MyData getData() {
        MyData data = new MyData();
        data.setId(1);
        data.setName("John");
        return data;
    }
}

위의 예제에서 "getData()"메소드는 MyData객체를 반환하고있는데 @ResponseBody은 이 메소드가 반환하는 데이터를 HTTP응답 본문에 포함시키도록 지정한다. 그리고 @RestController어노테이션은 해당 컨트롤러가 RESTful 웹 서비스 엔드포인트로 동작함을 나타낸다.

 

사용자가 "/api/data/" 엔드 포인트로 요청을 보내면, "MyData" 객체가JSON형식으로 응답 본문에 포함되어 반환된다.

 

정리하자면 @ResponseBody는 메소드의 반환 값을 HTTP응답으로 직접 전송하는 데 사용되며 이를 통해 SPpring MVC는 간단하고 효과적으로 데이터를 클라이언트에게 전송할 수 있게된다.

'FrameWork > Spring' 카테고리의 다른 글

Spring DI(Dependency Injection)  (0) 2023.06.19
MyBatis  (0) 2023.06.19
@RequestMapping  (0) 2023.06.16
DispatcherServlet  (0) 2023.06.16
Spring Framework  (0) 2023.06.16

댓글