ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] MVVM 패턴과 SwiftUI
    CS 2024. 3. 22. 17:01
    728x90

     

    오늘은 이번 프로젝트에서 사용한 MVVM 패턴에 대한 정리를 해보려고 한다.

     


    MVVM 패턴이란?

    MVVM 패턴은 Model, ViewModel, View 세 부분으로 애플리케이션을 나누는 구조적 디자인 패턴이다.

    이 구조는 UI와 실제 코드를 분리하기 때문에 로직과 디자인 간의 상호 의존성을 줄여주므로 유지보수가 편리하다.

     

    MVVM 패턴의 구성 요소

    • Model
      : 애플리케이션의 데이터와 비즈니스 로직 담당, 데이터의 저장, 검색, 수정 등을 관리하며, 애플리케이션의 상태를 나타냄
    • View
      : 사용자 인터페이스(UI) 담당, 사용자에게 정보를 표시하고, 사용자의 입력을 받음
      View는 ViewModel을 통해 데이터를 표시하며, 사용자의 입력에 따라 ViewModel을 업데이트
    • ViewModel
      : View와 Model 사이의 중재자 역할
      View에 표시될 데이터와 명령을 준비하고, View의 이벤트에 반응하여 Model 업데이트
      ViewModel은 View로부터 모델을 분리하여, View와 Model 간의 의존성을 줄임

    MVVM 패턴의 장점

    분리와 재사용성

    View와 Model 사이의 분리를 통해 코드의 재사용성을 높이고, 개발자와 UI 디자이너 간의 협업을 용이하게 함

    유지보수와 확장성

    애플리케이션의 비즈니스 로직과 UI가 분리되어 있기 때문에, 유지보수와 확장이 용이함

    변경사항이 한 부분에만 국한되어 다른 부분에 영향을 미치지 않음

    테스트 용이성

    ViewModel은 Model과 View 사이의 의존성을 줄이므로, UI 없이 비즈니스 로직의 테스트가 가능해짐

    이는 애플리케이션의 테스트 용이성을 크게 향상시킴

     


    근데 사실 선언형을 쓰면서 ViewModel 구현이 오히려 더 어렵게만 느껴져서 SwiftUI와 MVVM 패턴에 대한 정보를 검색하니 이런 글도 있었다.

     

    https://gist.github.com/unnnyong/439555659aa04bbbf78b2fcae9de7661

     

    swiftui_mvvm.md

    GitHub Gist: instantly share code, notes, and snippets.

    gist.github.com

     

    오 근데 뭔가 읽다보니 공감되는 부분도 많았던 ㅎㅎ

    이번 프로젝트는 비록 MVVM 패턴을 기반으로 진행해보았지만 어찌저찌 잘 분리를 해두었지만

    나중에 다른 프로젝트 진행할 때는 TCA에 대해서도 고려해보고 배워봐야겠음!!

     


    더 열심히 배워보자!!👩🏻‍🍳

    728x90
예콩이의 코드 레시피