Skip to content

[Feat] 타이머 응답에 updatedAt 추가와 수정 충돌 검사 #574

Description

@edv-Shin

어떤 기능인가요?

안드로이드 오프라인 타이머 동기화의 충돌 판정 근거를 추가합니다. 두 기기가 같은 타이머를 각각 수정하면 나중에 수정한 쪽이 남아야 하는데, 지금 타이머 응답에는 비교할 시각이 없습니다.

  • 타이머 조회 응답에 updatedAt(서버 시각)을 추가합니다. 심플(GET /api/v1/simple-timers)과 커스텀(GET /api/v1/custom-timers, 상세 포함) 모두입니다
  • 수정 요청(심플 PATCH, 커스텀 PUT/PATCH)에 baseUpdatedAt을 받아, 서버 값이 더 최신이면 409와 현재 값을 돌려줍니다. 클라이언트는 그 값으로 로컬을 갱신합니다
  • 비교 시각은 서버가 찍은 값만 씁니다. 기기 시계는 사용자가 바꿀 수 있고 오차도 있습니다
  • baseUpdatedAt이 없는 요청(구버전 앱)은 기존대로 통과시킵니다. 하위호환이 없으면 배포 순서가 꼬입니다

작업 상세 내용

  • 타이머 조회 응답에 updatedAt 추가 (심플·커스텀)
  • 수정 API에서 baseUpdatedAt 비교, 서버가 더 최신이면 409와 현재 값 반환
  • baseUpdatedAt이 없으면 기존 동작 유지
  • 테스트 (충돌 409, 비충돌 통과, 필드 없음 통과)

참고할만한 자료(선택)

안드로이드 오프라인 1단계 디자인 문서의 충돌 해결 절(나중에 수정한 쪽이 남는다) 기준입니다. 안드로이드 TimerSyncWorker 작업이 이 변경의 prod 배포에 의존합니다.

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