MVC 패턴의 등장
서블릿, JSP의 한계
- 서블릿에서 View 화면을 구현하는 것은 HTML 코드가 java 코드에 섞여서 복잡하고 지저분해짐
- JSP를 이용하여 이를 해결하였으나, 비즈니스 로직이 JSP에 너무 많이 노출되어 있음
- JSP의 역할이 너무 많음 => 유지보수가 지옥과 같아짐
- 로직과 뷰는 서로 둘 사이 변경 라이프 사이클이 다름
- 대부분 서로 영향을 주지 않는데 굳이 한 곳에 집중하게 돼있으면 유지보수 헬
MVC 패턴
- 비즈니스 로직과 View를 나누어 각자의 역할에 충실한 패턴
- 하나의 서블릿이나 JSP가 아닌, Controller와 View라는 영역으로 서로 역할을 분담
- MVC (Model View Controller)
- Model
- View에 출력할 데이터를 담아둠
- 필요한 데이터를 모두 Model에 담아서 전달 => View는 로직이나 데이터 접근을 몰라도 됨
- View
- Model에 담겨있는 데이터를 사용해서 화면을 렌더링하는데 집중 (HTML)
- Controller
- HTTP 요청을 받아서 파라미터를 검증, 비즈니스 로직을 실행 (Service 호출)
- View에 전달할 결과 데이터를 조회하여 모델에 담음
- 비즈니스 로직을 Controller에 담아도 되지만, Controller의 기능이 너무 커짐
MVC 패턴의 한계
- Controller는 중복이 많고 ,필요치 않은 코드들도 많음
- View로 이동하는 코드가 항상 중복 호출 (포워드 중복)
- ViewPath에 중복 (View를 jsp로 안 쓴다? 확장자 전부 다 바꿔줘야 함…)
- 사용하지 않는 코드가 많음
- 공통 처리가 어려움
- 기능이 복잡해질수록 Controller에서 공통으로 처리해야 하는 부분이 많아짐
- 수문장 역할을 하는 기능 필요 => Front Controller (입구를 하나로 만듬)
- Front Controller 도입 : Controller 호출 전에 먼저 공통 기능을 처리
댓글남기기