ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MVVM / MVC
    Swift 2024. 2. 21. 22:11

     

    M/V/C - Model / View / ViewController

    M/V/VM - Model / View / ViewModel

     

    MVC에 ViewController의 책임이 과해져서 이를 ViewModel에 덜어준다. 

     

    한마디로, Data를 가지고 있는 instance/로직을 ViewModel에 전가함. 

    MVVM의 View는 그냥 보여주기만 하는 친구임

      MVVM의 View MVC의 ViewController
    있는 것 ViewModel Data를 가지고 있는 instance
    없는 것 Data를 가지고 있는 instance
    (이를 ViewModel로 보냄)
    -

     

     

    의존성 기반으로도 참고

    MVC 패턴은 주로 전통적인 GUI 기반 애플리케이션에서 사용되며, 애플리케이션을 세 가지 주요 구성 요소로 분리합니다:


    - Model (모델): 데이터와 비즈니스 로직을 처리합니다. 데이터의 상태를 유지하고 조작하는 역할을 합니다.

    - View (뷰): 사용자 인터페이스를 표시하고 사용자의 입력을 처리합니다. 사용자에게 정보를 표시하고 입력을 Controller에 전달합니다.

    - Controller (컨트롤러): 사용자 입력을 처리하고 Model과 View 사이의 상호 작용을 조정합니다. 사용자 입력을 처리하여 Model의 상태를 변경하고, 변경된 데이터를 View에 반영합니다.

    MVC 패턴은 단방향 데이터 흐름을 가지며, Model과 View는 직접적인 의존성이 없습니다. 대신, Controller가 Model과 View를 조정하여 상호 작용합니다.

    반면에 MVVM 패턴은 주로 UI 중심 애플리케이션에서 사용되며, 애플리케이션을 세 가지 주요 구성 요소로 분리합니다:

    - Model (모델): 데이터와 비즈니스 로직을 처리합니다. 데이터의 상태를 유지하고 조작하는 역할을 합니다.

    - View (뷰): 사용자 인터페이스를 표시하고, ViewModel과 데이터 바인딩을 통해 데이터의 상태를 표시합니다. 사용자의 입력은 ViewModel로 전달됩니다.

    - ViewModel (뷰모델): View와 Model 사이의 인터페이스 역할을 합니다. View에 표시할 데이터를 제공하고, 사용자 입력을 처리하여 Model의 상태를 변경합니다. 또한, View와의 데이터 바인딩을 통해 View의 상태를 업데이트합니다.

    MVVM 패턴은 양방향 데이터 바인딩을 사용하여 View와 ViewModel 사이의 상호 작용을 강화합니다. ViewModel은 View에 대한 의존성이 없으며, View는 ViewModel에 대한 의존성이 있습니다. 이를 통해 UI 로직과 비즈니스 로직을 분리하여 테스트 용이성과 재사용성을 향상시킵니다.

    MVC와 MVVM은 각각 다른 상황에 적합한 패턴이며, 애플리케이션의 크기, 복잡성 및 요구 사항에 따라 선택할 수 있습니다.

Designed by Tistory.