
@RestController는 @Controller 와 @ResponseBody가 결합된 복합 어노테이션이다.
메서드의 반환 값을 HTTP 응답 본문으로 직접 반환한다.
JSON 또는 XML 형식의 데이터를 응답으로 제공하며, 주로 REST API 개발에 활용된다.
1️⃣ DispatcherServlet이 클라이언트의 요청을 받아 HandlerMapping에 전달하면, 해당 요청을 처리할 컨트롤러 메서드를 찾는다.

2️⃣ RequestMappingHandlerAdapter는 요청 처리 책임을 맡는 핵심 컴포넌트이다.
컨트롤러 메서드를 호출하기 전, ArgumentResolver를 통해 메서드의 파라미터를 처리한다.
이때 @RequestBody가 붙은 파라미터의 경우, 내부적으로 HttpMessageConverter가 동작하여 JSON 요청 본문을 Java 객체로 변환한다.

3️⃣ 컨트롤러는 비지니스 로직을 수행한 뒤 Java 객체를 반환하며, ReturnValueHandler가 이 반환값을 처리한다.
이때, @ResponseBody 또는 @RestController가 붙은 경우,HttpMessageConverter가 동작하여 해당 객체를 JSON 등의 형식으로 변환하여 전달한다.

4️⃣ RequestMappingHandlerAdapter는 응답 데이터를 DispatcherServlet에 전달한다.
마지막으로 DispatcherServlet은 이 데이터를 HTTP 응답 형태로 만들어 클라이언트에게 응답을 반환한다.
