Files
sodalive-ios/docs/20261013_커뮤니티_딥링크_상세_이동/prd.md
T

3.5 KiB

PRD: 커뮤니티 딥링크 상세 이동

문서 정보

항목 내용
상태 구현 완료, 실제 게시물 UI 확인 제한은 계획에 기록
작성일 2026-10-13
결정권자 사용자
관련 계획 plan-task.md
API 기존 게시글 상세 API 재사용, 계약 변경 없음
리뷰 phase1-community-post-detail-links.md

1. Overview

voiceon://community?postId=12345를 실행하면 기존 CreatorChannelCommunityPostDetailView에서 해당 게시물을 표시한다.

2. Problem Statement

기존 링크는 저장된 사용자 ID를 크리에이터 ID로 사용해 커뮤니티 목록과 댓글 시트를 연다. 게시글 상세를 바로 보여주지 않으며 사용자 ID가 없으면 정상 postId도 처리되지 않는다.

3. Goals

  • 유효한 postId만으로 해당 게시글 상세 route에 진입한다.
  • postId 누락·잘못된 값이면 현재 화면과 대기 중 이동 상태를 바꾸지 않는다.

4. Non-Goals

  • 상세 화면 UI, API, 인증·구매·접근 권한 정책 변경.
  • 관련 없는 기존 댓글 화면/상태의 일괄 정리.
  • worktree 생성 또는 다른 브랜치로 전환.

5. 사용자와 권한

푸시 탭, 외부 URL, 앱 내 알림 목록의 공통 handler를 사용한다. 게시글 존재 여부와 접근 권한은 기존 상세 API와 화면의 오류 처리를 따른다.

6. 핵심 흐름과 라우팅

community 링크 → 양수 Int postId 해석 → .creatorChannelCommunityPostDetail(postId:) → 기존 상세 화면의 게시글 조회. 스플래시에서는 기존 pending action 전달을 유지한다. 기존 post_id 별칭, 크리에이터 경로형 및 community_id 쿼리형은 동일한 postId 상세 이동으로 처리한다.

7. 기능 요구사항

ID 상태 요구사항 수용 기준
CD-001 확정 postId로 상세 이동 12345 전달 시 상세 route에 정확히 12345 전달, 목록/댓글 시트 호출 없음
CD-002 확정 누락·무효 값 거부 빈 값, 문자, 0, 음수, Int 범위 초과는 이동 및 pending 변경 없음
CD-003 확정 사용자 ID 불필요 저장된 사용자 ID 0과 양수 모두 CD-001 성립
CD-004 확정 공통 진입점과 시작 대기 유지 external/notificationList 및 splash 후 apply가 같은 상세 route 생성
CD-005 확정 인접 기능 유지 기존 선물/콘텐츠 딥링크 검사 통과

8. 기술·운영 제약

기존 Swift/앱 라우팅과 work/tests 하네스를 재사용한다. 신규 의존성·프로젝트 설정 변경 없이 현재 브랜치에서 작업한다. 실제 서버 데이터가 필요한 UI 검증과 독립 실행 가능한 handler 검증을 구분한다.

9. 성공 기준

  • CD-001~005의 실제 production handler 실행 검사가 통과한다.
  • 변경 Swift 구문/컴파일 검사와 가능한 앱 빌드를 수행하고 실패·환경 제한을 그대로 기록한다.
  • 기기 UI 실행 미확인 상태를 정상 동작 확인으로 보고하지 않는다.

10. Open Questions

없음. 사용자 인터뷰로 누락·잘못된 값은 이동하지 않는 것으로 확정했다.

11. Decision Log

날짜 결정 근거
2026-10-13 목록 대신 기존 게시글 상세로 이동 사용자 구현 요청
2026-10-13 누락·잘못된 postId는 이동하지 않음 사용자 인터뷰 답변
2026-10-13 현재 브랜치 사용, worktree 금지 사용자 직접 지시