처리 과정 (View 반환)

1. 클라이언트가 URI 형식으로 요청을 보냄
2. DispatcherServlet이 HandlerMapping의 Controller URL 매핑정보를 보고, 적절한 Controller의 메서드를 찾음
3. DispatcherServlet은 실행 방식을 모르므로, 실행 방식을 아는 HandlerAdapter를 통해 요청을 Controller로 위임하여 메서드를 실행시킨다.
4. Controller는 요청을 처리하고 ViewName을 반환한다.
5. DispatcherServlet이 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 렌더링하여 사용자에게 반환한다.
처리 과정 (@ResponseBody를 통해 JSON 반환)
=> @RestController의 처리 과정과 동일
처리 과정 (JSON 반환)

1. 클라이언트가 URI 형식으로 요청을 보냄
2. DispatcherServlet이 HandlerMapping의 Controller URL 매핑정보를 보고, 적절한 Controller의 메서드를 찾음
3. DispatcherServlet은 실행 방식을 모르므로, 실행 방식을 아는 HandlerAdapter를 통해 요청을 Controller로 위임하여 메서드를 실행시킨다. (이 때 @RequestBody가 있다면 HttpMessageConverter가 동작하여 메시지를 객체로 역직렬화)
4. Controller는 요청을 처리하고 객체를 반환한다.
5. 반환되는 객체는 DispatcherServlet이 받아 적절한 HttpMessageConverter를 선택하여 객체를 직렬화하여 반환한다.