개발 패턴과 안드로이드
TRANSCRIPT
개발패턴과안드로이드
개발패턴
• 소프트웨어를개발하는데있어서반복적으로발생하는문제들을해결하기위해고안된방법들
ex) 서비스를출시하였는데요구사항이추가되어어플리케이션을고쳐야하지만코드를알아볼수가없을때
ex) 여러라이브러리, 오픈소스를활용하는데문제가발생했을때
• 구조적패턴과디자인패턴등이있다.• 장점 : 유지보수를쉽게하게해준다.
성능면에서도이점을볼수도있다.
구조적패턴
• 구조적패턴은어플리케이션의 UI와비즈니스로직을분리하여어플리케이션의유지관리를좀더쉽게해준다.
• 대표적으로 MVC 패턴이있다. (Model - View -Controller)
• 그외에도 MVP, MVVM 이있다.(Model - View - Presenter, ViewModel)
구조적패턴
구조적패턴
MVC
Input : CC : V = 1 : N
M에서 V에직접접근이가능 (상태변경을 C를거치지않고바로한다.)
MVP
Input : VP : V = 1 : 1
V의갱신은 P에서통제한다.
MVVM
Input : VVM : V = 1 : N
VM은 V를참조하지않는다.
VM은 M과유사하게디자인된다.
안드로이드와 MVC
• 안드로이드에서 Activity나 Fragment의성격상 View와 Controller의역할을같은곳에서처리하게된다.
-> V와 C를분리하지못한다.• 때문에 MVC는안드로이드에서적합하지않을것이다.
안드로이드와 MVVM
• 안드로이드에 MVVM을적용시키면 MVC와는다르게별도의클래스에코드를분리할수있다.
• 하지만 Activity에서의 View들의이벤트처리코드까지VM에들어가버리면서 Activity의역할이모호해지는상황이발생할수있다.
안드로이드와 MVP
• V(Activity나 Fragment)에서발생하는이벤트는직접핸들링하나 P에위임을하여처리한다.
• P에서실질적인제어를하며, M에서비즈니스로직을수행한다.
Adapter와 MVP
• 안드로이드에서 adapter는데이터와뷰를효율적으로관리하기위해만들어진것이다.
• 하지만 adapter는 M과 V의성격을모두가지고있다.• Adapter에 Data Interface와 View Interface를구
현하여 V는 adapter의 View처리를시키고 Presenter는 data 관리를하게하도록한다.
감사합니다
자료출처tosslab 기술블로그정승욱님 medium 블로그