Spring

ModelAndView vs @ResponseBody

99duuk 2024. 9. 2. 19:26

ModelAndView:

  • ModelAndView는 스프링 MVC에서 주로 사용되는 객체로, 컨트롤러에서 처리한 데이터(Model)와 그 데이터를 표시할 뷰(View)를 함께 반환
  • 예를 들어, 컨트롤러에서 데이터를 처리한 후, 그 데이터를 JSP 파일과 같은 뷰 템플릿에 넣어서 완성된 HTML 페이지를 클라이언트에게 반환
  • 클라이언트는 이 HTML 페이지를 받아서 브라우저에 표시

@ResponseBody:

  • @ResponseBody는 데이터를 뷰 템플릿을 거치지 않고 직접 클라이언트에 반환하는 역할을 함
  • 이 어노테이션을 사용하면 컨트롤러 메서드는 데이터를 JSON, XML 등의 형식으로 변환하여 HTTP 응답의 본문(body)에 직접 작성
  • 클라이언트는 이 JSON 데이터를 받아서 브라우저에서 표시하거나, JavaScript로 추가 처리할 수 있음

 

 

∴ 

  • ModelAndView는 처리한 데이터를 HTML과 같은 뷰를 통해 렌더링하여 클라이언트에 반환하는 방식
  • @ResponseBody는 데이터를 JSON 등으로 변환하여 클라이언트에 직접 반환하는 방식

이 차이로 인해 ModelAndView는 주로 웹 페이지를 반환할 때 사용되고, @ResponseBody는 RESTful API에서 데이터만 반환할 때 주로 사용