어떤 기능인가요?
운동 기록 읽기 캐시의 저장층입니다. Entity와 DAO, DataSource 분리까지만 하고 화면 전환은 별도 이슈(운동 기록 읽기를 Room 구독으로 전환)에서 다룹니다.
- 대상은 셋입니다: 캘린더 집계, 목록, 상세
- 캘린더 집계는 서버 응답(
GetExerciseCountByRangeDTO의 date, exerciseCount)을 그대로 전용 테이블에 저장합니다. 로컬 기록 행을 세는 방식이면 캘린더만 열어본 달이 오프라인에서 빈 달로 보입니다. 캘린더 API는 개수만 주고 기록 자체를 주지 않기 때문입니다 - 모든 테이블에 memberId 컬럼과 계정 조건을 겁니다 (Room 골격 이슈에서 정한 규칙)
- 캐시 대상 응답에 점수 필드는 없습니다 (
GetExerciseRecordData, GetExerciseRecordListDto, GetExerciseCountByRangeDTO 확인). 점수를 빼는 별도 규칙은 필요 없습니다 - 기존 API 호출부를
RemoteDataSource로, Room 접근을 LocalDataSource로 분리합니다
작업 상세 내용
참고할만한 자료(선택)
오프라인 1단계 디자인 문서의 데이터 모델 절 기준입니다. Room 골격 이슈(Room 도입과 계정 스코프 정리)가 선행입니다.
어떤 기능인가요?
운동 기록 읽기 캐시의 저장층입니다. Entity와 DAO, DataSource 분리까지만 하고 화면 전환은 별도 이슈(운동 기록 읽기를 Room 구독으로 전환)에서 다룹니다.
GetExerciseCountByRangeDTO의 date, exerciseCount)을 그대로 전용 테이블에 저장합니다. 로컬 기록 행을 세는 방식이면 캘린더만 열어본 달이 오프라인에서 빈 달로 보입니다. 캘린더 API는 개수만 주고 기록 자체를 주지 않기 때문입니다GetExerciseRecordData,GetExerciseRecordListDto,GetExerciseCountByRangeDTO확인). 점수를 빼는 별도 규칙은 필요 없습니다RemoteDataSource로, Room 접근을LocalDataSource로 분리합니다작업 상세 내용
LocalDataSource추가, 기존 API 호출을RemoteDataSource로 분리GetScoreDTO) 표시용 스냅샷 테이블을 이 이슈에 포함할지 별도 이슈로 뺄지 PR에서 선택참고할만한 자료(선택)
오프라인 1단계 디자인 문서의 데이터 모델 절 기준입니다. Room 골격 이슈(Room 도입과 계정 스코프 정리)가 선행입니다.