UI (View), 로직 (ViewModel), 데이터 (Model)을 분리하여 유지보수성 향상

Repository 패턴 (데이터 분리)

📌 API, DB, Firebase 등의 데이터를 한 곳에서 관리하는 패턴

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>)

Model

Repository

Provider

View