배경
현재 수면/PVT/ROI 날짜 정책과 상태 판단 로직이 Today, Home, PVT, History ViewModel에 분산되어 있어 화면별 판단이 달라질 가능성이 있습니다.
특히 다음 정책은 앱의 핵심 비즈니스 규칙이므로 ViewModel 내부가 아니라 별도 도메인 계층에서 일관되게 관리해야 합니다.
- 00:00~05:59 PVT 기록 날짜 처리
- 마지막 수면 후 28시간 기준
- 새 수면 발생 시 ROI 미측정 처리
- PVT 삭제 후 Today/Home/History 반영
- 서버 수면 단계 그래프 변환
작업 내용
- 수면/PVT/ROI 날짜 정책을 도메인 서비스로 분리
- 서버 API, 로컬 캐시, Store 반영을 감싸는 Repository 계층 도입 검토 및 적용
- ViewModel은 화면 상태 구성 중심으로 역할 축소
- DTO, 도메인 모델, 화면 상태 모델 경계 정리
- 핵심 날짜/수면/PVT 정책 테스트 케이스 작성
기대 효과
- 화면별 ROI/PVT 날짜 판단 불일치 방지
- ViewModel 복잡도 감소
- TestFlight/Release 환경에서 상태 전이 관련 크래시 가능성 감소
- 향후 서버 응답 변경 및 정책 변경 시 수정 범위 축소
검증 항목
- 00:00~05:59 측정 기록이 정책에 맞게 분류되는지 확인
- 마지막 수면 후 28시간 기준이 Today/Home/History에 동일하게 반영되는지 확인
- 새 수면 발생 시 ROI 미측정 처리가 일관되게 반영되는지 확인
- PVT 삭제 후 Today/Home/History 상태가 동일하게 갱신되는지 확인
- 서버 수면 단계 데이터가 기존 수면 그래프와 동일하게 변환되는지 확인
배경
현재 수면/PVT/ROI 날짜 정책과 상태 판단 로직이 Today, Home, PVT, History ViewModel에 분산되어 있어 화면별 판단이 달라질 가능성이 있습니다.
특히 다음 정책은 앱의 핵심 비즈니스 규칙이므로 ViewModel 내부가 아니라 별도 도메인 계층에서 일관되게 관리해야 합니다.
작업 내용
기대 효과
검증 항목