Skip to content

에피소드 상세 캐릭터 정보 섹션 PRD

Backlog grooming 단계의 산출물. 무엇을 만들지·왜 만들지·핵심 비즈니스 룰을 정의한다. 화면별 디테일(컴포넌트·상태·인터랙션)은 spec.md로.


Status: draft
Created: 2026-05-13
Last updated: 2026-05-13
Linear Project: [앱/웹] 에피소드 상세 페이지 내 캐릭터 정보 섹션 추가 (8a6ed2ee8db2)
Author: agent
앱/웹/스튜디오: 앱 / 웹


1. 목표 및 배경

1.1 문제

  • 사용자 정의 (segment): 에피소드 상세에서 플레이 여부를 판단하는 플레이어. DM/친밀도 기능이 ship된 뒤에는 특정 캐릭터와 더 깊게 상호작용하려는 로그인 사용자.
  • 상황 (when, where): 사용자가 홈/검색/딥링크 등에서 에피소드 상세에 진입해 에피소드의 분위기·출연 캐릭터·플레이 매력을 판단하는 순간.
  • 불편 / 미충족 needs:
    • 현재 상세 구조는 캐릭터 정보를 충분히 담을 자리가 부족해, 플레이어가 “누구와 어떤 관계/맥락의 이야기를 하게 되는지” 판단하기 어렵다.
    • 디렉터는 캐릭터 정보를 전달하려고 미리보기 이미지에 텍스트를 넣는 식으로 우회하고 있다.
    • DM 메신저/친밀도 기능이 도입되어도, 에피소드 플레이 전 캐릭터와 접점을 만들 수 있는 안정적인 surface가 없다.

1.2 근거

  • Linear seed: 캐릭터 정보는 에피소드 플레이 결정에 중요한 입력이지만 현재 에피소드 상세에 표현 공간이 부족하다는 문제 제기.
  • Linear seed: DM 메신저 도입을 위해 에피소드 플레이 없이도 캐릭터와 접점을 만들 surface가 필요하다는 결정.
  • UL 확인: Episode, Character는 Frontia의 기존 도메인 용어다. 본 PRD는 신규 도메인 엔티티를 만들기보다 기존 에피소드 상세에서 캐릭터 정보를 노출하는 IA/진입 surface를 정의한다.
  • 정량 근거는 아직 미확보. 에피소드 상세 진입률, 상세→플레이 전환율, 미리보기 이미지 내 캐릭터 텍스트 사용 패턴 확인이 필요하다.

1.3 아이디어 (해결 방향)

  • 옵션 1 — 캐릭터 정보만 노출: 에피소드 상세에 출연 캐릭터 카드/섹션을 추가한다. 플레이 판단 컨텍스트는 보강되지만 DM/친밀도 진입 surface 목적은 약하다.
  • 옵션 2 — 캐릭터 정보 + 친밀도 + DM 진입을 함께 설계: 캐릭터 설명, 친밀도 상태, “이 캐릭터와 대화하기” CTA를 한 섹션에서 제공한다. 정보 탐색과 후속 상호작용의 연결이 명확하다.
  • 추천 옵션과 이유: 옵션 2. 이 작업의 목적은 “캐릭터 정보 섹션” 자체가 아니라 에피소드 플레이 결정 컨텍스트 보강 + 캐릭터 중심 후속 기능의 진입 surface 확보다.

1.4 가설

  1. 에피소드 상세에서 캐릭터 정보가 명확히 보이면 사용자는 플레이 전 이야기/관계 맥락을 더 잘 이해하고, 상세→플레이 전환율이 상승한다.
  2. 디렉터가 미리보기 이미지에 캐릭터 설명을 넣는 우회가 줄어들어, 에피소드 카드/상세의 정보 구조가 더 일관된다.
  3. DM/친밀도 기능이 ship된 뒤 에피소드 상세는 캐릭터와의 대화/관계 심화로 이어지는 핵심 진입 surface가 된다.

1.5 성공 지표

