MVC패턴

HYUNBIN CHO·2021년 4월 23일
0

spring

목록 보기
21/23
post-thumbnail

🔷 하나의 서블릿만을 사용할 때의 문제점

🔸 하나의 서블릿, JSP에서 비지니스 로직과 뷰 렌더링 모두를 처리하게 되면 너무 많은 역할을 하게 되고 유지보수가 여려워진다.
🔸 가장 큰 문제는 둘 사이의 '변경의 라이프 사이클'이 다르다.
(예_ UI를 수정하는 일과 비지니스 로직을 수정하는 일은 다르게 발생할 확률이 높고 서로 영향을 주지 않는다.)

➡️ JSP와 같은 뷰 템플릿은 뷰 렌더링에 최적화 되어 있으므로 이 업무만 담당하게 하는 것이 가장 적절하다.

🔷 MVC(Model View Controller)

🔸 하나의 서블릿이나 JSP로 작업하던 것을 컨트롤러, 뷰라는 영역으로 역할을 나눈 것을 MVC패이라고 한다.
🔸 컨트롤러 : HTTP 요청을 받아서 파라미터를 검증하고, 비지니스 로직을 실행, 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다.(서블릿)
🔸 모델 : 뷰에 출력할 데이터를 담아둔다.
🔸 뷰 : 모델에 담겨있는 데이터를 이용하여 화면을 렌더링한다.(jsp)

🔷 MVC패턴2

🔷 MVC패턴의 한계

🔷 중복과 사용하지 않는 코드들..

String viewPath = "/WEB-INF/views/save-result.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);

🔸 view로 이동하는 코드와 viewPath가 중복 호출된다.
HttpServletRequest request, HttpServletResponse response는 사용하지 않지만 코드를 작성해야 할 때가 있다.(특히 response.)

🔷복잡해 질수록 컨트롤러에서 공통으로 처리해야 하는 부분이 점점 더 많아진다. 공통부분을 메서드로 뽑아내지만, 결국에는 그 해당 메서드를 호출해야 한다.

➡️ 수문장 역할을 하는 프론트 컨트롤러 패턴(공통 기능을 처리 후 컨트롤러를 호출해주는)을 이용해서 해결할 수 있다.






https://www.inflearn.com/course/스프링-mvc-1/

profile
백견이 불여일타

0개의 댓글