
디자인 패턴
- MVC (Model-View-Controller):
- Model: 데이터와 비즈니스 로직을 처리합니다.
- View: 사용자 인터페이스(UI)를 표현하며, 사용자의 입력을 받습니다.
- Controller: Model과 View 사이의 중개자 역할을 합니다. 사용자의 입력을 처리하고, Model에 데이터를 요청하거나 업데이트하며, View에 데이터를 표시하도록 지시합니다.
- 주로 Apple의 iOS 개발에서 권장되는 패턴입니다.
- MVP (Model-View-Presenter):
- Model: 데이터와 비즈니스 로직을 처리합니다.
- View: 사용자 인터페이스를 표현하며, 사용자의 입력을 받습니다.
- Presenter: View와 Model 사이의 중개자 역할을 합니다. View로부터의 입력을 받아 Model을 업데이트하고, Model의 데이터를 가져와 View에 표시합니다.
- View와 Presenter는 강하게 연결되어 있으며, 주로 Android 개발에서 사용됩니다.
- MVVM (Model-View-ViewModel):
- Model: 데이터와 비즈니스 로직을 처리합니다.
- View: 사용자 인터페이스를 표현하며, 사용자의 입력을 받습니다.
- ViewModel: View를 위한 데이터와 명령을 제공합니다. View와 Model 사이의 중개자 역할을 하며, 데이터 바인딩을 통해 View와 자동으로 동기화됩니다.
- 주로 Microsoft의 WPF나 Xamarin, 그리고 Android의 Jetpack Architecture Components에서 사용됩니다.
- VIPER (View-Interactor-Presenter-Entity-Router):
- View: 사용자 인터페이스를 표현하며, 사용자의 입력을 받습니다.
- Interactor: 비즈니스 로직을 처리합니다.
- Presenter: View와 Interactor 사이의 중개자 역할을 합니다.
- Entity: 앱의 기본 데이터 객체를 나타냅니다.
- Router: 화면 간의 전환 로직을 처리합니다.
- VIPER는 Clean Architecture의 원칙을 따르며, 각 구성 요소의 역할이 명확하게 분리되어 있습니다.
- MVI (Model-View-Intent):
- Model: 데이터와 비즈니스 로직을 처리하며, 앱의 현재 상태를 나타냅니다.
- View: 사용자 인터페이스를 표현하며, 사용자의 입력을 받습니다.
- Intent: 사용자의 입력을 나타내는 이벤트나 액션입니다.
- MVI는 앱의 상태를 중심으로 설계되며, 주로 반응형 프로그래밍과 함께 사용됩니다.