지표현재목표측정 방법
에피소드 상세 → 플레이 전환율기준선 필요회귀 없이 개선상세 노출 세션 중 플레이 시작 비율
캐릭터 섹션 노출 대비 카드/CTA 상호작용률신규기준선 수립view_character_section 대비 클릭 이벤트
DM CTA 클릭률DM ship 전 N/ADM ship 후 기준선 수립DM CTA 노출 대비 클릭
상세 이탈률기준선 필요악화 없음상세 진입 후 플레이/상호작용 없이 이탈
  • 메인 지표: 에피소드 상세 → 플레이 전환율.
  • 보조 지표: 캐릭터 카드 클릭률, DM CTA 클릭률, 친밀도 영역 노출 대비 상호작용률.
  • 가드레일 지표: 에피소드 상세 이탈률, 상세 페이지 로딩/스크롤 성능, 비로그인 사용자의 CTA 혼란.

2. 타깃 사용자

2.1 주요 사용자

  • 에피소드 상세에서 플레이 여부를 판단하는 플레이어.
  • 특정 캐릭터에 관심이 생겨 에피소드 플레이 전/후로 더 대화하고 싶은 로그인 사용자.
  • 자신의 에피소드를 더 잘 설명하고 싶은 디렉터. 단, 본 PRD는 스튜디오 입력/관리 기능을 직접 정의하지 않는다.

2.2 핵심 시나리오

  1. 사용자가 에피소드 상세에 진입해 출연 캐릭터의 이름·이미지·간단 설명을 보고 플레이할지 판단한다.
  2. 로그인 사용자가 마음에 드는 캐릭터를 발견하고 “이 캐릭터와 대화하기”를 눌러 DM으로 진입한다.
  3. 사용자가 이미 친밀도 데이터가 있는 캐릭터를 상세에서 다시 보고, 현재 친밀도 단계/진척을 확인한 뒤 플레이 또는 DM으로 이어간다.

3. 핵심 기능 요구사항

3-1. 클라이언트 (앱/웹)

에피소드 상세 내 캐릭터 정보 섹션

  • 주요 동작: 에피소드 상세 페이지에 해당 에피소드의 주요 캐릭터 정보를 섹션 단위로 노출한다.
  • 비즈니스 룰:
    • 섹션은 에피소드에 연결된 캐릭터가 1명 이상 있을 때 노출한다.
    • 캐릭터가 0명이거나 공개 가능한 캐릭터 정보가 없으면 섹션을 숨긴다. 빈 섹션을 보여주지 않는다.
    • 캐릭터 카드는 최소한 캐릭터 이미지/이름을 포함한다.
    • 캐릭터 설명은 스튜디오에서 디렉터가 직접 입력한 경우에만 노출한다.
    • 캐릭터 설명 입력란은 짧은 보조 설명 용도이며, 최대 50글자로 제한한다.
    • 같은 캐릭터가 여러 에피소드에 등장하더라도 친밀도와 DM 진입은 캐릭터 단위로 일관되게 연결한다.
  • 정렬/강조:
    • 스튜디오에서 디렉터가 지정한 정렬 순서를 사용한다.
  • 상태별 동작:
    • 로그인 사용자: 캐릭터 정보, 친밀도 상태, DM CTA를 표시한다.
    • 비로그인 사용자: 캐릭터 정보는 표시한다. DM CTA는 로그인 유도 또는 비활성 안내로 처리한다.
    • 캐릭터 이미지 없음: 기본 placeholder를 사용한다.
    • 캐릭터 설명 없음: 설명 영역을 축약하거나 숨긴다. “설명 없음” 같은 무의미한 문구는 노출하지 않는다.

친밀도 정보 노출

  • 주요 동작: 캐릭터 카드 또는 섹션 내에서 현재 사용자와 캐릭터의 친밀도 상태를 보여준다.
  • 비즈니스 룰:
    • 친밀도 값/단계/곡선은 별도 친밀도 체계 작업의 정의를 따른다.
    • 본 PRD에서는 표시 구조만 정의한다: 단계 라벨, 진척바, 경험치 숫자.
    • 친밀도 데이터가 없거나 기능이 미ship이면 친밀도 영역만 숨긴다. 캐릭터 정보 섹션 전체를 막지 않는다.
    • 친밀도는 (user, character) 기준의 전역 관계로 취급한다. 특정 에피소드에 귀속된 점수처럼 보이지 않게 한다.

