MVC, MVP, MVVM: 어느 것을 선택해야 할까요?

MVC, MVP, MVVM: 어느 것을 선택해야 할까요?

최신 응용 프로그램에는 다양한 기능이 필요하므로 개발 프로세스의 크기와 복잡성이 커졌습니다. 이를 돕기 위해 아키텍처 디자인 패턴을 사용할 수 있습니다. 테스트 및 유지 관리가 쉬운 애플리케이션 구축을 지원합니다.





가장 널리 사용되는 세 가지 디자인 패턴은 MVC, MVP 및 MVVM입니다. MVC는 모델, 보기 및 컨트롤러를 의미하는 반면 MVP는 모델, 보기 및 발표자를 의미하고 MVVM은 모델, 보기 및 보기 모델을 의미합니다.





건축 및 디자인 패턴

건축 패턴

아키텍처 패턴은 소프트웨어 아키텍처의 몇 가지 중요한 구성 요소를 명확하게 하고 정의합니다. 아키텍처 패턴은 시스템의 이미지를 전달하지만, 그것은 건축이 아니다 . 사실, 특정 상황에서 소프트웨어 아키텍처에서 일반적으로 발생하는 문제에 대한 일반적이고 재사용 가능한 솔루션입니다.





디자인 패턴

디자인 패턴은 응용 프로그램이나 시스템을 디자인할 때 일반적인 문제를 해결하는 데 사용할 수 있는 공식화된 모범 사례입니다.

건축 패턴과 디자인 패턴의 차이점

일반적인 용어인 패턴부터 시작하겠습니다. 소프트웨어에서 패턴은 거대하고 복잡한 구조를 더 작고 단순한 구성 요소로 분해할 수 있게 해주는 반복 속성입니다. 이 패턴을 사용하여 문제 클래스에 대한 일반적인 솔루션을 만들 수 있습니다.



소프트웨어 개발의 각 수준에서 다른 도구를 사용하게 됩니다. 더 작은 수준에서 이러한 도구는 디자인 패턴입니다. 아키텍처 패턴은 더 큰 수준에 존재하며, 프로그래밍 패러다임 구현 수준에서.

건축 디자인 패턴이 필요한 이유는 무엇입니까?

소프트웨어 개발 중에 아키텍처 디자인 패턴을 사용하여 일반적인 문제를 해결할 수 있습니다. 좋은 아키텍처는 다음과 같은 이점도 제공합니다.





  • 복잡한 작업을 간단한 작업으로 나눕니다.
  • 버그를 줄입니다.
  • 테스트 가능하고 유지 관리 가능한 코드를 생성합니다.

그러나 아키텍처 패턴이 없으면 앱의 비즈니스 로직을 유지 관리하는 데 어려움을 겪을 수 있습니다.

모델, 보기, ViewModel, 컨트롤러 및 발표자

각 패턴을 살펴보기 전에 패턴을 구성하는 용어는 다음과 같습니다.





킨들 파이어와 관련된 멋진 일들
  • 모델 데이터를 저장하고 데이터베이스와 직접 통신합니다. 모델은 데이터와 애플리케이션 로직을 나타내는 부분입니다. 데이터 처리, 수정 또는 처리를 관리하는 비즈니스 규칙을 정의합니다.
  • 보다 모델의 데이터를 표시하고 사용자 인터페이스에서 데이터의 표현을 담당합니다.
  • 뷰모델 MVVM 패턴 전용입니다. 이것은 뷰 레이어의 추상화이며 모델 데이터의 래퍼 역할도 합니다.
  • 제어 장치 뷰와 모델을 통합하는 구성 요소입니다.
  • 증여자 MVP 모델에만 존재하는 구성 요소입니다. Presenter는 뷰 구성 요소에서 입력을 받고 모델의 도움으로 데이터를 처리합니다.

MVC, MVP 및 MVVM 패턴

모델-뷰-컨트롤러 패턴

그만큼 MVC 아키텍처 패턴 최초이자 오늘날 웹 애플리케이션 분야에서 인기를 얻고 있습니다. 1970년대에 도입되었습니다. 이 패턴을 사용하면 SoC(Separation of Concerns)를 중심으로 애플리케이션을 구축할 수 있습니다. 애플리케이션을 테스트, 유지 관리 및 개발하는 데 필요한 노력을 덜어줍니다.

MVC 패턴에서 모델은 뷰나 컨트롤러를 이해하지 못합니다. 모델의 관찰자는 뷰와 컨트롤러에 변경 사항이 있을 때마다 경고를 받습니다. 컨트롤러는 라우팅 프로세스가 모델을 관련 뷰에 연결하도록 도와줍니다.

