-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
💁🏻♂️ : 애플은 Swift 라는 언어를 설계할 때 MVC 를 추구하며 설계했습니다.
UIKit에서 ViewController 라는 노골적인 단어를 사용하는 것만 봐도 알 수 있죠. 왜 그렇게 했을까요?
- 여러가지 변형된 형태의 MVC 들이 있었지만 애플이 추구한 MVC 는 명확한 방향성이 있었습니다.
- 그건 바로 View 와 Model 의 완전한 분리입니다.
다시말해, 뷰와 모델이 소통하기 위해서는 반드시 ViewController 를 거쳐야 한다는 특징입니다. - 이렇게 한 이유는 'UI 재사용성을 극대화'하기 위해서입니다.
뷰에 특정한 로직이 들어가거나, 모델에서 직접 데이터를 받아오거나 가공하게 한다면
뷰의 재사용성은 낮아질 것입니다. - 뷰는 그저 어떻게 화면에 그릴지만 담당하고, 셀이 눌리면 어떤 작업을 할지, 셀 안에 어떤 텍스트를 넣어야 할지와 같은 것들은 Delegate, DataSource 프로토콜을 활용해서 UIViewController 에게 위임합니다.
- 덕분에 그래서 UITableView, UICollectionView 와 같은 UI컴포넌트들은 거의 모든 iOS 앱에서 재사용됩니다. 괜찮은 커스텀 뷰를 제작한다면 서로 다른 앱 에서도 재활용할수도 있습니다. 하지만 ViewController 의 재사용성은 매우 낮습니다.
Metadata
Metadata
Assignees
Labels
No labels