“이 캐릭터와 대화하기” CTA

  • 주요 동작: 사용자가 캐릭터별 DM 대화로 진입할 수 있는 CTA를 제공한다.
  • 비즈니스 룰:
    • DM 기능이 ship된 환경에서 로그인 사용자는 에피소드 플레이 이력과 무관하게 CTA를 사용할 수 있다.
    • 이유: 본 surface의 목적 중 하나가 “플레이하지 않고도 캐릭터와 접점 만들기”이기 때문이다.
    • 비로그인 사용자는 로그인 후 DM으로 이어지는 동선으로 처리한다.
    • DM 기능이 미ship이거나 해당 캐릭터가 DM 미지원이면 CTA 영역만 숨기거나 준비 중 상태로 처리한다. 최종 노출 정책은 spec/design에서 확정한다.
    • CTA 클릭 후 이동 방식은 기존 DM/메신저 네비게이션 정책을 따른다.

3-2. 어드민

이번 범위에서 별도 어드민 화면은 정의하지 않는다.

  • 캐릭터 필드 입력/관리 방식은 기존 스튜디오 캐릭터 관리 정책을 우선 재사용한다.
  • 필요한 캐릭터 필드가 현재 스튜디오에 없다면 후속 스튜디오/콘텐츠 관리 작업으로 분리한다.

3-3. 딥링크 / URL 구조

  • 에피소드 상세 진입은 기존 /episode/:episodeId 경로를 재사용한다.
  • 캐릭터 DM 진입은 기존 또는 별도 DM deep link 정책을 확인해 spec 단계에서 확정한다.
  • 신규 path가 필요하면 본 PRD가 아니라 DM/spec 단계에서 확정 후 딥링크 문서에 반영한다.

3-4. Scope

포함 (In scope)

  • 에피소드 상세 내 캐릭터 정보 섹션 노출 정책.
  • 캐릭터 카드에 표시할 최소 정보 범위의 PRD 수준 정의.
  • 친밀도 표시 영역의 존재 조건과 정보 구조.
  • 캐릭터별 DM CTA의 노출/진입 정책.
  • 비로그인, 캐릭터 정보 없음, 친밀도/DM 미지원 상태의 처리 방향.
  • 성공 지표와 신규/후보 tracking event 정의.

제외 (Out of scope)

  • DM 메신저 기능 자체.
  • 친밀도 점수 산식, 레벨 곡선, 보상 정책.
  • 스튜디오 캐릭터 입력/관리 UI 개편.
  • 캐릭터 상세 페이지 신설.
  • 추천/랭킹 알고리즘 변경.

4. 에러 처리 및 예외 상황

상황처리 방향
캐릭터가 없는 에피소드캐릭터 섹션 미노출
캐릭터 정보 일부 누락가능한 필드만 노출하고 빈 라벨/placeholder 문구 남발 금지
캐릭터 이미지 로드 실패기본 placeholder 노출
비로그인 사용자가 DM CTA 클릭로그인 유도 후 가능하면 원래 캐릭터 DM 목적지 유지
DM 기능 미지원/미shipCTA 숨김 또는 준비 중 처리. 섹션 정보 노출은 유지
친밀도 데이터 없음/미ship친밀도 영역 숨김. 캐릭터 정보 노출은 유지
삭제/비공개 캐릭터해당 캐릭터 카드 제외. 모든 캐릭터가 제외되면 섹션 미노출
네트워크 오류기존 에피소드 상세 오류 처리 정책을 따른다. 캐릭터 섹션만 실패하면 상세 전체를 막지 않는 방향 우선

5. 데이터 분석

5.1 핵심 지표

  1. 상세→플레이 전환율: 에피소드 상세 진입 세션 중 플레이 시작까지 이어진 비율.
  2. 캐릭터 섹션 상호작용률: 캐릭터 섹션 노출 대비 캐릭터 카드 클릭/DM CTA 클릭 비율.
  3. DM 진입률: DM CTA 노출 대비 실제 DM 대화 화면 진입 비율.
  4. 상세 이탈률: 상세 진입 후 플레이/CTA/다른 주요 행동 없이 이탈한 비율.

5.2 로깅 이벤트

기존 event-docs에서 재사용 가능 이벤트를 먼저 확인해야 한다. 아래는 신규 후보이며, spec 단계에서 기존 이벤트와 매핑한다.

타입이름용도파라미터그룹상태
Eventview_character_section에피소드 상세에서 캐릭터 섹션이 노출됨episode_id, character_count, has_affinity, has_dm_cta, surfaceepisode-detail🆕 후보
Eventclick_character_card캐릭터 카드 클릭episode_id, character_id, card_index, surfaceepisode-detail🆕 후보
Eventclick_open_character_dm캐릭터 DM CTA 클릭episode_id, character_id, affinity_level, surfaceepisode-detail🆕 후보

6. Ubiquitous Language

