Trulyawesome
MVC model 본문
# 들어가기전에
필자는 처음에 소스코드를 한 ViewController에 작성했었습니다. 그러다 보니 소스코드가 길어지면서 수정, 개발 효율이 떨어지게 되었고 소스코드를 어떻게 짜야할까에 대하여 생각하게 되었습니다. 그 중에 기본이라면 기본인 MVC패턴을 공부하게 되었고 지금은 주로 사용하게 되었습니다.😁 추 후에 MVVM, MVP도 공부해볼 생각입니다.
# MVC?
MVC패턴은 Model(모델), View(뷰) , Controller(컨트롤러)의 줄임말 입니다. Model에서는 앱에서 사용할 데이터들을 관리하고 View는 User Interface를 관리하고 표현하는것을 담당합니다. 마지막으로 Controller는 View와 Model의 Bridge 역할을 하며 View의 입력을 Model이 반영하고 M?odel의 변화를 View에 갱신해주는 일을 합니다. 단점이라면 이 MVC패턴은 Controller의 비중이 너무 크다는 단점도 있습니다.
![view](/Users/mac/Desktop/github/mvc.png)
### Model
- 데이터 객체가 Model이 되며 ViewController에서 저장, 처리
- ViewController를 통하여 업데이트, 업데이트 후 Viewcontroller에 알림
### View
- UI영역이다.
- 유저의 Touch , Gesture와 같은 Action Event를 Controller에 전달하여 작업 수행
- Model의 알림이나 Controller의 일이 수행되면 View (UI)를 업데이트
### Controller
- UIViewController가 해당
- View에서 발생한 Event를 처리
- Model의 업데이트, View에게 업데이트 요청
# 장점
- 복잡하지 않고 간단하고 빠른 구현이 가능
- 구현과 표현 파트가 나누어져 있어 디자인 협업이 쉽다.
# 단점
- View와 Model의 의존성이 높다.
- Controller가 비대해진다.
- 유지보수가 어렵다.
# 마무리
이 패턴을 지금 주로 사용하고 있습니다. 앞서 본 단점처럼 제 코드도 현재 ViewController가 굉장히 비대한 상황이고 이 점을 빨리 고쳐나가야 겠다는 생각이 들었습니다. 앞으로 빠른시일내에 MVP, MVVM 패턴을 공부해볼 생각입니다. 😅
'프로그래밍 > iOS' 카테고리의 다른 글
API 사용하기 1탄 (Model 작성하기) (0) | 2020.07.07 |
---|---|
[Swift] Subscript를 배워보자!😁 (0) | 2020.05.06 |
[Swift] ARC( Automatic Reference Counting) (0) | 2020.05.06 |
ViewController Life Cycle (0) | 2020.05.06 |
iOS 로그인 화면 구성 (0) | 2020.02.08 |