2025-11-18
Model → Repository → ViewModel & View
하위 레이어부터 차근차근 구현하는 것이 편하다.
Model 작성
데이터 구조가 확실히 잡혀야 Repository를 안정적으로 구현할 수 있다.
Freezed 를 사용하면 toJson, fromJson, copyWith 등을 구현하지 않아도 된다.
Repository 구현
API 호출, DB 접근 등의 작업을 Repository에서 구현.
ViewModel은 Repository를 통해서만 데이터를 요청한다.
ViewModel 구현
비즈니스 로직 처리
Repository에서 가져온 데이터를 가공하고, 상태를 관리한다.
상태 클래스 정의 → 뷰모델 정의 → Provider 정의
(Riverpod Generetor를 사용하면 Provider 생성이 편하다.)
Firebase등은 DI를 지켜서 프로바이더에서 주입한다.
View 구현
View(UI)는 ViewModel을 바라보면서 필요한 상태만 구독한다.