[iOS] 디자인 패턴 & TDD
2020. 6. 6. 23:51ㆍiOS
1. 디자인 패턴
1) MVC 패턴
종류 | 설명 |
Model | 앱의 비즈니스 로직이나 데이터를 담당하는 코드 |
View | 사용자에게 보여지는 모든 객체들을 다루는 코드 |
Controller | View의 중간자 역할을 하는 코드 |
※ Apple MVC 패턴의 경우 View와 Controller가 강하게 엮여있어 거의 모든 일을 처리
2) MVVM 패턴
종류 | 설명 |
Model | 앱의 비즈니스 로직이나 데이터를 담당하는 코드 |
View | 사용자에게 보여지는 모든 객체들을 다루는 코드 (MVC Controller의 역할을 수행) |
View Model | View를 나타내기 위한 데이터 처리 (MVC 중간자 역할) |
3) VIPER
종류 | 설명 |
Entity | 모델 객체로 단순하게 어떤 모델의 속성들만 있는 Dumb Model |
Interactor | 특정 행동에 따라서 모델 객체(Entity)를 조작하는 로직을 다루며, View와 관계없이 데이터 작업만을 수행 |
Presenter | 데이터를 Interactor에서 가져와 언제 View에 보여줄지를 결정하며 View에 보여질 내용을 준비하는 로직을 수행 |
View | Presenter에 의해 결정된 로직을 통해 화면에 보여주는 역할을 하며 사용자로 부터의 행동을 입력받아 Presenter에게 전달 |
Router (Wireframe) | Presenter가 언제 화면 전환을 하는지 안다면, Router는 어떻게 화면 전환하는지를 결정 (ex. 화면 전환 애니메이션) |
2. TDD
Test Driven Development, 테스트 주도 개발이다.
1) 실행했을 때 실패하는 코드 작성
2) 실행했을 때 실패한 코드가 작동 할 수 있도록 하는 코드 작성
3) 코드 수정 및 리팩토링(중복된 내용 혹은 네이밍 수정)
[참고] github.com/Dev-RubinJo/iOSTemplate
[참고] beomy.tistory.com/43
[참고] labs.brandi.co.kr/2018/02/21/kimjh.html
[참고] academy.realm.io/kr/posts/krzysztof-zablocki-mDevCamp-ios-architecture-mvvm-mvc-viper/
[참고] nightohl.tistory.com/entry/iOS-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%ED%8C%A8%ED%84%B4-VIPER
[참고] blog.naver.com/jdub7138/220968244920
[참고] academy.realm.io/kr/posts/ios-tdd-test-driven-development/
728x90
'iOS' 카테고리의 다른 글
[iOS] Realm (0) | 2020.06.16 |
---|---|
[iOS] SwiftUI (0) | 2020.06.06 |
[iOS] Firebase Storage (0) | 2020.06.06 |
[iOS] MarqueeLabel (0) | 2020.05.25 |