초기 설계 단계에서 UI, 상태 관리, 비즈니스 로직, 네트워크 로직을 명확히 분리하는 것을 가장 중요한 목표로 설정했습니다.
Flutter에서는 Widget이 쉽게 비대해질 수 있기 때문에,
→ ViewModel을 통해 상태와 로직을 분리하는 것이 필수적이라고 판단했습니다.
결과적으로 View는 “어떻게 보여줄지” 에만 집중하고,
ViewModel은 “어떤 상태를 만들지” 를 책임하도록 설계했습니다.
Clean Architecture 관점에서 UseCase 레이어의 필요성도 충분히 인지하고 있었지만,
이번 과제에서는 의도적으로 UseCase 레이어를 두지 않았습니다.
이번 과제의 비즈니스 로직은 비교적 복잡한 규칙을 가지는 경우가 많지 않다고 판단했으며,
이러한 상황에서 UseCase를 추가하는 것은 오히려 다음과 같은 문제를 야기할 수 있다고 생각했습니다.