●MVC 패턴
- Model - View - Controller의 약자
- 하나의 어플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴
- Model 은 "무엇"을 할 것인지를 정의
- Controller는 모델이 "어떻게" 처리할 지를 알려주는 역할
- View는 화면에 "무엇"인가를 보여주기 위한 역할
장점
- 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행할 수 있게 하는 장점이 있다.
단점
- View와 Model이 서로 의존성을 띄게 함.
●MVVM 패턴
- Model, View, View Model 로 구성
- View는 UI에 관련된 것
- View Model은 View가 사용할 메서드와 필드를 구현하고, 뷰에게 상태 변화를 알리는 역할
- Model은 비즈니스 로직과 유효성 검사와 데이터를 포함하는 앱의 도메인 모델
- UI로부터 비느지스 로직과 프레젠테이션 로직을 분리하는 목적을 이룸
장점
- 뷰 모델이 모델과 뷰 사이의 어댑터로서 변경이 생겼을 때 변경을 최소화할 수 있다.
- 모델과 뷰 모델이 뷰로부터 독립적이다
○ 뷰 모델과 모델을 플랫폼 독립적으로 개발할 수 있다.
○ 테스트하기 쉽다
- 개발 기간 동안 개발자와 디자이너가 동시에 독립적으로 작업할 수 있다.
○ UI 디자인이 나오지 않았더라도 미리 정의된 모델과 뷰 모델을 먼저 개발할 수 있기 때문에 병렬적인 업무 프로세스가 가능하다.
단점
- 거대하고 복잡한 앱을 위해서 고안된 디자인 패턴인 만큼, 소형 앱에서 사용하게 되면 오버헤드가 커진다.
- 앱이 너무 거대해지면 앱의 메모리 소모가 데이터 바인딩때문에 커진다.
● MVP 패턴
- Model, View, Presenter
- View와 Model을 완전히 분리해서 사용하기 위해 등장
- View는 실제 View에 대한 직접적인 접근을 담당
- Presenter 는 본질적으로 MVC의 Controller와 같지만 뷰에 연결되지 않고 인터페이스로 연결된다는 점이 다르다. View와 Model 사이의 자료 전달 역할을 함
- Model은 앱 데이터 및 상태에 대한 비지니스 로직을 수행
장점
- 매우 깔끔한 코드 작성 가능
- Model과 View간의 결합도를 낮추면 해당 부분만 코드 수정하면 되기 때문에 확장성이 좋아지고 동시에 유닛 테스트시 코드를 작성하기 편리해짐
- UI, Data 파트를 나누기 떄문에 해야 할 일이 명확하고 쉽고 빠르게 코딩 가능
단점
- 애플리케이션이 복잡해질수록 View와 Presenter 사이의 의존성이 강해짐
- 어느정도 시간이 지남에 따라 추가 비즈니스 로직이 집중되는 경향이 있음
● MVW 패턴
- Model, View, Whatever
- Whatever는 "적합한 것"을 의미
- AngularJS 이 개념을 선언함
'혼자하는 공부 > 노트' 카테고리의 다른 글
객체 지향 프로그래밍 용어 정리 (0) | 2021.06.16 |
---|