Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

에이치의 모바일 앱 개발

Android 개발 패턴 MVC, MVP, MVVP 본문

Android/Android 개발 소스

Android 개발 패턴 MVC, MVP, MVVP

로이누리 2018. 4. 1. 01:24

안드로이드 앱 개발을 하고 계신다면, 특정 패턴으로 작업하시는 것을 추천해 드립니다.

MVC(Model View Controller), MVP(Model View Presenter), MVVM(Model View ViewModel) 등 다양한 패턴이 있습니다.

개발자 특성 또는 앱 규모에 맞는 패턴을 사용하면 됩니다.

이러한 패턴을 사용한다면, 아무리 잘 정리된 소스 구조로 되어 있더라도 타인이 앱 소스를 보았을 경우 문제가 됩니다.

앱이 잘 돌아간다고 해서 좋은 앱은 아닙니다.

앱 인수인계 및 협업을 대비해서 되도록 사용해야 할 패턴들이니 학습하도록 합시다.


먼저 MVC입니다.

모델 뷰 컨트롤러 패턴은 대부분 패턴의 시초입니다.


 모델은 데이터, 상태, 비즈니스입니다. (tic-tac-toe)

 뷰는 사용자에게 보여줄 UI와 컨트롤러와 연동이 됩니다.

 뷰는 가진 특징을 적게 하여 공통으로 사용할 수 있게 합니다.

 컨트롤러는 동작을 그려 줍니다.

 컨트롤러에는 안드로이드 생명주기를 작성하고, 작성한 모델(객체)과 뷰를 가져다가 사용합니다.


 단점으로는 컨트롤러가 집중적으로 모여 소스 코드가 방대해지면 관리가 어려워집니다.

 또한 단위 검증 절차에 복잡도가 형성됩니다.  



MVP 입니다.

모델 뷰 프리젠터 패턴은 MVC 와 비교 시 컨트롤러 중심 부분을 개선 시킨 점이 있습니다.


 뷰는 컨트롤러가 가진 화면 구성을 대신하게 됩니다.

 뷰는 화면 구성 단에 인터페이스를 가져와 사용해 단위 테스트를 가능하게 만듭니다.

 프리젠터는 각 기능을 인터페이스 화해서 센터에서 메소드 별 분할 관리가 가능해집니다.


 단점으로는 MVC와 마찬가지로 프리젠터의 컨트롤러 기능이 방대해질 경우 유지보수에 어려움이 발생합니다.



MVVM 입니다.

모델 뷰 뷰모델 패턴은 데이터 바인딩을 사용합니다.

데이터 바인딩은 xml 에서 조건문 값 입력등 지원이 가능한데, 다음 사이트에서 확인 가능합니다.


 뷰는 데이터 바인딩하여 입력 된 값을값 xml 에 있는 뷰가 받아들입니다.

 뷰모델은 뷰의 데이터 모델이 변경될 때마다 UI를 자동으로 업데이트 해줍니다.

 이때 뷰모델은 하나의 뷰에 종속되지 않도록 작업 해야 합니다.


단점으로는 과도한 데이터 바인딩 시 바인딩의 모든 기능을 XML 코드에 추가하면 코드 복잡도가 형성됩니다.

어라한 문제점을 해결하려면 특정 규칙을 정해 뷰모델과 역할을 나누는편이 좋습니다.


지금 까지 MVC, MVP, MVVP 패턴을 알아보았는데요.

상황에 따라 패턴들을 사용하시면 됩니다.

무엇이 좋다고 할 수 없기 때문에 많은 경험을 쌓으시고 스스로 선택하며 작업하시길 바래요.


그리고 이 외에도 많은 패턴들이 존재한답니다.

더 많은 디자인 패턴을 공부하고 싶으시면 디자인 패턴 서적을 구입하셔서 다양한 패턴 공부를 하시면 좋을 듯 싶네요.

'Android > Android 개발 소스' 카테고리의 다른 글

롬곡 코드  (0) 2018.09.21
RESTful api란  (0) 2018.04.15
NumberFormat 숫자->금액  (0) 2017.12.23
ScrollView  (0) 2017.12.23
DB 필터 기능 - 특정 단어 추출  (0) 2017.12.23
Comments