UI (View), 로직 (ViewModel), 데이터 (Model)을 분리하여 유지보수성 향상
📌 API, DB, Firebase 등의 데이터를 한 곳에서 관리하는 패턴
Repository를 만들고, ViewModel에서 데이터를 가져오도록 구성lib/
├── models/ # 데이터 모델 (DTO, Entity)
│ ├── user.dart
├── repositories/ # API, DB, Firebase 연결
│ ├── user_repository.dart
├── viewmodels/ # Provider (ViewModel, 상태 관리)
│ ├── user_viewmodel.dart
├── views/ # UI 화면
│ ├── user_screen.dart
├── main.dart # 앱 실행
| 계층 | 역할 | 관련 클래스 |
|---|---|---|
| Model | 데이터를 표현하는 구조체 (DTO, Entity) | User (예: name, age) |
| Repository | API, DB, Firebase 등에서 데이터를 가져와서 ViewModel에 전달 | UserRepository |
| Provider (ViewModel) | UI에서 사용할 데이터를 관리하고, Repository와 통신 | UserViewModel (ChangeNotifier) |
| View (UI) | Provider에서 데이터를 받아 화면을 표시 | UserScreen (Consumer<Provider>) |