Skip to content

[Feat] 운동 기록 캐시 Entity와 DAO 추가 #583

Description

@edv-Shin

어떤 기능인가요?

운동 기록 읽기 캐시의 저장층입니다. Entity와 DAO, DataSource 분리까지만 하고 화면 전환은 별도 이슈(운동 기록 읽기를 Room 구독으로 전환)에서 다룹니다.

  • 대상은 셋입니다: 캘린더 집계, 목록, 상세
  • 캘린더 집계는 서버 응답(GetExerciseCountByRangeDTO의 date, exerciseCount)을 그대로 전용 테이블에 저장합니다. 로컬 기록 행을 세는 방식이면 캘린더만 열어본 달이 오프라인에서 빈 달로 보입니다. 캘린더 API는 개수만 주고 기록 자체를 주지 않기 때문입니다
  • 모든 테이블에 memberId 컬럼과 계정 조건을 겁니다 (Room 골격 이슈에서 정한 규칙)
  • 캐시 대상 응답에 점수 필드는 없습니다 (GetExerciseRecordData, GetExerciseRecordListDto, GetExerciseCountByRangeDTO 확인). 점수를 빼는 별도 규칙은 필요 없습니다
  • 기존 API 호출부를 RemoteDataSource로, Room 접근을 LocalDataSource로 분리합니다

작업 상세 내용

  • 캘린더 집계 Entity와 DAO. 날짜 범위 조회를 SQL로 표현
  • 목록·상세 Entity와 DAO
  • LocalDataSource 추가, 기존 API 호출을 RemoteDataSource로 분리
  • 기록 메인 화면의 점수(GetScoreDTO) 표시용 스냅샷 테이블을 이 이슈에 포함할지 별도 이슈로 뺄지 PR에서 선택
  • DAO 테스트 (메모리 DB로 날짜 범위 조회, 계정 조건)

참고할만한 자료(선택)

오프라인 1단계 디자인 문서의 데이터 모델 절 기준입니다. Room 골격 이슈(Room 도입과 계정 스코프 정리)가 선행입니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions