Spring MVC
Spring MVC 란?
- M (Model) : 애플리케이션의 정보, 데이터 처리 관리
- V (View) : 사용자 인터페이스 (화면)
- C (Controller) : Model과 View간 상호동작 조정
Spring MVC의 장점
- View와 비즈니스 로직처리가 분리가 되어서 프론트와 백엔드의 종속성이 줄어든다.
- Controller, View, DispatcherServlet 처럼 각 컴포넌트별로 역할구분이 명확해 진다.
Component 기능
- DispatcherServlet : HTTP 프로토콜에서 모든 요청을 프레젠테이션 계층의 가장 앞에 둬서 중앙 집권식으로 처리해주는 프론트 컨트롤러(Front Controller)
- HandlingMapping : 요청 URL을 어떤 컨트롤러가 처리해줄지 결정한다.
- Controller : 요청 URL을 처리한 후 결과를 DispatcherServlet으로 리턴.
- ModelAndView : 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.
- ViewResolver : 컨트롤러의 처리결과를 생성할 뷰를 결정한다.
- View : 컨트롤러의 처리결과를 JSP등을 이용하여 화면으로 생성한다.
Spring MVC 구성도

1. ① 모든 요청을(URL)을 DispatcherServelet에서 받는다.
2. ②,③ 요청 URL에 맞는 Controller를 HandlerMapping에서 선택해준다.
3. ④ Controller에서 비즈니스 로직을 수행하고 그 결과를 View에 반영하여 리턴한다.
4. ⑤ ViewResolver 에서 View이름을 받아 해당 View객체를 리턴한다.
5. ⑥,⑦ View에 Model을 적용하여 View객체를 전달하면 Response(JSP)를 생성하여 ⑧ 클라이언트에게 리턴한다.
Spring MVC Annotation
- @EnableWebMvc : 스프링이 자동으로 내부적으로 다양한 빈 설정을 추가해 준다.
- @Controller : 스프링 MVC에서 컨트롤러로 사용한다.
- @GetMapping : Get 요청을 처리한다. 메서드가 처리할 요청경로를 지정한다. (ex: /hello)
- @PostMapping : Post 요청을 처리한다. 메서드가 처리할 요청경로를 지정한다.
- @RequestParam : HTTP 요청 파라미터의 값을 메서드의 파라미터로 전달할 때 사용된다.
참고