Skip to content

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

Merged
opficdev merged 14 commits into
developfrom
feat/#809
Aug 28, 2026
Merged

[#809] 개발 목표와 개발 기록의 Firestore 저장소를 구성한다#838
opficdev merged 14 commits into
developfrom
feat/#809

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

개발 목표·개발 기록 Domain 계약의 Firestore 저장 경계 구성과 기록 Draft·version 변경 transaction 제어

목표 완료의 최종 판정을 서버로 분리하기 위한 iOS 직접 완료 저장 제한

📝 작업 내용

📌 요약

  • 개발 목표·개발 기록의 Firestore 저장 계약과 저장소 구현 추가
  • 개발 기록 Draft 저장과 version 생성·복원 transaction 구성
  • baseVersionId 기준 Draft 저장 정책 반영
  • Todo와 개발 목표 연결을 위한 goalId 저장 지원
  • Todo Firestore 서비스를 TodoQueryServiceTodoCommandService로 분리
  • 개발 목표 completed 상태의 iOS 직접 저장 제한

🔍 상세

개발 목표 저장

  • 사용자별 개발 목표 Firestore 경로 구성
  • 개발 목표 생성과 단건·목록 조회 추가
  • 상태별 개발 목표 조회 지원
  • 목표와 하위 개발 기록을 함께 읽는 완료 판정용 snapshot 추가
  • 상태 변경 Firestore transaction 처리
  • iOS에서 inProgress·archived 상태 전환만 허용
  • 서버가 저장한 completed·completedAt 값의 조회 유지

개발 기록 저장

  • 개발 목표 하위 개발 기록·version Firestore 경로 구성
  • 개발 기록 생성과 단건·목록·version 이력 조회 추가
  • Draft 저장 시 현재 version과 요청 baseVersionId 일치 여부를 transaction 내부에서 확인
  • 동일 baseVersionId 기반 Draft 저장의 마지막 저장 결과 우선 정책 반영
  • 최초 확정의 initial, 정정의 correction, 이전 version 복원의 rollback version 생성
  • version 생성과 currentVersionId 갱신의 단일 transaction 처리
  • 기존 version ID가 존재하면 새 version 생성 거부
  • 확정 version 변경·삭제 차단 Rules는 별도 범위 유지
    개발 기록 확정 버전의 변경을 차단한다 DevLog_Firebase#99

Todo 목표 연결

  • TodoRequest·TodoResponse와 Domain 매핑에 선택적 goalId 추가
  • Todo 생성·수정 시 goalId 저장
  • Todo 조회 시 Firestore 문서의 goalId 복원
  • 목표 연결 해제 시 기존 goalId 필드 삭제

Todo 조회·명령 분리

  • 기존 TodoServiceTodoQueryServiceTodoCommandService로 분리
  • 조회 서비스에 목록·단건·참조 조회 책임 배치
  • 명령 서비스에 Todo 저장·삭제·삭제 취소 책임 배치
  • WidgetTodoSnapshotRepositoryImpl의 조회 서비스 의존으로 한정
  • Data·Infra 조립 경로에 새 계약과 구현 연결

완료 권한 분리

📸 영상 / 이미지 (Optional)

해당 없음

@opficdev opficdev self-assigned this Aug 28, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 142071b551

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Application/Infra/Sources/Service/DevelopmentGoalServiceImpl.swift
Comment thread Application/Data/Sources/DataAssembler.swift
Comment thread Application/Infra/Sources/Service/DevelopmentGoalServiceImpl.swift Outdated
@opficdev
opficdev merged commit 8044605 into develop Aug 28, 2026
9 checks passed
@opficdev
opficdev deleted the feat/#809 branch August 28, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

1 participant