순서
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를 개발할 때 주로 사용
'개발 공부' 카테고리의 다른 글
[Jar, War] feat. 스프링 (2) | 2023.05.22 |
---|---|
[트랜잭션] feat. 스프링 AOP (0) | 2023.05.22 |
[프록시 패턴] feat. 스프링 AOP, JPA (0) | 2023.05.18 |
[메시지 큐] feat. RedHat AMQ, IBM MQ(WMQ) (0) | 2023.05.12 |
[스프링 동작 과정] feat. 컨테이너, MVC (2) | 2023.05.12 |