-
IOS ArchitectureApp/Swift 2017. 7. 6. 10:31
IOS 개발자로서 디자인 패턴(아키텍쳐)를 이해하는 것은 굉장히 중요하다.
개발을 하면 엄청난 양의 클래스와 그에 따른 버그를 찾지 못하게 될 상황에 마주할 수 있다.
그걸 대비하여 개발설계를 잘 세우고 어떠한 아키텍쳐를 선정하여 개발하느냐는 매우 중요한 요소이다.
좋은 아키텍쳐의 특징
* 엄격한 룰에 따라 개체들간의 책임 분리를 균형있게 해야 함
* 테스트들이 가능해야 함
* 사용하기 편해야 함
분리를 해야하는 이유?
단독 개발일 때는 상관 없지만, 협업일 경우 내 머릿속의 생각만을 가지고 앱을 개발하는것은 불가능 하기 때문
아키텍쳐의 종류
* MVC
* MVP
* MVVM
* VIPER
위에서 3개(MVC,MVP,MVVM)은 아래 3개 카테고리 중 하나는 들어가 있음
* Model - 데이터나 데이터 접근 레이어 소유를 책임지는 부분
* View - 레이어에 표현되어 있는 것을 책임지는 부분(UI)
* Controller - 사용자가 View에서 액션을 취할 때 Model을 변경하거나, Model이 변경되었을 때, View를 갱신하는 책임을 가지는 부분
MVC 모델
IOS에서의 VC는 합쳐져 있다고 봐도 무방하다.
ViewController라고 불리게 되는데, 억지로 View와 Controller를 떼어내어 개발할 수 있지만, 불필요한 작업이 될 수 있다.
다른 패턴들에 비해 소스코드가 적게 든다. 추가로 많은 사람들이 친숙하게 사용하기도 하며 경험해보지 못했던 개발자도 쉽게 접근할 수 있다는 장점이 있다.
MVP 모델
Presenter와 Model의 책임을 거의 분리했고 View는 빈 껍데기가 된 셈
VIew의 재사용성 덕분에 대부분의 비지니스 로직을 테스트 할 수 있음
'App > Swift' 카테고리의 다른 글
WKWebView의 Delegate (0) 2017.02.20 WKWebView 정의 및 로드 (0) 2017.02.20 서브스크립트와 오버라이딩 (0) 2017.02.07 클래스와 구조체 (0) 2017.02.06 열거형 (0) 2017.02.06