반응형
MVP 패턴의 유래
MVP 패턴은 1990년대에 IBM의 개발자들이 "Taligent" 프로젝트에서 처음 개발한 것으로 알려져 있습니다. Taligent는 객체 지향 운영 체제와 개발 환경을 목표로 했던 프로젝트로, 여기서 MVP 패턴이 처음으로 소개되었습니다. 이후 다양한 애플리케이션 개발에 적용되면서 널리 사용되기 시작했습니다.
MVP 패턴은 특히 안드로이드와 같은 모바일 애플리케이션 개발에서 많이 사용되며, 이는 MVC(Model-View-Controller) 패턴의 변형으로 간주될 수 있습니다.
MVP(Model-View-Presenter) 패턴
MVP 패턴은 소프트웨어 디자인 패턴 중 하나로, 사용자 인터페이스 로직을 분리하여 더 모듈화되고 유지 보수하기 쉬운 코드를 작성하는 데 도움을 줍니다. MVP 패턴은 크게 세 가지 구성 요소로 나뉩니다:
- Model (모델):
- 애플리케이션의 데이터 및 비즈니스 로직을 관리합니다.
- 데이터베이스나 웹 서비스와의 상호작용을 처리합니다.
- 사용자 인터페이스에 직접적인 영향을 주지 않습니다.
- View (뷰):
- 사용자 인터페이스 요소를 담당합니다.
- 사용자와의 상호작용을 처리하고, Presenter에서 전달된 데이터를 표시합니다.
- 가능한 한 단순하게 유지하며, 비즈니스 로직을 포함하지 않습니다.
- Presenter (프리젠터):
- View와 Model 사이의 중재자 역할을 합니다.
- 프리젠터는 View를 참조하고 있습니다. (약한 참조)
- 프리젠터는 모델을 갖고 있습니다.
- View에서 발생한 사용자 입력을 받아 Model에 전달하고, Model에서 데이터를 받아 View에 반영합니다.
- 비즈니스 로직을 포함하여 View와 Model 간의 상호작용을 조정합니다.
MVP 패턴의 동작 방식
- 사용자 입력: 사용자가 View를 통해 입력을 제공합니다.
- Presenter 처리: View는 이 입력을 Presenter에서 정의한 함수를 통해 전달합니다.
- Model 업데이트: Presenter는 Model을 업데이트하거나 필요한 데이터를 요청합니다.
- 데이터 반환: Model은 필요한 데이터를 Presenter에게 반환합니다.
- View 갱신: Presenter는 이 데이터를 바탕으로 ViewProtocol의 인터페이스를 통해 View를 업데이트합니다
MVP 패턴의 장점
- 모듈화: UI 로직(View)과 비즈니스 로직(Model, Presenter)을 분리함으로써 코드의 모듈화가 높아집니다.
- 테스트 용이성: Presenter는 비즈니스 로직을 포함하고 있어 테스트가 용이합니다. View를 독립적으로 테스트할 수 있습니다.
- 유지 보수성: 코드의 각 부분이 독립적으로 변경될 수 있어 유지 보수하기 쉽습니다.
- 재사용성: Presenter와 Model은 다양한 View에서 재사용될 수 있습니다
반응형
'Architecture_Pattern' 카테고리의 다른 글
현재 정착한 mvvm 아키택처 패턴 (for UIKit) (0) | 2024.03.11 |
---|---|
아키택처 패턴과 디자인 패턴의 차이점 (4) | 2024.02.29 |