안필버그
안필버그
안필버그
전체 방문자
오늘
어제
  • 분류 전체보기 (17)
    • Android (16)
      • Kotlin (5)
      • Compose (2)
      • Error (1)
      • TIP (2)
      • Design Pattern (3)
      • CS (2)
    • Algorythm (0)
    • Tools (1)
      • Figma (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • MVP
  • 디자인 패턴
  • 안드로이드 꿀팁
  • Collection
  • 에러 해결
  • ViewModel
  • LiveData
  • jetpack compose
  • recyclerview
  • LogCat
  • figma
  • MVC
  • design pattern
  • CS
  • Intent
  • MVVM

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
안필버그
Android/Design Pattern

[Android/Design Pattern] MVP 디자인 패턴에 대해 알아보자!

[Android/Design Pattern] MVP 디자인 패턴에 대해 알아보자!
Android/Design Pattern

[Android/Design Pattern] MVP 디자인 패턴에 대해 알아보자!

2022. 8. 22. 14:24
반응형

 

지난번에는 MVC 에 대해 알아보았습니다.

이번에는 이를 보완한 MVP 에 대해 알아보겠습니다.

 

 

MVP 란?

 

MVP 패턴은 Model + View + Presenter를 합친 용어입니다.

Model 과 View 는 MVC 패턴과 동일하고, Controller 대신 Presenter 가 존재합니다.

 

 

MVP 의 핵심 설계는 MVC 와 다르게 UI(View) 와 로직(Model)을 분리하고,

서로 간에 상호작용을 다른 객체(Presenter)에 그 역할을 줌으로써,

서로의 영향을(의존성)을 최소화하는 것에 있습니다.

 

 

MVP 의 구조

 

구조

   1. Model

  • Model 은 APP 에서 사용되는 data를 처리합니다. (비즈니스 로직)
  • View 또는 Presenter 등 어떤 요소에도 의존적이지 않고 독립적이다.

   

   2. View

  • View는 사용자에게 보여지는 UI를 나타냅니다. (Android 에서 Activity, Fragment)
  • Model 로부터 data 를 받아 사용자에게 보여주는 역할을 합니다.
  • Presenter 를 이용해 데이터를 주고받습니다. 그러므로 Presenter 에 매우 의존적입니다.

   

   3. Presenter

  • Presenter 는 View 에서 요청한 정보로 Model 을 가공하여 View 에 전달합니다.
  • View 와 Model 사이를 연결해주는 연결다리 역할을 합니다.

 

 

 

동작

MVP 는 이런 식으로 동작해요!

  1. 사용자의 Action 이 View 를 통해 들어온다.
  2. View 는 Data 를 Presenter 에 요청한다.
  3. Presenter 는 Model 에 데이터를 요청한다.
  4. Model 은 Presenter 에게 받은 요청에 대한 응답을 보낸다.
  5. Presenter 는 View 에게 Model 에서 받았던 데이터를 보낸다.

 

 

 

 

MVP 의 특징

Presenter 와 View 는 서로 1:1 관계이며

Presenter 는 View 와 Model 의 인스턴스를 가지고 있어 둘을 연결하는 역할을 합니다.

 

 

 

 

MVP 의 장점?

  • MVC 와 달리 코드가 매우 깔끔해진다.
  • Presenter 를 통해서 데이터를 전달받기 때문에 Model 과 View 간의 결합도를 낮추면 새로운 기능 추가 및 변경을 해야 할 때 관련된 해당 부분만 수정하면 되기 때문에 확장성이 좋아진다.
  • 테스트 코드 작성하기 편리해지기 때문에 더 쉽게 안전한 코딩이 가능하다.
  • UI 와 Data 각각 구현 파트를 나누기 때문에 해야 할 일이 명확해지며 그 결과로 쉽고 빠르게 개발이 가능하다.

 

 

 

 

MVP 의 단점?

  • View 와 Model 의 의존 관계를 해결했지만, Presenter 사이의 의존성이 높은 단점이 존재한다.
  • 앱이 커지면 커질수록 View 와 Presenter 사이의 의존도가 강해진다.

 

 

 

 

이 글을 마치며

MVC 에 이어 MVP 까지 알아보았습니다.

다음에는 각각의 디자인 패턴의 단점을 보완하기 위해 만들어진 MVVM 에 대해 알아보겠습니다.

 

 

 

 

참고

안드로이드 아키텍처 패턴 - MVP가 뭘까?

 

안드로이드 아키텍처 패턴 - MVP가 뭘까?

MVC에 이어서 이번에는 MVP 패턴에 대해 간략하게 알아보겠습니다.

velog.io

 

반응형
저작자표시 비영리 동일조건 (새창열림)

'Android > Design Pattern' 카테고리의 다른 글

[Android/Design Pattern] MVVM 디자인 패턴에 대해 알아보자!  (0) 2022.08.23
[Android/Design Pattern] MVC 디자인 패턴에 대해 알아보자!  (0) 2022.04.16
  •  
  • MVP 란?
  • 구조
  • 동작
  • MVP 의 특징
  • MVP 의 장점?
  • MVP 의 단점?
  •  
  •  
  • 이 글을 마치며
  • 참고
'Android/Design Pattern' 카테고리의 다른 글
  • [Android/Design Pattern] MVVM 디자인 패턴에 대해 알아보자!
  • [Android/Design Pattern] MVC 디자인 패턴에 대해 알아보자!
안필버그
안필버그
안드로이드 개발하는 안필버그 입니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.