Skip to content

개발 목표와 개발 기록의 Firestore 저장소를 구성한다 #809

Description

@opficdev

배경

Domain 계약을 사용자별 Firestore 데이터로 연결하되, Firebase 구현은 Infra에 유지하고 기존 Todo와 웹페이지 데이터를 보존해야 한다.

선행 이슈

  • 개발 목표·개발 기록 데이터 ERD와 수명 주기 계약 확정
  • 개발 목표·개발 기록 Domain 계약 구현

작업 범위

Data

  • 개발 목표·개발 기록·기록 버전 DTO, Mapper, 서비스 계약, Repository 구현을 추가한다.
  • Todo 요청·응답·매핑에 선택적 goalId를 추가한다.
  • goalId가 없는 기존 Todo를 연결되지 않은 Todo로 읽는다.

Infra

  • FirestorePath에 사용자별 목표·기록·기록 버전 경로를 추가한다.
  • Firebase Firestore 서비스에서 목표·기록·버전을 사용자 식별값 기준으로 분리해 저장·조회한다.
  • 기록 확정·정정·되돌리기에서 기존 확정 버전을 갱신하지 않고 새 버전만 추가한다.
  • 버전 번호와 현재 확정 버전 참조가 동시에 요청돼도 일관되게 유지되도록 처리한다.
  • Todo goalId를 선택적으로 저장·해제한다.

호환성과 검증

  • 기존 Todo 문서에 goalId를 일괄 기록하지 않는다.
  • 기존 웹페이지 문서와 이미지 저장소를 변경하지 않는다.
  • 필요한 Firestore 보안 규칙·색인 변경은 별도 운영 범위로 식별한다.
  • DTO·Mapper·Repository와 goalId 없는 Todo 호환성, 버전 추가 불변성 테스트를 추가한다.

완료 조건

  • Data와 Infra의 기존 의존 방향이 유지됨.
  • Firebase 의존성은 Infra에만 위치함.
  • 사용자 간 목표·기록 데이터가 섞이지 않음.
  • 확정 버전을 갱신하지 않고 새 버전을 추가함.
  • 기존 Todo와 웹페이지를 읽는 흐름이 유지됨.
  • 관련 저장소 테스트가 통과함.

제외 범위

  • 목표·기록 SwiftUI 화면
  • Home·Profile 재구성
  • 웹페이지 삭제와 목표 연결

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions