Inflearn brand logo image

인프런 커뮤니티 질문&답변

yoon6669님의 프로필 이미지
yoon6669

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

핸들러 매핑과 핸들러 어댑터

HandlerMapping를 사용하지 않아도 괜찮나요?

작성

·

48

·

수정됨

0

이번 강의에서 HandlerMapping에 대해서 강의하시는데요.이것과 관련해서 mvc 프레임워크 관점에서 궁금한 것이 있습니다.

 

스프링 mvc 프레임워크에서는 구조가 HandlerMapping 인터페이스를 구현한 BeanNameUrlHandlerMapping 클래스를 사용해서 요청된 url과 일치하는 핸들러를 반환?해서 찾아오잖아요?

 

저희가 이전에 mvc 프레임워크를 직접 구현했을때는 이 url에 대한 핸들러를 찾아올떄는
단순히 handlerMappingMap 라는 Map에서 해당 url에 맞는 핸들러를 가져왔는데요.

 

mvc 프레임워크의 구조적 관점에서 볼때 핸들러를 가져올때 스프링 mvc 프레임워크의 HandlerMapping 인터페이스를 만들고 이것을 구현한 클래스를 사용해서 가져온 것처럼 핸들러를 가져올 필요가 없나요? 단순히 Map을 이용해서 가져오는 것만으로 mvc 프레임워크의 구조에 크게 문제가 없나요?

 

제 생각에는 mvc 프레임워크를 구현하는데 이것이 구조적으로 중요했다면 영한님이 MyHandlerAdapter 처럼 HandlerMapping 인터페이스를 따로 만드시고 이것을 구현해서 핸들러를 가져오는 구조로 만드시고 설명했을거라고 생각하거든요.

 

그런데 강의에서 딱히 Map을 멤버로만 핸들러를 가져오는 것으로만 설명하신거보면 HandlerMapping을 구현하는 것은 mvc프레임워크 구조 관점에서 중요한 것이 아닌가요?

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
yoon6669님께서 질문하신 내용에 대해 답변드리겠습니다.

스프링 MVC 프레임워크에서 HandlerMapping 인터페이스를 도입한 이유는 확장성과 유연성을 고려한 것입니다. 스프링에서는 다양한 요청 매핑 전략을 지원하기 위하여 이 인터페이스를 통해 여러 가지 방식으로 요청을 처리할 수 있게 설계되어 있습니다. BeanNameUrlHandlerMapping은 그 중 하나로, URL과 핸들러 간의 매핑을 담당합니다.

직접 구현한 간단한 MVC 프레임워크에서는 Map으로 매핑을 관리하는 것이 충분할 수 있지만, 스프링과 같은 대규모 프레임워크에서는 다양한 요구사항을 대응하기 위해 체계적이고 유연한 구조가 필요합니다. HandlerMapping 인터페이스를 사용하면 여러 유형의 요청 매핑 방법을 쉽게 추가할 수 있고, 특정 매핑 방식의 교체가 용이한 장점이 있습니다.

강의에서는 기본적인 개념을 설명하기 위해 Map을 활용한 예제를 다루었을 수 있습니다. 하지만 스프링 MVC의 복잡하고 다양한 확장성을 이해하기 위해서는 HandlerMapping과 같은 구조가 어떻게 동작하고 왜 필요한지 알 필요가 있습니다. 이러한 구조는 심층적인 MVC 설계의 핵심 원칙 중 하나입니다.

따라서 직접적인 구현에서는 단순한 Map 사용이 문제없을 수 있으나, 확장성과 유지보수를 고려할 때는 스프링의 설계를 참고하는 것이 좋습니다.

질문에 대한 답변이 도움이 되었길 바랍니다. 추가적인 질문이 있으시면 언제든지 물어보세요!

HandlerMapping 설명 참고 출처

yoon6669님의 프로필 이미지
yoon6669

작성한 질문수

질문하기