MVC 패턴의 장점은 다음과 같습니다.

  • 관심사 분리(더 집중).
  • 코드를 더 쉽게 테스트하고 관리할 수 있습니다.
  • 응용 프로그램 계층의 분리를 촉진합니다.
  • 더 나은 코드 구성 및 재사용성.

MVC가 작동하는 방식은 다음과 같습니다.

  MVC 작동 방식을 보여주는 다이어그램 이미지

SoC 덕분에 MVC는 코드 크기를 줄이고 깨끗하고 관리하기 쉬운 좋은 코드를 만들 수 있습니다.

모델-뷰-발표자 패턴

MVP 패턴은 MVC와 모델 및 보기의 두 가지 구성 요소를 공유합니다. 컨트롤러를 발표자로 대체합니다. 발표자는 이름에서 알 수 있듯이 무언가를 발표하는 데 사용됩니다. 보기를 더 쉽게 조롱할 수 있습니다.

MVP에서 발표자는 모든 프레젠테이션 로직이 전달되기 때문에 '중간자'의 기능을 가지고 있습니다. MVP의 보기와 발표자는 또한 서로 독립적이며 인터페이스를 통해 상호 작용합니다.

다음은 MVP 패턴이 작동하는 방식을 보여줍니다.

  MVP 작동 방식을 보여주는 다이어그램 이미지

발표자는 보기를 통해 사용자로부터 입력을 받습니다. 그런 다음 모델의 도움으로 사용자의 작업을 처리하고 결과를 다시 뷰로 전달합니다. 발표자는 인터페이스를 통해 뷰와 통신합니다.

Windows 7용 부팅 디스크 만들기

Model-View-ViewModel 패턴

MVVM은 MVC의 현대적 진화입니다. MVVM의 주요 목표는 도메인 논리와 프레젠테이션 계층을 명확하게 구분하는 것입니다. MVVM은 뷰와 뷰 모델 간의 양방향 데이터 바인딩을 지원합니다.

MVVM 패턴을 사용하면 코드의 보기와 모델을 분리할 수 있습니다. 즉, 모델이 변경될 때 뷰가 필요하지 않으며 그 반대의 경우도 마찬가지입니다. 뷰 모델을 사용하면 뷰를 사용하지 않고도 단위 테스트를 수행하고 논리 동작을 테스트할 수 있습니다.

다음은 MVVM이 작동하는 방식을 보여줍니다.

  MVVM 작동 방식을 보여주는 다이어그램 이미지

MVC, MVP 및 MVVM을 사용하는 경우

이제 각 패턴에 대해 배웠으니 언제 사용해야 하는지 알아보세요.

MVC를 사용하는 경우

MVC는 단순히 관심사 분리의 구현입니다. 애플리케이션이 데이터(모델), 데이터 크런칭(컨트롤러) 및 데이터 표시(보기)를 분리해야 하는 경우 MVC가 잘 작동합니다. MVC는 또한 데이터 소스 및/또는 데이터 표시가 언제든지 변경될 수 있는 응용 프로그램에서 잘 작동합니다.

MVP를 사용하는 경우

애플리케이션에 양방향 흐름이 있는 경우 MVP를 사용할 수 있습니다. 사용자 상호 작용이 모델에서 무언가를 요청해야 하고 이 요청의 결과가 UI를 즉시 변경하는 경우 MVP를 고려하십시오.

MVVM을 사용하는 경우

다음과 같은 경우 MVVM을 사용하고 싶을 것입니다.

  • 디자이너와 프로젝트를 공유해야 하며 디자인 및 개발 작업이 독립적으로 수행될 수 있습니다.
  • 솔루션에 대한 단위 테스트가 필요합니다.
  • 조직의 프로젝트 내부와 전체에 재사용 가능한 구성 요소가 있어야 합니다.
  • 코드 기반에서 다른 논리를 리팩토링할 필요 없이 보기를 변경할 수 있는 유연성이 더 필요합니다.

어떤 패턴을 선택해야 할까요?

디자인 패턴을 사용하는 주된 이유는 복잡성을 줄이는 것입니다. 전반적인 복잡성을 줄이거나 익숙하지 않은 복잡성을 익숙한 것으로 대체하여 이를 수행할 수 있습니다. 디자인 패턴이 이 두 가지 방법 중 하나로 복잡성을 줄일 수 없다면 어느 것도 사용하지 마십시오. 어떤 가치도 추가하지 않습니다.

디자인 패턴을 사용해야 한다고 확신한다면 체크리스트를 만들어 보세요. 여기에서 본 상황을 기반으로 프로젝트에 가장 적합한 것을 선택하십시오.

전화번호가 누구의 것인지 알 수 있습니까?