Variety of MVC - JSP Model

suojae·2023년 11월 21일
0

[iOS] 아키텍쳐

목록 보기
3/11


JSP(Java Server Page) Model 1

  • 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이 더 우수한 아키텍쳐이다 등..)
    -> 같은 아키텍쳐라도 단일한 구조가 아닌 개발환경에 따라 구현방식이 상당히 다르다
    -> 특정 개발환경에 맞추는 아키텍쳐의 변형이라고 보는 것이 적합
profile
Hi 👋🏻 I'm an iOS Developer who loves to read🤓

0개의 댓글