JSP Model1 이란 외부로부터 입력을 받으면 경로에 따라 맵핑된 JSP파일에서 프레젠테이션 로직과 비즈니스 로직을 모두 처리하는 모델입니다
여기서 데이터베이스에 접근할 때만 DAO(Data Access Object)를 사용하는 방식입니다.
이 경우 프로젝트 사이즈가 커지면 모든 로직을 처리하는 JSP 파일이 너무 커져서 한계가 있었습니다.
JSP(Java Server Page) Model 2
JSP 2에서는 비즈니스로직을 Model이라는 계층에서 담당하게 됩니다.
Model과 View 사이에는 Servlet이라는 컨트롤러가 중개하고 있습니다.
Apple의 Cocoa MVC
컨트롤러를 넣어 모델과 뷰 사이 의존관계를 끊어 컨트롤러가 비대해지더라도 모델과 뷰의 재사용성을 높였습니다.
MVP의 한 형태인 Passive View와 유사한 구조입니다.
프레젠테이션 모델 (Presentation Model)
모델과 뷰 사이에 프레젠테이션 모델이라는 계층을 만들어 프레젠테이션 상태와 로직을 관리하는 책임을 위임했습니다.
왜 프리젠테이션 모델이 필요했는가라는 질문에 뷰의 표현력 때문이라고 답할 수 있습니다
뷰의 표현력이 다르다는 것은 개발환경에 따라 Presentation 상태의 로직이나 뷰를 얼마나 자유롭게 나타날 수 있느냐가 다르다는 것입니다.
즉 뷰의 상태를 나타내기 힘든 환경에서는 별도으 Presentation의 모델을 두어 처리해야 했습니다
초기 MVC와 프레젠테이션 모델 (Presentation Model)의 비교
아키텍쳐 패턴 이해에 있어서 도식적, 진보적 사고방식에서 벗어나야한다
도식적 사고관: 아키텍쳐를 단일한 다이어그램 구조로 표현하여 끼워넣으려는 사고관
진보적 사고관: 예전의 아키텍쳐가 열등하고 최근의 아키텍쳐가 발전해나간다는 사고관 (예를들어 MVC보다 MVVM이 더 우수한 아키텍쳐이다 등..) -> 같은 아키텍쳐라도 단일한 구조가 아닌 개발환경에 따라 구현방식이 상당히 다르다 -> 특정 개발환경에 맞추는 아키텍쳐의 변형이라고 보는 것이 적합