디자인 패턴 Model1 vs Model2(MVC) vs sprinMVC
- Model1
- JSP파일에서 Controller와 View 기능을 모두 처리한다.
- JSP파일에 자바 코드와 마크업 관련 코드들이 섞여있어 디버깅과 유지보수가 어렵다.
- 대규모 시스템 개발에 사용하기는 부적합한 아키텍처이다.
- JSP와 javaBeans만 사용하여 웹을 개발한다.
- Model2(MVC)
- Model1의 단점을 보완하고자 나온 아키텍처이다.
- 일반적으로 우리가 알고 있는 **MVC(Model View Controller)**가 바로 이 아키텍처이다.
- Model, View, Controller 각각의 역할이 분리되어 업무를 명확하게 나누어 작업 할 수있다.
- Model = 애플리케이션의 정보, 데이터 그리고 데이터의 가공을 책임지는 컴포넌트
- View = 데이터 및 객체의 입력, 그리고 보여주는 출력
- Controller = 데이터와 사용자인터페이스 요소들을 잇는 다리역할(이벤트 처리)
- 디버깅과 유지보수가 상대적으로 쉽다.
- springMVC
- Model2 아키텍처에서 만약 하나의 서블릿으로 Controller를 구현하면 클라이언트의 모든 요청을 하나의 서블릿이 처리하게 되어 수많은 분기 처리 로직을 가질 수 있다.
- 이는 새로운 기능을 추가할 때 마다 분기 처리 로직이 계속 늘어나기 때문에 복잡도가 올라가고 유지보수도 쉽지 않을 것이다.
- 스프링 프레임 워크는 개발과 유지보수의 편의성이 보장되도록 디자인 패턴을 결합하여 효율적인 MVC를 구현해놓았다.