Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 오늘의성취도
- Observable
- 에어팟
- PhotoKit
- CoreGraphics
- UIGestureRecognizer
- CustomStringConvertible
- Codable
- Swift
- Git
- uicollectionview
- Hashable
- UIDynamicAnimator
- IOS
- UIBezierPath
- Singleton Design Pattern
- reactivex
- Arc
- rxswift
- weak
- MVP
- unowned
- Equatable
- NSAttributedString
- Stanford cs193p
- JSONDecoder
- JSONEncoder
- AVFoundation
- UIDocument
- UIDocumentBrowserViewController
Archives
- Today
- Total
아직은 개린이
[iOS 아키텍처 패턴] MVP 본문
앞선 글에서 좋은 아키텍처란 무엇인지와 MVC 패턴에 대해 살펴보았다.
이번 글에서는 새롭게 공부하는 주제인 MVP 패턴에 대해 알아보고자 한다.
MVP
MVP 패턴의 다이어그램은 아래와 같다.
MVC 패턴과 굉장히 유사한 구조로 이루어져있지만, MVC는 아니다!
우선 MVC와 달리 UIView와 UIViewController가 Passive View에 속해있다.
따라서, Controller에 해당하는 Presenter에는 View의 레이아웃과 관련된 코드와 View의 Life Cycle을 다루는 코드가 들어가지 않는다. 대신 View와 Model의 중재자 역할에 더 집중하여 View의 데이터와 상태 변화를 갱신하는 역할만을 수행한다.
이로 인해 각 객체의 독립성이 높이졌고, 테스트가 용이해졌다.
하지만, 뷰를 갱신하기 위한 메소드를 직접 작성한다던지 각 이벤트에 따른 메소드들을 바인딩해줘야 하는 등의 이유로 개발 비용이 MVC보다는 높아진다.
그렇다면, MVP를 좋은 아키텍처 3요소에 매칭해보자.
- Distribution - Presenter와 Model은 거의 독립되어있고, View는 단순 출력만 하는 역할을 한다.
- Testability - excellent하다. View의 재사용성 덕분에 각 요소의 테스트가 가능해졌다.
- Ease of use - MVC보다 코드 양은 늘어나지만, MVC보다 각 요소들의 역할이 명확해졌다.
이제 MVP 패턴에 대해서 이론적으로는 제대로 알게 되었으니,
코드로 직접 적용해보는 연습을 해야겠다!!
참고 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52
'Swift + iOS > iOS' 카테고리의 다른 글
[iOS] Unit Test 해보기 (1) | 2020.03.04 |
---|---|
[iOS 아키텍처 패턴] MVP 적용해보기 (3) | 2020.03.02 |
[iOS 아키텍처 패턴] MVC (0) | 2020.02.28 |
[iOS] UITextField의 Placeholder 텍스트 색상 바꾸기 (0) | 2020.01.14 |
[iOS] UIImagePicker와 PhotoKit (0) | 2019.11.26 |