Appearance
유저 세그먼트별 인기 에피소드 추천으로 씬 생성 유도 PRD
Backlog grooming 단계의 산출물. 무엇을 만들지·왜 만들지·핵심 비즈니스 룰을 정의한다. 화면별 디테일(컴포넌트·상태·인터랙션)은 spec.md로.
Status: draft Created: 2026-06-01 Last updated: 2026-06-15 Linear Project: [앱/웹] 유저 세그먼트별 인기 에피소드 추천으로 씬 생성 유도Linear Issue: DEE-297 (PRD writing) Initiative: D0 다음 행동/콘텐츠 유도 Author: agent (Dreamy) / momo 앱/웹/스튜디오: 앱 / 웹
1. 목표 및 배경
가입 직후 사용자가 앱을 열고 홈에서 “무엇을 플레이할지” 빠르게 고르지 못하면 첫 씬 생성으로 이어지기 어렵다. 본 PRD는 유저 세그먼트에 맞는 홈 큐레이션과 앱 init 시점 홈 팝업을 제공해 D0 첫/추가 씬 생성을 늘리는 것을 목표로 한다.
이번 범위는 두 기능을 독립적으로 정의한다.
- 유저 세그먼트별 홈 큐레이션 섹션: 홈 안의 기존 큐레이션/PageSection 영역에 세그먼트별 에피소드 묶음을 노출한다.
- 홈 팝업: 홈 메뉴 진입이 아니라 앱 init 시점에 콘텐츠 단위로 관리되는 팝업을 노출한다. 팝업은 타입에 따라
HomeNoticePopup과HomeRecommendPopup으로 속성·랜딩 방식이 나뉜다.
성공은 추천/팝업 경유 에피소드 진입과 씬 생성 증가로 판단한다. 추천 리스트 산출 알고리즘 고도화, 홈 대규모 리디자인, 팝업/큐레이션 외 추천 모델 개선은 본 범위가 아니다.
1.1 성공 지표
| 지표 | 정의 / 측정 | 목적 |
|---|---|---|
| D0 첫 씬 생성률 | 가입 코호트 중 D0 첫 씬 생성 유저 비율 | 메인 활성화 지표 |
| 홈 큐레이션 노출 → 카드 클릭률 | 큐레이션 섹션 노출 대비 카드 클릭 | 섹션 발견/관심 측정 |
| 홈 큐레이션 경유 씬 생성 | entry_source=segment_home_curation 경유 씬 생성 | 섹션의 실제 생성 기여 측정 |
| 홈 팝업 노출 → 이미지/CTA 클릭률 | 팝업 노출 대비 랜딩 액션 클릭 | 팝업 유도 효과 측정 |
| 홈 팝업 경유 씬 생성 | entry_source=home_recommend_popup 경유 씬 생성 | 추천 팝업의 실제 생성 기여 측정 |
다시 보지 않기 비율 | 팝업 노출 대비 suppression 선택 | 팝업 피로도/부적합 노출 측정 |
| D1 리텐션 | 가입 다음날 재방문 유저 / 가입 유저 | 장기 가드레일 |
본 기능은 A/B 테스트가 아니므로 별도 대조군을 두지 않는다. 출시 전후 D0 첫 씬 생성률과 각 노출면별 funnel 지표를 모니터링한다.
2. 타깃 사용자 및 핵심 시나리오
2.1 주요 사용자
- 홈에 진입한 신규/초기 유저: 아직 다음에 플레이할 에피소드를 고르지 못한 상태.
- 운영이 특정 세그먼트 또는 특정 콘텐츠를 홈에서 강조하고 싶은 대상 유저.
2.2 핵심 시나리오
- 홈 큐레이션 섹션에서 에피소드를 고른다
유저가 홈의 세그먼트 큐레이션 섹션을 보고 에피소드 카드를 탭해 상세/플레이로 진입한다. - 추천 팝업에서 에피소드 플레이로 바로 이동한다
앱 init 시점에HomeRecommendPopup이 뜬다. 유저가 팝업 이미지 영역을 탭하면 해당 에피소드의 가장 최근 플레이로 바로 이동한다. - 공지 팝업에서 지정 랜딩으로 이동한다
앱 init 시점에HomeNoticePopup이 뜬다. 유저가 CTA를 탭하면 운영자가 등록한 딥링크로 이동한다. - 팝업을 닫거나 다시 보지 않는다
유저가닫기또는 Dim을 눌러 닫거나다시 보지 않기를 눌러 해당 콘텐츠 기간 내 재노출을 끈다.
3. 핵심 기능 요구사항
3-1. 유저 세그먼트별 홈 큐레이션 섹션
목적
홈 안의 기존 큐레이션/PageSection 영역에 유저 세그먼트별 에피소드 묶음을 노출해 에피소드 진입과 씬 생성을 유도한다.
유저 경험
- 홈에 진입하면 기존 홈 섹션 리스트 안에 세그먼트 큐레이션 섹션을 노출한다.
- 유저가 섹션의 에피소드 카드를 탭하면 에피소드 상세 또는 플레이로 이동한다.
- 후보 에피소드가 없거나 현재 유저가 어떤 노출 조건에도 해당하지 않으면 섹션을 노출하지 않는다. 빈 섹션이나 대체 섹션을 만들지 않는다.
어드민/운영 설정
홈 큐레이션은 섹션 단위로 관리한다. 각 큐레이션 섹션은 아래 값을 가진다.
| 설정값 | 정책 |
|---|---|
| 섹션명 | 운영자가 식별하는 이름 |
| 활성 여부 | off면 노출 후보에서 제외 |
| 노출 위치/슬롯 | 홈 내 어느 큐레이션 위치에 노출할지 지정 |
| 노출 대상 세그먼트 | 성별, 나이 구간, 선호 visual type, 가입 후 경과일 등 유저 조건 |
| 노출 우선순위 | 한 유저가 여러 큐레이션 섹션 조건에 동시에 해당할 때 어떤 섹션을 먼저/우선 노출할지 결정. 어드민에서 drag order로 순서를 설정한다 |
| 에피소드 후보 | 해당 섹션에 노출할 에피소드 묶음 또는 이미 선정된 추천 결과 |
| 최대 노출 개수 | 홈 섹션에 보여줄 카드 수 |
| 적용 기간 | 필수. started_at/expired_at을 입력하며, * 입력 시 전체 기간으로 본다 |
Admin 입력 규칙: Admin / Data Inputs의 값은 기본적으로 필수다. 단, min/max 범위를 갖는 값은 한쪽 또는 양쪽에
*를 입력해 전체 범위를 의미할 수 있다. 예:age_min=*,age_max=*= 전체 나이.signup_day_min=*,signup_day_max=*= 전체 가입 경과일.
세그먼트 기준
- 세그먼트 기준은 운영자가 설정 가능한 유저 조건이다.
- v1에서 사용할 수 있는 기준:
gender,age_min/age_max,preferred_visual_type,signup_day_min/signup_day_max. - 가입 후 경과일은 가입일을
D0으로 두고 KST calendar day 기준으로 계산한다. - 세그먼트 기준은 노출 대상 조건이며, 후보 부족 시 조건을 완화하지 않는다.
비즈니스 룰
- 유저가 노출 대상 조건에 해당하고 유효한 후보가 1개 이상 있을 때만 섹션을 노출한다.
- 유저가 여러 홈 큐레이션 섹션에 동시에 해당하면 노출 우선순위가 높은 섹션을 우선 적용한다.
- 후보가 부족하면 가능한 후보만 노출한다. 후보가 0개면 섹션 미노출.
- 카드 탭 이후 진입/씬 생성 attribution에는
entry_source=segment_home_curation을 남긴다.
3-2. 홈 팝업
목적
홈 메뉴 진입이 아니라 앱 init 시점에 운영이 강조하려는 콘텐츠를 팝업으로 노출한다. 팝업 노출 대상은 콘텐츠 단위로 관리하고, 콘텐츠 타입에 따라 필요한 정보값과 랜딩 방식이 다르다.
홈 팝업은 하나의 공통 팝업 운영 영역 안에서 아래 두 타입으로 구분한다.
HomeNoticePopup: 공지/프로모션 안내형 팝업HomeRecommendPopup: 에피소드 추천형 팝업
공통 어드민/운영 설정
모든 홈 팝업 콘텐츠는 아래 공통 값을 가진다.
| 설정값 | 정책 |
|---|---|
| 팝업 콘텐츠명 | 운영자가 식별하는 이름 |
| 활성 여부 | off면 노출 후보에서 제외 |
| 팝업 타입 | HomeNoticePopup 또는 HomeRecommendPopup |
| 노출 대상 세그먼트 | 성별, 나이 구간, 선호 visual type, 가입 후 경과일 등 유저 조건 |
| 노출 우선순위 | 한 유저가 여러 팝업 콘텐츠 조건에 동시에 해당할 때 어떤 콘텐츠를 노출할지 결정. 어드민에서 drag order로 순서를 설정한다 |
| 노출 기간 | 필수. started_at ~ expired_at. * 입력 시 전체 기간으로 본다 |
| 다시 보지 않기 기준 | 동일 팝업 콘텐츠 + 동일 노출 기간 기준으로 suppression |
Admin 입력 규칙: Admin / Data Inputs의 값은 기본적으로 필수다. 노출 대상의 min/max 범위와 노출 기간은
*를 전체 의미로 사용할 수 있다. 예:age_min=*,age_max=*= 전체 나이,started_at=*,expired_at=*= 상시 노출.
공통 노출 룰
- 앱 init 시점에 active 상태, 노출 기간, 노출 대상, suppression 상태, 필수 정보값 유효성을 통과한 팝업 콘텐츠를 후보로 본다.
- 후보가 여러 개면 노출 우선순위가 가장 높은 1개만 노출한다.
- 후보가 0개면 팝업을 노출하지 않는다.
- 한 번의 앱 init에서 홈 팝업은 최대 1개만 노출한다.
- 팝업은 홈 큐레이션 섹션과 독립적으로 노출된다. 팝업이 닫혀도 홈 큐레이션 섹션은 별도 조건에 따라 계속 노출될 수 있다.
HomeNoticePopup — 공지/프로모션 안내형
| 정보값 | 정책 |
|---|---|
| 공지 이미지 | 팝업 상단/본문에 노출할 이미지 |
| Maintitle | 공지 제목 |
| Subtitle | 공지 보조 설명 |
| CTA 문구 | 버튼에 표시할 문구 |
| 랜딩 딥링크 | CTA 탭 시 이동할 위치. 공지별로 서로 다른 딥링크를 등록할 수 있어야 함 |
- 유저가 CTA를 탭하면 등록된 랜딩 딥링크로 이동한다.
HomeNoticePopup은 에피소드 플레이 진입을 전제로 하지 않는다.- 공지 이미지/타이틀/서브타이틀/CTA/딥링크 중 필수 값이 없으면 해당 팝업은 노출하지 않는다.
HomeRecommendPopup — 에피소드 추천형
| 정보값 | 정책 |
|---|---|
| 추천 에피소드 | 팝업이 유도할 에피소드 |
| 에피소드 썸네일/이미지 | 팝업 본문 이미지. 강력추천 뱃지와 지금 시작 CTA 표현은 이미지 안에서 처리 |
| Maintitle | 추천 제목 |
| Subtitle | 추천 보조 설명 |
| 에피소드 플레이 딥링크 | 이미지 영역 탭 시 이동할 에피소드 플레이 딥링크 |
- 별도 CTA 버튼은 두지 않는다.
지금 시작은 이미지 안에 포함된 표현으로 처리한다. - 유저가 이미지 영역을 탭하면 해당 에피소드의 가장 최근 플레이로 바로 이동한다.
- 추천 팝업 경유 진입/씬 생성 attribution에는
entry_source=home_recommend_popup을 남긴다. - 추천 에피소드/이미지/플레이 딥링크 중 필수 값이 없으면 해당 팝업은 노출하지 않는다.
닫기 / 다시 보지 않기
닫기또는 Dim 탭: 팝업을 닫는다.다시 보지 않기: 동일 팝업 콘텐츠와 동일 노출 기간 기준으로 suppression을 저장하고 해당 기간 종료 전까지 재노출하지 않는다.- 기간이 바뀌면 새 노출 기간으로 보고 suppression도 새로 평가한다.
4. Scope
포함 (In scope)
- 홈 큐레이션 섹션 노출/클릭/진입 플로우.
- 홈 큐레이션 섹션의 노출 대상 세그먼트, 노출 우선순위, 후보 0개 미노출 정책.
- 홈 팝업 공통 노출 정책: 앱 init 시점 노출, 콘텐츠 단위 관리, 노출 대상, drag order 기반 노출 우선순위, 노출 기간, suppression.
HomeNoticePopup정보값과 CTA 딥링크 랜딩.HomeRecommendPopup정보값과 이미지 영역 탭 → 에피소드 최근 플레이 이동.- 홈 큐레이션/홈 팝업 경유 attribution 로깅.
제외 (Out of scope)
- 추천 리스트 자동 산출 알고리즘 고도화.
- 홈 대규모 리디자인.
- 홈 큐레이션 섹션/팝업 외 추천 surface 확장.
- 에피소드 후보를 자동으로 생성·랭킹하는 데이터 파이프라인.
- 어드민 저장 구조/API/DB schema 세부 설계.
5. 에러 처리 및 예외 상황
| 상황 | 처리 방향 |
|---|---|
| 홈 큐레이션 섹션 후보 0개 | 섹션 미노출 |
| 홈 큐레이션 노출 대상 조건 불일치 | 섹션 미노출 |
| 홈 큐레이션 조회 실패 | 기존 홈 렌더링 유지, 에러 토스트 없음 |
| 팝업 후보 0개 | 팝업 미노출 |
| 팝업 필수 정보값 누락 | 해당 팝업 후보 제외 |
| 팝업 이미지 로드 실패 | 팝업 미노출 |
같은 팝업 콘텐츠/기간에 다시 보지 않기 선택됨 | 해당 기간 내 팝업 미노출 |
| 등록 딥링크 실행 실패 | 이동 실패 처리 정책은 기존 딥링크/라우팅 정책을 따른다 |
6. 데이터 분석 / 로깅
6.1 홈 큐레이션 섹션
- 섹션 노출: 기존 홈 섹션 노출 이벤트 또는 신규/확장 이벤트에
surface=segment_home_curation을 남긴다. - 카드 클릭: 기존 에피소드 카드 클릭 이벤트 또는 신규/확장 이벤트에
entry_source=segment_home_curation을 남긴다. - 에피소드 진입/씬 생성:
entry_source=segment_home_curation으로 attribution을 이어간다. - 주요 파라미터:
curation_id,segment_id,exposure_priority,episode_id,slot_index.
6.2 홈 팝업
| 타입 | 이벤트 | 용도 | 주요 파라미터 |
|---|---|---|---|
| Event | view_home_promo_popup | 홈 팝업 노출 | popup_id, popup_type, exposure_priority, started_at, expired_at, segment_id |
| Event | click_home_promo_popup | 팝업 액션 | popup_id, popup_type, button(notice_cta|image|dismiss|do_not_show), deeplink, episode_id(추천형일 때) |
HomeNoticePopup: CTA 탭은button=notice_cta, 랜딩 딥링크를 함께 기록한다.HomeRecommendPopup: 이미지 영역 탭은button=image, 에피소드 플레이 진입/씬 생성에는entry_source=home_recommend_popup을 이어간다.닫기/Dim은button=dismiss,다시 보지 않기는button=do_not_show로 구분한다.
이벤트명/그룹은 event-docs 대조 후 확정한다. 단, QA 가능성을 위해 노출·클릭·진입 attribution은 위 의미 단위로 반드시 분리되어야 한다.
7. Ubiquitous Language
| Term | Korean | Definition | Do Not Confuse With | Primary Domain | 상태 |
|---|---|---|---|---|---|
| Segment Home Curation | 세그먼트 홈 큐레이션 | 홈 큐레이션/PageSection 영역에 유저 세그먼트 조건별 에피소드 묶음을 노출하는 기능 | 홈 팝업 | Discovery | 신규 |
| Home Popup | 홈 팝업 | 앱 init 시 콘텐츠 단위로 관리되는 팝업 노출 영역 | 홈 큐레이션 섹션 | Discovery | 신규 |
| HomeNoticePopup | 공지형 홈 팝업 | 공지 이미지, title/subtitle, CTA 문구, 랜딩 딥링크를 가진 팝업 타입 | 추천형 팝업 | Discovery | 신규 |
| HomeRecommendPopup | 추천형 홈 팝업 | 추천 에피소드, 이미지, title/subtitle, 에피소드 플레이 딥링크를 가진 팝업 타입 | 공지형 팝업 | Discovery | 신규 |
| Exposure Target | 노출 대상 | 특정 큐레이션 섹션/팝업 콘텐츠를 볼 수 있는 유저 조건 | 추천 후보 산출 로직 | Discovery | 신규 |
| Exposure Priority | 노출 우선순위 | 유저가 여러 노출 조건에 동시에 해당할 때 무엇을 먼저 보여줄지 정하는 값 | 세그먼트 자체 | Discovery | 신규 |
| Suppression | 노출 억제 | 다시 보지 않기 이후 동일 콘텐츠/동일 기간 내 재노출하지 않는 상태 | 단순 닫기 | Discovery | 신규 |
🔍 검토 필요
🚨 결정 필요
- 이벤트 그룹 확정: 이벤트명은
view_home_promo_popup/click_home_promo_popup으로 두고, event-docs 기준 그룹 매핑 확정 필요. - 홈 큐레이션 후보 공급 방식: 세그먼트별 에피소드 후보가 기존 추천 소스에서 오는지, 운영 curated 목록인지, 별도 데이터 산출 dependency인지 개발/데이터 설계에서 확정 필요.
✅ 결정 완료
- 세그먼트 신호 없음/후보 부족 시 조건을 완화하지 않고 미노출한다.
- 핵심 기능은
유저 세그먼트별 홈 큐레이션과홈 팝업으로 독립 작성한다. - 홈 팝업은 콘텐츠 단위로 관리하고,
HomeNoticePopup/HomeRecommendPopup타입에 따라 필요한 정보값이 다르다. HomeRecommendPopup의지금 시작CTA는 별도 버튼이 아니라 이미지 안에 포함된 표현이다. 이미지 영역 탭 시 에피소드의 가장 최근 플레이로 이동한다.HomeNoticePopup은 CTA 탭 시 팝업별로 등록된 딥링크로 이동한다.
⚠️ 추정
- 홈 팝업은 한 번의 앱 init에서 최대 1개만 노출하는 것으로 작성했다. 타입별 동시 노출이 필요하면 별도 정책 결정 필요.
참고 / 연결 문서
- 같은 폴더 산출물:
spec.md,screen-design.html,spec-preview.html,REVIEW.md. - Linear: DEE-297 (PRD writing), DEE-358 (Spec writing), Project
d53d952bc578.