MVC MVP MVVM패턴

김상진·2024년 2월 8일

cs 공부

목록 보기
7/11

MVC, MVP, MVVM 패턴은 소프트웨어 설계에서 자주 사용되는 아키텍처 패턴입니다. 각각의 패턴은 애플리케이션의 구조를 정의하고, 개발 과정에서의 관심사를 분리하여 코드의 유지보수성과 확장성을 높이는 데 목적이 있습니다. 아래에 이 세 가지 패턴에 대한 간략한 설명과 차이점을 정리했습니다.

MVC (Model-View-Controller)

Model: 애플리케이션의 데이터와 비즈니스 로직을 처리합니다. 데이터베이스와의 상호작용 및 데이터 처리 로직을 포함합니다.
View: 사용자 인터페이스(UI) 요소를 담당합니다. 사용자가 볼 수 있는 화면을 구성하고, 사용자의 입력을 받아들입니다.
Controller: 사용자의 입력을 받고 처리하는 컴포넌트입니다. Model을 조작하고, 그 결과를 View에 반영하여 사용자에게 보여줍니다.
MVC 패턴에서는 사용자의 입력이 Controller를 통해 들어오며, Controller는 Model을 조작하고 그 결과를 View에 전달하여 사용자에게 피드백을 제공합니다.

MVP (Model-View-Presenter)

Model: MVC와 마찬가지로 애플리케이션의 데이터와 비즈니스 로직을 담당합니다.
View: 사용자 인터페이스(UI)를 담당하지만, MVC에서의 View보다는 더 수동적입니다. 즉, 사용자의 입력을 직접 처리하기보다는 Presenter에 위임합니다.
Presenter: View로부터 사용자의 입력을 받아 Model을 조작하고, 그 결과를 다시 View에 반영합니다. MVC의 Controller와 비슷하지만, View와 더 밀접하게 연결되어 있으며, View를 업데이트하기 위한 로직을 직접 담당합니다.
MVP 패턴에서는 View가 사용자의 입력을 받지만 처리는 Presenter가 담당합니다. Presenter는 Model을 업데이트하고, 그 결과를 View에 반영하여 사용자에게 보여줍니다.

MVVM (Model-View-ViewModel)

Model: 애플리케이션의 데이터와 비즈니스 로직을 담당합니다.
View: 사용자 인터페이스(UI)를 담당합니다. MVVM에서는 View가 ViewModel을 구독하고, ViewModel의 상태 변경을 자동으로 감지하여 UI를 업데이트합니다.
ViewModel: Model의 데이터를 View가 사용하기 쉬운 형태로 변환합니다. View에 표시될 데이터와 명령을 포함하며, View와 Model 사이의 변환기 역할을 합니다.
MVVM 패턴은 데이터 바인딩을 중심으로 합니다. View는 ViewModel의 변화를 자동으로 감지하고 반영하므로, 개발자는 View의 상태를 수동으로 관리할 필요가 줄어듭니다. 이로 인해 View와 ViewModel의 결합도가 낮아지며, 코드의 재사용성과 테스트 용이성이 향상됩니다.

정리

MVC는 전통적인 패턴으로, Controller가 사용자의 입력을 처리하고 Model과 View 사이의 상호작용을 관리합니다.
MVP는 Presenter가 사용자의 입력을 처리하고, View와 Model 사이의 상호작용을 더욱 분명하게 분리합니다.
MVVM은 데이터 바인딩에 초점을 맞추어 View와 ViewModel 사이의 자동 동기화를 통해 개발자의 부담을 줄이고 코드의 분리를 강화합니다.
이러한 패턴들은 각각의 애플리케이션과 프로젝트 요구사항에 따라 선택될 수 있으며, 각 패턴의 선택은 개발 환경, 팀의 경험, 프로젝트의 복잡성 등 다양한 요소를 고려해야 합니다.

profile
안녕하세요 발전하는 사람이 되고 싶습니다.

0개의 댓글