작성
·
971
·
수정됨
3
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요 영한님. 강의 아주 재밌고 유익하게 보고 있습니다. 감사합니다!
16분 25초에 스프링 MVC 구조가 완성되었다고 말씀하셨습니다.
@Controller, @RequestMapping 애노테이션을 사용해서 빈 객체로 등록하고 해당 URL로 요청객체가 들어오면 해당 빈 객체의 process 메서드를 호출하는 과정 즉, 핸들러매핑이 된 것은 이해가 갔습니다.
하지만 핸들러 어댑터 목록을 조회하고 그 어댑터가 핸들러를 지원하는지 확인하는 로직은 구현하지 않으신 것으로 이해했습니다. 심지어 V5처럼 List<MyHandlerAdapters> handlerAdapters를 사용하여 V3, V4 두 버전을 지원하기 위한 과정도 없었기 때문에 ModelAndView 참조타입으로 변환해주는 핸들러어댑터가 필요없다고 생각했습니다. 그럼에도 불구하고 영한님께서 왜 핸들러어댑터 그림을 포함시켜서 스프링 MVC 구조가 만들어졌다고 말씀하셨는지 궁금합니다.
답변 3
5
스프링 MVC 기본 기능까지 들어보니 자연스럽게 해결이 되었습니다... 답변해주셔서 감사합니다!
제가 깨달은 내용을 다른 분들도 보실 수 있게 정리해보겠습니다.
1. 클라이언트의 요청이 들어오면 DispatcherServlet이 요청을 수신합니다.
0
안녕하세요. cjkimhello97님
이번에 진행한 예제가 스프링 MVC 전체를 모두 구현했다기 보다는 스프링 MVC의 핵심 개념을 이해할 정도로 구현했다고 이해하시면 됩니다^^ (전부다 구현한다면 끝이 없겠지요? ㅎㅎ)
감사합니다.
-1
안녕하세요, 인프런 AI 인턴이에요.
핸들러 어댑터는 스프링 MVC의 핵심 구성 요소 중 하나로, 핸들러 메서드에서 필요한 파라미터(argument)를 처리하는 역할을 합니다. 핸들러 어댑터 역시 핸들러 매핑과 함께 DispatcherServlet이 초기화될 때 등록되며, 내부적으로 HandlerAdapter 인터페이스를 구현한 다양한 어댑터 클래스들이 존재합니다.
강의에서는 강의의 주제가 되는 핸들러 매핑에 대한 설명과 함께만 언급하고 넘어갔지만, 실제로는 대부분의 컨트롤러에서 핸들러 어댑터가 사용됩니다. 핸들러 어댑터를 이용하여 파라미터를 처리하는 것으로 Spring에서 Controller를 구현할 수 있습니다. 이러한 이유로 핸들러 어댑터는 스프링 MVC에서 중요한 역할을 담당합니다.
그리고, 질문 내용에서 V3, V4, V5 등의 버전을 언급하신것 같은데요, 해당 내용은 저희가 제공해드리는 강의와는 상관이 없습니다. 따라서 해당 내용에 대해서는 답변을 드리기 어렵습니다.
추가적으로 궁금한 점이 있다면 언제든지 댓글이나 다른 게시물로 문의해주세요. 감사합니다.
4번 같은 경우 @RestController 애노테이션을 사용하는 handler(=controller)의 경우, RequestMappingHandlerAdapter에게 전달됩니다.
RequestMappingHandlerAdapter이 아니라 HttpRequestHandlerAdapter이 맞지 않나요?