TermKoreanDefinitionDo Not Confuse WithPrimary Domain상태
Episode에피소드디렉터가 제작하고 플레이어가 플레이할 수 있는 스토리 콘텐츠 단위특정 유저의 플레이 인스턴스Episode Content기존
Character캐릭터에피소드 콘텐츠와 플레이에 사용되는 이야기 속 인물유저 프로필Episode Content기존
  • 친밀도, DM은 인접 작업에서 도메인 용어로 확정될 가능성이 높다. 본 PRD에서는 후속 작업의 정의를 참조하며 신규 UL 등재는 보류한다.

7. Open Questions

  • [x] 캐릭터 설명 정책 — 누구에게: PM
    스튜디오에서 디렉터가 입력한 경우에만 노출하며, 최대 50글자로 제한한다.
  • [ ] 섹션 위치 — 누구에게: Design/PM
    에피소드 설명, 플레이 CTA, 댓글/리뷰, 제작자 정보 사이 우선순위 확정 필요.
  • [x] 캐릭터 정렬 정책 — 누구에게: PM
    스튜디오에서 디렉터가 지정한 정렬 순서를 사용한다.
  • [ ] DM 미ship/부분 ship 상태의 CTA visibility — 누구에게: PM/Engineering
    숨김, disabled, 준비 중 안내 중 선택 필요. 사용자 기대만 만들고 실제 대화가 불가한 상태는 피해야 한다.
  • [ ] 친밀도 단계명/진척 단위 — 누구에게: 친밀도 owner
    본 PRD는 표시 구조만 가정. 단계 라벨과 경험치 숫자 단위는 친밀도 체계 PRD를 따른다.
  • [ ] 기준선 데이터 확보 — 누구에게: Data
    에피소드 상세 진입률, 상세→플레이 전환율, 상세 이탈률, 미리보기 이미지 내 캐릭터 텍스트 사용 패턴.
  • [ ] 로깅 이벤트 재사용 매핑 — 누구에게: Data/Engineering
    episode-detail 기존 이벤트가 있으면 신규 이벤트 대신 재사용/확장한다.

부록: 메타 정보

Required artifacts

  • [x] Spec (needs-spec) — 화면별 컴포넌트·상태·인터랙션 명세
  • [x] Design (needs-design) — 에피소드 상세 내 섹션 위치/카드/CTA 시안
  • [ ] QA scenarios (needs-qa-scenarios) — Sprint planning에서 작성
  • [ ] Migration plan (needs-migration) — 이번 PRD만으로는 미정. 캐릭터 필드 추가가 필요하면 후속 판단
  • [x] Tracking events (needs-tracking) — 새 분석 이벤트 또는 기존 이벤트 확장 확인 필요
  • [ ] 기타: DM/친밀도 인접 PRD와 정책 정합성 확인

진행 패턴 (Refinement 단계 진입 후)

  • [x] Pattern 1: Spec → Design
  • [ ] Pattern 2: Design → Spec
  • [ ] Pattern 3: Spec only

Size & Risks

T-shirt Size

  • Size: M
  • Confidence: medium
  • 추정 근거: 에피소드 상세 UI 변경은 단순해 보이지만 DM/친밀도/스튜디오 캐릭터 데이터와 맞물린 정책 의존성이 있다.

주요 위험 요소

위험영향대응
캐릭터 정보 필드가 부실하거나 미입력섹션 품질 저하, 빈 UI 증가최소 필드 기준과 fallback 정책 확정
DM/친밀도 작업과 정책 불일치CTA/친밀도 표시가 실제 기능과 어긋남인접 PRD owner와 표시 조건/용어/진입 정책 동기화
상세 페이지 정보 과밀플레이 CTA 집중도 저하, 이탈 증가섹션 위치와 접힘/요약 정책을 spec/design에서 검증
신규 이벤트 중복analytics 정합성 저하event-docs 기존 이벤트 재사용 우선 검토

의존성

  • 다른 작업: DM 메신저, 친밀도 점수 체계.
  • 다른 팀: Design, Data, Engineering.
  • 외부 요인: 없음.

References

🔍 검토 필요

🚨 결정 필요

  • 섹션 위치는 플레이 전환에 직접 영향을 주므로 spec/design 전 확정 필요.
  • DM CTA를 “항상 활성”으로 둘지, DM 기능 rollout/캐릭터 지원 상태에 따라 숨길지 정책 확정 필요.

