heoblitz
Blitz.dev
heoblitz
전체 방문자
오늘
어제
  • 분류 전체보기 (36)
    • iOS Dev (22)
      • iOS (3)
      • Swift (7)
      • Testing (3)
      • Reactive (2)
      • Architecture (2)
      • Layout (1)
    • PS (4)
      • Algorithm (4)
    • Other (9)
      • Springboot (3)
      • Linux (1)
      • Python (1)
      • Java (1)
      • React (1)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • RxSwift
  • github
  • swift 5
  • 오픈소스
  • Git
  • codingtest
  • XCTest
  • IOS
  • xcode
  • intellij
  • swift 윈도우
  • java
  • gradle
  • Test Code
  • chrome-extension
  • Code Review
  • SWIFT
  • URLSession
  • springboot
  • ARC

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
heoblitz

Blitz.dev

iOS MVC 패턴 ( MVC Pattern )
iOS Dev/Architecture

iOS MVC 패턴 ( MVC Pattern )

2020. 6. 30. 00:35

디자인 패턴이란 소프트웨어 개발 방법을 공식화한 것입니다.

 

지금은 매우 다양한 디자인 패턴이 사용되고 있지만 ( MVVM, MVP, VIPER )

 

그 중에서 가장 고전적이고 중요한 MVC 패턴에 대해서 다루겠습니다.

 

 

MVC 패턴

Model

: 근본적인 앱이 어떻게 구성되어야 하는가? 에 중점을 가집니다. 알고리즘 ( 계산기 더하기, 빼기 연산 등 )

Controller

: 모델에서 데이터를 가져오고, 뷰에 전달하는 역할을 합니다. MVVM 구조에서는 Model 에서 가져오는 역할을

ModelView 가 대신 수행합니다.

View

: 화면을 보여주는 역할을 합니다. 기본적으로 데이터를 가지고 있지 않습니다.

 

 

Controller & View 소통

→ Action-target 이라는 방식으로 가능합니다. @IBAction, @IBOutlet 이라는 어노테이션을 붙여서 소통합니다.

@IBAction 은 특정 이벤트가 발생하면 View 에서 Controller 에게 알려줍니다, ( 뷰 → 컨트롤러 )

@IBOulet 은 View 에 인스턴스로 연결합니다. 또한 데이터를 지정하는 역할을 합니다. ( 컨트롤러 → 뷰 )

위 보다 복잡한 방법은 Delegation 패턴을 사용합니다. ( delegation, datasource )

 

 

Controller & Model 소통

→ Model 이 네트워킹을 통해 데이터를 가져오거나, 또는 값이 변경되었을 때 일방적으로 Controller 에게 알려줄 수 있는

방법이 없습니다. 이 때는 KVO 를 사용합니다. Key Value Observing 를 사용하면 A 객체의 프로퍼티가 변경되었을 때,

B 객체에서 변화를 감지 할 수 있습니다. 

 

 

 

어플리케이션을 구성하는 MVC 패턴

 

기본적으로 어플은 다수의 MVC 패턴의 조합으로 만들어집니다.

 

여기서 중요한 것은 MVC 는 또 다른 MVC 의 View 일부로만 동작한다는 점입니다.

 

 

 

출처: https://opentutorials.org/course/697/3828 생활코딩, https://www.youtube.com/channel/UCLYEAsot_ImovDAsBmhAbOA/videos 스탠퍼드 IOS 강의 

'iOS Dev > Architecture' 카테고리의 다른 글

iOS MVVM 패턴 구현 정리 ( with RxSwift )  (2) 2021.05.17
    'iOS Dev/Architecture' 카테고리의 다른 글
    • iOS MVVM 패턴 구현 정리 ( with RxSwift )
    heoblitz
    heoblitz
    iOS, Swift 관련 포스팅을 주로 작성합니다.

    티스토리툴바