[iOS] MVC & UIKit

r1verfuture·2022년 3월 6일
0

iOS

목록 보기
8/30

MVC

  • Model + View + Controller 구조

Model

  • 앱의 데이터나 비즈니스 로직을 관리한다.

View

  • 데이터의 시각적 표현을 제공한다.

Controller

  • Model과 View의 연결 고리 같은 역할 (적절한 시간 내에 Model과 View 사이에서 데이터 전달하는 역할 / View로부터 사용자의 행동을 받아와서 Model에게 전달하는 역할 / Model에서의 데이터 변화를 감지한 후 View로 전달하여 View가 어떤 식으로 보여줄지 알려주는 역할) 을 한다.
  • Controller는 Model과 View에게 직접 전달이 가능하지만, Model과 View는 Controller에게 직접 전달이 불가능하다.
  • View에서 사용자의 행동이 발생했을 때는 View에서 발생할 수 있는 행동을 미리 Controller에 target으로 만들어두고 target대로 실행한다. 또, View는 delegate와 datasource를 통해 Controller에게 어떤 작업을 수행할지 알려주기도 한다.
  • Controller가 Model의 데이터 변화를 감지하는 것은 Notification과 KVO (Key Value Observation) 를 통해 이루어지는데, Notification과 KVO는 작업 중이던 객체 (publisher) 가 작업 완료하면 구독 중이던 객체 (subscriber) 들에게 신호를 보낸다.

MVC의 장점

  • 다른 패턴에 비해 코드량이 적다.
  • 애플에서 기본적으로 제공하는 패턴이기 때문에 접근이 용이하다.
  • 개발 속도가 빠르기 때문에 규모가 작은 프로젝트에서 사용하기 좋다.

UIKit

  • MVC 디자인 패턴에 기반을 둔다.
  • 앱의 핵심 요소 (시스템과 상호 작용하는 것 / 앱의 주요 기능 루프를 실행하는 것 / 화면 상에 보여주는 것) 를 제공한다.
  • 디스크 기반 파일을 포함하고 있는 데이터 구조를 조직하기 위해 UIDocument를 제공한다.
  • 화면 상에 내용을 보여주는 역할을 하는 UIView 클래스를 정의한다.

참고

profile
#iOS #Swift #Developer #Python

0개의 댓글

관련 채용 정보