본문 바로가기

공부/Spring

[인프런]스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술_13

MVC 패턴- 한계
MVC패턴을 적용한 덕분에 컨트롤러의 역할과 뷰를 렌더링 하는 역할을 명확하게 구분할 수 있음
특히 뷰는 화면을 그리는 역할에 충실한 덕분에 코드가 깔끔하고 직관적임
단순하게 모델에서 필요한 데이터를 꺼내고 화면을 만들면 됨
그런데 컨트롤러는 딱 봐도 중복이 많고 필요하지 않은 코드들도 많이 보인다



MVC 커트롤러의 단점

포워드 중복
view로 이동하는 코드가 항상 중복 호출되어야 함
물론 이 부분을 메서드로 공통화해도 되지만 해당 메서드도 항상 직접 호출해야 함

viewPath에 중복


정리하자면 공통 처리가 어렵다
=>
컨트롤러 호출 전에 공통 기능을 처리해야 함
프론터 컨트롤러 패턴을 도입하면 이런 문제를 해결가능(입구를 하나로)
스프링 mvc의 핵심도 이 프론트 컨트롤러에 있다.
(필터랑은 다름)


프론트 컨트롤러 패턴 특징
서블릿 하나로 클라이언트의 요청을 받음
프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출
공통 처리가능
프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨

스프링 웹mvc의 DispatcherServlet이 프론트컨트롤러 패턴으로 구현되어 있음