[Flutter] 디자인 패턴 -MVVM 정리

도톨이·2024년 5월 4일
0

앱 개발-flutter

목록 보기
27/29

MVVM 아키텍처의 이해

아키텍처 디자인 패턴은 시간이 지남에 따라 MVC (Model-View-Controller)에서 MVP (Model-View-Presenter)를 거쳐 MVVM (Model-View-ViewModel)으로 발전해 왔습니다.

MVC 패턴

MVC 패턴에서는 '모델(Model)'이 존재하며, 이 모델을 '뷰(View)'에서 참조합니다. 여기서 모델은 엔티티(entity)로 생각할 수 있습니다. 이 패턴에서는 모델의 변경이 뷰에 바로 반영되어야 하기 때문에, 모델에 변경이 있을 경우 해당 모델을 참조하는 뷰의 모든 부분을 수동으로 업데이트해야 하는 불편함이 있습니다.

MVVM 패턴

이러한 불편함을 해결하기 위해 MVVM 패턴이 등장했습니다. MVVM은 데이터와 관련된 모델과 뷰에서 사용되는 모델을 분리합니다. MVC에서는 모델이 갱신될 때 컨트롤러(Controller)가 뷰에 직접 갱신을 명령하지만, MVVM에서는 모델이 변경되더라도 별도의 명령 없이 자동으로 뷰가 갱신됩니다.

추가 구성요소의 역할

Controller

Controller는 뷰로부터의 요청을 받아 해당 요청을 적절한 서비스로 연결하는 라우트(route)의 역할을 담당합니다.

Service

Service는 비즈니스 로직을 담당합니다. 예를 들어, 고객이 마트에서 물건을 주문하고 배달받는 과정에서 고객은 물품이 어떤 과정을 거쳐 자신의 집에 도착하는지 알 필요가 없습니다. 고객의 요청에 대한 결과를 도출하는 전반적인 과정을 서비스가 처리합니다.

Repository

Repository는 비즈니스 로직을 통해 도출된 데이터를 관리하는 역할을 합니다.

Flutter에서의 구현

Flutter에서는 다음과 같이 각 구성요소를 구현할 수 있습니다:

  • Controller는 라우트(route) 역할을 담당합니다.
  • Service는 비즈니스 로직을 처리하며, 때로는 컨트롤러(controller) 역할도 겸합니다.
  • Repository는 데이터 관리를 담당합니다.

이러한 구조는 개발의 효율성을 높이고, 유지보수를 쉽게 만들어 줍니다.

profile
Computer Engineering

0개의 댓글

관련 채용 정보