본문 바로가기
개발 공부

[RestController] feat. ResponseBody

by 도됐좋 2023. 5. 16.
순서
1. 스프링 동작원리
2. Controller + ResponseBody
3. RestController

✅ 스프링 동작원리

- https://for-your-information.tistory.com/4

- 저번에 스프링 동작 원리를 최대한 쉽게 작성해 본 글입니다.

- 여기서 스프링 MVC에 대해서 쪼끔만 더 들어가보면 아래와 같이 나타낼 수 있습니다.

디스패처 서블릿(손님) <----> 핸들러 매핑(편의점 직원)

- 디스패처 서블릿(손님)이 "요청에 맞는 컨트롤러 있어요?" 물어보면

   핸들러 매핑(편의점 직원)이 "없어요 / 어디어디에 있어요"라고 알려줌

 

디스패처 서블릿(손님) <----> 핸들러 어댑터(알바) <----> 컨트롤러(주방)

- 디스패처 서블릿(손님)이 주문을 요청하면

   핸들러 어댑터(알바)가 요청에 맞게 처리해서 주문을 컨트롤러(주방)에게 전달하고

   컨트롤러(주방)에서 요청에 맞는 결과를 내주면 핸들러 어댑터(알바)가 잘 처리해서

   디스패처 서블릿(손님)에게 가져다줌

 

디스패처 서블릿(손님) <----> 뷰 리졸버(편의점 직원)

- 디스패처 서블릿(손님)이 "결과에 맞는 있어요?" 물어보면

  뷰 리졸버(편의점 직원)가 적절한 를 알려주고
  디스패처 서블릿(손님)에 결과를 보내서 렌더링된 결과를 받고 응답으로 돌려줌

 


✅ Controller + ResponseBody

- 위의 방식에서 보듯이 컨트롤러는 주로 를 반환

- 하지만 뷰가 아닌 데이터를 반환해야하는 경우도 많이 있음

- 그럴 때  @ResponseBody를 통해 JSON 형태의 데이터 반환 가능


✅ RestController

- 위에서 본 Controller와 ResponseBody를 합친 형태

-  @Controller와 다르게 JSON 형태의 객체를 주로 반환

- REST API를 개발할 때 주로 사용