[패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online을 학습하면서 나오는 이론 내용과 공식 문서에서 필요한 내용을 발췌하여 정리한 글입니다.
Part2. Basic 1. 명언 생성기 앱 만들기
UIKit에서는 대부분 MVC 디자인 패턴을 사용한다.
M = Model (무엇을)
V = View (보여주다)
C = Controller (어떻게)
모델은 앱의 데이터와 비지니스 로직을 가지고 있다.
뷰는 사용자에게 데이터를 보여주는 Ui를 담당한다.
컨트롤러는 모델과 뷰의 중간다리 역활로 뷰로 부터 사용자 액션을 전달 받아서 모델에게 어떤 작업을 해야하는지 알려주거나 모델의 데이터 변화를 뷰에게 전달하여 뷰를 어떻게 업데이트 할지 알려주는 역활을 한다.
그림처럼 MVC 패턴에서는 뷰와 뷰컨트롤러가 강하게 연결되어 있어 뷰컨트롤러가 거의 모든 일을 담당하고 뷰컨트롤러는 컨트롤러가 뷰의 라이프 사이클을 관여하기 때문에 뷰와 컨트롤러를 분리하기 힘들다.
그렇기 때문에 프로젝트가 커질수록 컨트롤러가 비대해지고 내부구조는 복잡하게 되어 유지보수가 힘들어지게 된다.
이 문제를 해결하기 위해서 MVVM, VIPER 패턴 등 다양한 디자인 패턴을 통해 MVC 단점을 해결 할 수 있다.