Appearance
에피소드 댓글 개선 PRD
Status: Released created: March 24, 2026 6:33 PM 앱/웹/스튜디오: 앱, 웹
1. 목표 및 배경
- 문제: 현재 댓글은 작성 시간순으로만 정렬되어, 꿀팁·후기·플레이 방법 등 유용한 댓글이 묻히고 있음
- 좋은 댓글이 상단에 노출되지 않아 읽는 재미가 떨어짐
- 댓글을 잘 써도 보상(노출)이 없어 작성 동기 부족
- 디렉터(에피소드 작성자)가 자신의 에피소드 댓글을 관리할 수 있는 도구가 없음
- 아이디어: 댓글 인기 순 정렬을 도입하고, 디렉터에게 댓글 관리 권한(표시·고정·삭제)을 부여하며, 전체 유저에게 댓글 수정 기능을 제공한다
- 가설:
- 인기 순 정렬을 기본으로 하면, 유용한 댓글이 상위 노출되어 댓글 읽는 비율이 증가할 것이다.
- 좋은 댓글이 상위에 노출되면, 댓글 작성 및 댓글 좋아요 참여가 늘어날 것이다.
- 디렉터 관리 기능(고정·삭제)으로 댓글 영역의 품질이 향상될 것이다.
2. 타깃 사용자
- 앱/웹 사용자 전체
3. 핵심 기능 요구사항
구현 단계
- Phase 1 (백엔드 선행): 인기 순 정렬 API 구현
- Phase 2 (프론트 일괄): 필터 UI, 디렉터 기능(배지·고정·삭제), 댓글 수정, 삭제 개선을 한번에 프론트 작업
3-1. 댓글 정렬 (인기 순 / 최신 순)
에피소드 댓글 리스트에 정렬 필터 UI를 추가한다.
| 항목 | 스펙 |
|---|---|
| 정렬 옵션 | 인기 순 / 최신 순 |
| 기본 정렬 | 인기 순 |
| 인기 순 기준 | 좋아요 수 |
| 동점 처리 | 최신순 |
| 정렬 범위 | 1depth 댓글만 정렬. 대댓글은 기존 시간순 유지 |
| 정렬 선택 저장 | 유저가 선택한 정렬 옵션을 AsyncStorage에 저장. 에피소드 이동 시에도 유지 |
- 고정댓글은 정렬 옵션과 무관하게 항상 최상단에 위치
3-2. 디렉터 댓글 표시
- 에피소드 작성자(디렉터)가 해당 에피소드에 작성한 댓글에 '디렉터' 배지/라벨 표시
- 다른 유저의 댓글과 시각적으로 구별되도록 표시 (디자인 상세는 피그마 참고)
3-3. 디렉터 고정댓글
- 디렉터는 자기 에피소드 내 모든 댓글(자기 댓글 + 다른 유저 댓글)을 고정할 수 있음
- 에피소드당 고정 가능 댓글 수: 1개
- 이미 고정된 댓글이 있는 상태에서 새로운 댓글을 고정하면, 기존 고정이 해제되고 새 댓글이 고정됨
- 고정된 댓글은 정렬 옵션(인기 순/최신 순)과 무관하게 항상 최상단에 위치
- 고정된 댓글에는 '고정됨' 라벨 표시
3-4. 디렉터 댓글 삭제
- 디렉터는 자기 에피소드 내 모든 댓글(자기 댓글 + 다른 유저 댓글)을 삭제할 수 있음
- 삭제 시 완전 삭제 (흔적 없음)
- 대댓글이 있는 댓글을 삭제하는 경우: 원댓글은 '삭제된 댓글입니다' placeholder로 표시, 대댓글은 유지
3-5. 댓글 수정
- 적용 대상: 모든 유저가 자기 댓글 수정 가능
- 시간 제한: 없음 (언제든 수정 가능)
- 수정됨 표시: 있음
- 대댓글도 동일하게 수정 가능
3-6. 삭제된 댓글 처리 개선
현재 유저가 자기 댓글을 삭제하면 '삭제된 댓글입니다' placeholder가 남아있는 상태를 개선한다.
- 대댓글이 없는 댓글 삭제 시: 완전 삭제 (흔적 없음)
- 대댓글이 있는 댓글 삭제 시: '삭제된 댓글입니다' placeholder 유지 (대댓글 맥락 보존)
- 디렉터 삭제(3-4)도 동일한 규칙 적용
3-7. 댓글 복사
- 꾹 눌러서 댓글을 복사할 수 있습니다.
3-8. 대표 댓글
- 고정 댓글이 있는 경우, 고정 댓글이 대표 댓글에 보여지게 됩니다.
- 고정 댓글이 없는 경우, 좋아요가 가장 많은 댓글이 대표 댓글에 보여지게 됩니다.
- 고정 댓글, 좋아요 둘다 없는 경우 가장 최근 댓글이 대표 댓글에 보여지게 됩니다.
4. 사용자 플로우
플레이어 플로우
- 유저가 에피소드 댓글 영역 진입 → 기본적으로 인기 순 정렬로 댓글 표시
- 고정댓글이 있으면 최상단에 '고정됨' 라벨과 함께 표시
- 유저가 필터를 '최신 순'으로 변경 → 작성시간 역순 정렬로 전환
선택한 정렬 옵션은 AsyncStorage에 저장되어, 다른 에피소드로 이동해도 유지- 유저가 자기 댓글의 더보기(⋯) 메뉴에서 '수정' 선택 → 댓글 내용 수정 후 저장
- 유저가 자기 댓글의 더보기(⋯) 메뉴에서 '삭제' 선택 → 대댓글 유무에 따라 완전 삭제 또는 placeholder
디렉터 플로우
- 디렉터가 자기 에피소드의 댓글 영역 진입
- 디렉터가 작성한 댓글에는 '디렉터' 배지가 표시됨
- 특정 댓글의 더보기(⋯) 메뉴에서 '고정' 선택 → 해당 댓글이 최상단에 고정됨
- 이미 고정된 댓글이 있으면, 기존 고정 해제 후 새 댓글 고정
- 특정 댓글의 더보기(⋯) 메뉴에서 '삭제' 선택 → 대댓글 유무에 따라 완전 삭제 또는 placeholder
5. 에러 처리 및 예외 상황
- 고정된 댓글이 삭제된 경우: 고정 상태 자동 해제, 최상단 고정 영역 사라짐
- 인기 순 정렬에서 좋아요 수가 모두 0인 댓글: 인기 순 하단에 최신순으로 정렬
- 디렉터가 본인 에피소드가 아닌 다른 에피소드에서는 일반 유저와 동일한 권한 (고정/삭제 불가)
6. 데이터 분석
로깅 이벤트
| 타입 | 이름 | 용도 | 파라미터 | 비고 |
|---|---|---|---|---|
~~write_comment~~ | 원래 있는 post_comment로 갈음 |