⚠️ 추정

  • DM CTA는 로그인 사용자에게 에피소드 플레이 이력과 무관하게 활성으로 가정했다.
  • 친밀도는 (user, character) 전역 관계로 가정했다.
  • 캐릭터 정렬은 대표/중요도 우선, 없으면 등록 순서로 가정했다.

❓ 외부 agent 호출 필요

  • 데이터 agent: 에피소드 상세 진입률, 상세→플레이 전환율, 상세 이탈률, 미리보기 이미지 내 캐릭터 텍스트 사용 패턴.
  • 코드 agent: 현재 에피소드 상세에서 캐릭터 데이터/DM deep link/친밀도 데이터를 사용할 수 있는지 확인.
  • 디자인: 섹션 위치, 카드 밀도, CTA 노출 방식, 친밀도 표시 UI.
prd-review 보기

Review log

2026-05-13

채택

  • Q: 이 PRD의 목적이 “캐릭터 정보 섹션 추가”라는 솔루션에 갇혀 있지 않은가?

    • A: 목적을 에피소드 플레이 결정 컨텍스트 보강 + 캐릭터 중심 DM/친밀도 진입 surface 확보로 재정의.
    • → PRD §1.1~§1.4, §1.5 메인 지표에 반영.
  • Q: DM CTA가 에피소드 플레이 후에만 열리면 “플레이 없이 접점 마련”이라는 Why와 충돌하지 않는가?

    • A: 로그인 사용자는 에피소드 플레이 이력과 무관하게 DM CTA 사용 가능으로 가정. rollout/지원 상태는 별도 open question.
    • → PRD §3-1 “이 캐릭터와 대화하기 CTA”, §7, 🔍 검토 필요에 반영.
  • Q: 친밀도 표시가 본 PRD의 소유 범위를 넘지 않는가?

    • A: 점수 산식/곡선/단계명은 친밀도 owner 소관으로 분리하고, 본 PRD는 표시 구조와 노출 조건만 정의.
    • → PRD §3-1 “친밀도 정보 노출”, §3-4 Out of scope, §7에 반영.
  • Q: 캐릭터 없음/정보 누락/DM 미지원 같은 예외 상태가 사용자 관점으로 충분히 정의됐는가?

    • A: 섹션 숨김, 필드 축약, placeholder, 로그인 유도, DM/친밀도 영역 부분 숨김을 명시.
    • → PRD §3-1 상태별 동작, §4에 반영.
  • Q: 로깅 이벤트가 기존 컨벤션과 중복될 위험이 있는가?

    • A: 신규 이벤트는 후보로만 두고, event-docs 기존 이벤트 재사용 매핑을 Open Question으로 남김.
    • → PRD §5.2, §7에 반영.

Skip

  • Q: 백엔드/API/저장 구조를 PRD에 더 자세히 적어야 하는가?
    • 사유: 이번 PRD는 제품 룰/UX surface 정의가 목적. 구현/API/storage 디테일은 spec/dev design에서 다루는 편이 맞음.

남은 결정 필요

  • 캐릭터 카드 필드 셋: 이미지/이름/짧은 설명 외 관계·태그·대표 대사 포함 여부.
  • 섹션 위치: 플레이 CTA 전/후, 에피소드 설명 하단, 댓글/제작자 정보와의 우선순위.
  • DM 미ship/부분 ship 상태의 CTA visibility: 숨김/disabled/준비 중 안내.
  • 기준선 데이터와 이벤트 재사용 매핑.

2026-05-13 피드백 반영

채택

  • Q: 캐릭터 설명을 장문/세계관 설명까지 허용하면 섹션이 과해지지 않는가?

    • A: 캐릭터 설명은 스튜디오에서 디렉터가 입력한 경우에만 노출하고, 최대 50글자로 제한.
    • → PRD §3-1 캐릭터 정보 섹션, §7에 반영.
  • Q: 캐릭터 정렬/강조 정책을 대표 캐릭터/중요도 기준으로 열어둘 필요가 있는가?

    • A: 스튜디오에서 디렉터가 지정한 정렬 순서를 사용. 대표 캐릭터 강조/중요도 우선 문구 삭제.
    • → PRD §3-1 정렬/강조, §7에 반영.
  • Q: 비로그인 DM 차단 이벤트가 필요한가?

    • A: block_character_dm_login_required 후보 삭제.
    • → PRD §5.2 로깅 이벤트에서 삭제.