[iOS] 디자인 패턴 & TDD

2020. 6. 6. 23:51iOS

1. 디자인 패턴

1) MVC 패턴

일반적인 MVC 패턴, Apple MVC 패턴

종류 설명
Model 앱의 비즈니스 로직이나 데이터를 담당하는 코드
View 사용자에게 보여지는 모든 객체들을 다루는 코드
Controller View의 중간자 역할을 하는 코드

※ Apple MVC 패턴의 경우 View와 Controller가 강하게 엮여있어 거의 모든 일을 처리

2) MVVM 패턴

MVVM 패턴

종류 설명
Model 앱의 비즈니스 로직이나 데이터를 담당하는 코드
View 사용자에게 보여지는 모든 객체들을 다루는 코드 (MVC Controller의 역할을 수행)
View Model View를 나타내기 위한 데이터 처리 (MVC 중간자 역할)

3) VIPER

VIPER 패턴

종류 설명
Entity 모델 객체로 단순하게 어떤 모델의 속성들만 있는 Dumb Model
Interactor 특정 행동에 따라서 모델 객체(Entity)를 조작하는 로직을 다루며, View와 관계없이 데이터 작업만을 수행
Presenter 데이터를 Interactor에서 가져와 언제 View에 보여줄지를 결정하며 View에 보여질 내용을 준비하는 로직을 수행
View Presenter에 의해 결정된 로직을 통해 화면에 보여주는 역할을 하며 사용자로 부터의 행동을 입력받아 Presenter에게 전달
Router (Wireframe) Presenter가 언제 화면 전환을 하는지 안다면, Router는 어떻게 화면 전환하는지를 결정 (ex. 화면 전환 애니메이션)

 

 

 

2. TDD

Test Driven Development, 테스트 주도 개발이다.

TDD

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