Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

easy-1

안드로이드 디자인 패턴 (MVC, MVP, MVVM) 본문

Android/Java

안드로이드 디자인 패턴 (MVC, MVP, MVVM)

easy-1 2021. 6. 10. 15:34

<개요>

정리된 디자인 패턴으로 개발 시

1. 소프트웨어의 구조 파악이 용이하고, 변경도 손쉬워 진다

2. 재사용으로 개발 시간의 단축 및 편리함

3. 개발자간의 소통 원할


<내용>

1. MVC 패턴 (Model View Controller)

2. MVP 패턴 (Model View Present)

3. MVVM 패턴 (Model View ViewModel)

[MVC - Model View Controller]

- 사용자 인터페이스와 비지니스 로직을 분리

- Model : 데이터 + 상태 + 비지니스 로직

두뇌 역할

뷰나 컨트롤러에 묶이지 않아 재사용 가능

- View : 모델의 표현

- Controller : 애플리케이션에서 발생하는 일을 담당하는 마스터 컨트롤러

뷰가 컨트롤러에게 버튼을 눌렀다고 알리면 컨트롤러는 어떻게 모델과의 상호작용 할지 결정

주로 Fragment 나 Activity로 표현

- 장단점 : Model과 View의 분리성이 좋음

많은 코드가 Cotroller로 모이면서 유지보수에 어려움이 생길 수도 있음

View를 변경하기 위해서 Controller로 돌아가야됨

[MVP - Model View Presenter]

- 컨트롤러의 책임에 묶이지 않고 뷰와 액티비티가 자연스럽게 결합하도록 함

- Model : MVC 패턴과 동일

- View : Activity, Fragment가 뷰의 일부로 간주됨

Activity가 뷰 인터페이스를 구현해서 프레젠터가 코드를 만들 인터페이스를 갖도록 하는것이 좋음

- Presenter : 본질적으로는 MVC 패턴의 Controller와 같지만, 뷰에 연결되는 것이 아니라 그냥 인터페이스라는

점이 다름

- 장단점 : MVC 패턴 보다 깔끔함

프리젠터에 대한 유지보수에 어려움이 있을 수 있음

[MVVM - Model View ViewModel]

- 데이터바인딩을 사용

- View와 Model을 연결하기 위해 사용되는 코드를 줄일 수 있음

- Model : MVC 패턴과 동일

- View : ViewModel에 보여지는 옵저버블 변수와 액션에 유연하게 바인딩됨

- ViewModel : Model을 래핑하고, View에 필요한 옵저버블 데이터 준비

- 장단점 : View에 대한 의존성이 전혀 없으므로 유닛테스트가 쉬워짐

시간이 지나면 유지보수에 XML 파일을 건들수도 있음

-> 간단한 화면, 앱 구성은 MVC 패턴을 이용하여 가볍게 구현하고

복잡한 구조는 MVVM 패턴을 사용하여 데이터바인딩을 이용한 보다 빠른 퍼포먼스를 짤 수있고

적은 코드를 사용할 수 있음

Comments