Skip to content

에피소드 댓글 개선 PRD

Status: Released created: March 24, 2026 6:33 PM 앱/웹/스튜디오: 앱, 웹

1. 목표 및 배경

  1. 문제: 현재 댓글은 작성 시간순으로만 정렬되어, 꿀팁·후기·플레이 방법 등 유용한 댓글이 묻히고 있음
    • 좋은 댓글이 상단에 노출되지 않아 읽는 재미가 떨어짐
    • 댓글을 잘 써도 보상(노출)이 없어 작성 동기 부족
    • 디렉터(에피소드 작성자)가 자신의 에피소드 댓글을 관리할 수 있는 도구가 없음
  2. 아이디어: 댓글 인기 순 정렬을 도입하고, 디렉터에게 댓글 관리 권한(표시·고정·삭제)을 부여하며, 전체 유저에게 댓글 수정 기능을 제공한다
  3. 가설:
    1. 인기 순 정렬을 기본으로 하면, 유용한 댓글이 상위 노출되어 댓글 읽는 비율이 증가할 것이다.
    2. 좋은 댓글이 상위에 노출되면, 댓글 작성 및 댓글 좋아요 참여가 늘어날 것이다.
    3. 디렉터 관리 기능(고정·삭제)으로 댓글 영역의 품질이 향상될 것이다.

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. 사용자 플로우

플레이어 플로우

  1. 유저가 에피소드 댓글 영역 진입 → 기본적으로 인기 순 정렬로 댓글 표시
  2. 고정댓글이 있으면 최상단에 '고정됨' 라벨과 함께 표시
  3. 유저가 필터를 '최신 순'으로 변경 → 작성시간 역순 정렬로 전환
  4. 선택한 정렬 옵션은 AsyncStorage에 저장되어, 다른 에피소드로 이동해도 유지
  5. 유저가 자기 댓글의 더보기(⋯) 메뉴에서 '수정' 선택 → 댓글 내용 수정 후 저장
  6. 유저가 자기 댓글의 더보기(⋯) 메뉴에서 '삭제' 선택 → 대댓글 유무에 따라 완전 삭제 또는 placeholder

디렉터 플로우

  1. 디렉터가 자기 에피소드의 댓글 영역 진입
  2. 디렉터가 작성한 댓글에는 '디렉터' 배지가 표시됨
  3. 특정 댓글의 더보기(⋯) 메뉴에서 '고정' 선택 → 해당 댓글이 최상단에 고정됨
    • 이미 고정된 댓글이 있으면, 기존 고정 해제 후 새 댓글 고정
  4. 특정 댓글의 더보기(⋯) 메뉴에서 '삭제' 선택 → 대댓글 유무에 따라 완전 삭제 또는 placeholder

5. 에러 처리 및 예외 상황

  • 고정된 댓글이 삭제된 경우: 고정 상태 자동 해제, 최상단 고정 영역 사라짐
  • 인기 순 정렬에서 좋아요 수가 모두 0인 댓글: 인기 순 하단에 최신순으로 정렬
  • 디렉터가 본인 에피소드가 아닌 다른 에피소드에서는 일반 유저와 동일한 권한 (고정/삭제 불가)

6. 데이터 분석

로깅 이벤트

타입이름용도파라미터비고
Event~~write_comment~~댓글 작성에피소드 정보원래 있는 post_comment로 갈음