서블릿과 JSP로 프로젝트를 완성한 후 스프링을 배우기 시작하면서
대체된 부분이 많다는 점을 깨달았습니다.
이번 글에서는 서블릿과 JSP의 작동방법이 스프링에서는 어떻게 변화되고 있는지 알아보겠습니다.
서블릿, JSP 에서 사용하는 MVC패턴으로 공통 처리부분을 해결하기 위해서 프론트 컨트롤러 패턴을 활용함
스프링에서는 Handler, HandlerAdapter, ViewResolver가 등장하는데요.
핸들러는 클라이언트의 요청을 처리하는 처리자로 @Controller 클래스를 의미합니다.
HadlerAdapter 는 다른 프레임워크의 Hadler를 Spring MVC에 통합하는데 사용하는 것으로 어댑터(usb 선을 통해 충전하고 C타입이나 아이폰을 충전하거나..)를 떠올리시면 편합니다.
다른 프레임워크의 Handler를 변환시켜 접목시키는 것입니다.
ViewResolver 는 DispatcherServlet에서 받아온 View 이름을 적절한 View 객체로 리턴해주는 역할을 합니다.
Spring MVC 동작순서는
이때 핸들러 매핑이나 핸들러 어댑터가 없다면 에러가 발생하게 되고 @Controller를 실행시키지 못합니다.
서블릿 API와 결합하지 않고 독립적으로 작동하며, 다양한 뷰 기술과 연동이 용이
MockMvc 라는 테스트용 API를 통해 컨트롤러를 쉽게 테스트 가능
스프링 프레임워크와의 통합
예컨데 스프링 IoC 컨테이너를 이용하여 컨트롤러를 관리하고 AOP를 이용하여 트랜잭션을 처리
Spring Security 보안 프레임워크 활용 가능
이처럼 다양한 기능과 라이브러리를 이용하여 코드의 양 줄일 수 있음