Appearance
플레이 프로필 & 유저노트 PRD
Start date: 03/17/2026 Release date: 03/31/2026 Status: Released created: March 16, 2026 8:32 PM 앱/웹/스튜디오: 앱, 웹
1. 목표 및 배경
- 문제: 현재 프론티아는 기존의 캐릭터챗 유저들이 캐챗을 재밌게 플레이하고 몰입하게 만드는 기능들을 제공하지 않고 있음. 이에 따라, AI챗에서만 느낄 수 있는 재미가 제한되고 있음
- 해결 방향: 캐챗 유저들에게 익숙한 피쳐(페르소나, 유저노트)를 제공해서 AI 챗에서만 느낄 수 있는 재미를 프론티아에서도 느낄 수 있게 하여 프론티아로 데려오고자 함
- 유저 플레이 프로필 확장: 기존 이름만 있던 플레이 프로필에 설명 필드를 추가하고, 계정당 최대 100개의 프로필 슬롯을 제공하여 다양한 페르소나를 미리 만들어두고 에피소드마다 골라 쓸 수 있게 함
- 유저 노트: 플레이 단위로 자유롭게 작성할 수 있는 메모/지시사항 공간을 제공하여, 유저가 원하는 설정을 씬 생성에 반영할 수 있게 함
- 가설:
- 유저 플레이 프로필을 작성한 유저는 주인공의 페르소나가 일관되게 반영되어 몰입감이 향상되고, 씬 생성을 더 많이 할 것이다.
- 유저 노트를 활용하는 유저는 자신만의 설정을 반영한 플레이 경험을 통해 더 깊은 참여를 보일 것이다.
2. 타깃 사용자
- 앱에서 에피소드를 플레이하는 사용자 전체
- 특히 에피소드에 깊이 몰입하여 씬을 많이 생성하는 헤비 유저
3. 핵심 기능 요구사항
- 메뉴 모드에서 플레이 프로필과 유저 노트는 각각 수정/저장 가능
3-1. 유저 플레이 프로필
개요
기존 플레이 프로필(이름 1개)을 계정당 최대 100개 슬롯으로 확장하고, 각 슬롯에 설명 필드를 추가한다. 유저는 다양한 페르소나를 미리 만들어두고, 에피소드 플레이마다 원하는 프로필을 적용할 수 있다.
용어 정의
| 용어 | 설명 |
|---|---|
| 유저 플레이 프로필 | 계정에 속하는 프로필. 최대 100개 생성 가능. 계정 설정에서 관리. |
| 디폴트 프로필 | 유저 플레이 프로필 중 유저가 기본으로 지정한 1개. 플레이 시작 시 자동 적용. |
| 플레이 프로필 | 플레이 시작 시 디폴트 프로필이 복사되어 생성된 플레이 귀속 프로필. 해당 플레이 내에서 독립적으로 수정/교체 가능. |
데이터 구조
| 구분 | 유저 플레이 프로필 (계정 레벨) | 플레이 프로필 (localPlayProfile) |
|---|---|---|
| 소속 | 계정(Account) | 개별 플레이(Play) |
| 최대 개수 | 100개 / 계정 | 1개 / 플레이 |
| 필드 | 이름, 설명(100자) | 이름, 설명(100자) |
| 디폴트 지정 | 유저가 직접 지정/변경 가능 | - |
| 생성 시점 | 유저가 계정 설정에서 직접 생성 | 플레이 시작 시 디폴트 프로필에서 복사 |
| 수정 영향 범위ㅅ | 이후 새로 시작하는 플레이에만 반영 | 해당 플레이 내에서만 유효 |
핵심 동작
계정 레벨 (유저 플레이 프로필)
- 생성: 유저는 계정 설정에서 프로필을 최대 100개까지 생성할 수 있다.
- 수정/삭제: 기존 프로필을 자유롭게 수정하거나 삭제할 수 있다.
- 디폴트 지정: 유저가 프로필 중 하나를 디폴트로 지정할 수 있고, 언제든 변경할 수 있다.
플레이 레벨 (플레이 프로필)
- 디폴트 복사: 유저가 에피소드 플레이를 시작하면, 디폴트 프로필의 내용(이름 + 설명)이 플레이 프로필로 복사된다.
- 독립 수정: 플레이 내에서 프로필을 수정해도 계정의 유저 플레이 프로필이나 다른 플레이에 영향을 미치지 않는다.
- 프로필 교체: 플레이 중간에 계정의 다른 유저 플레이 프로필로 교체할 수 있다. 교체 시 해당 프로필의 내용이 플레이 프로필을 덮어쓴다.
- 변경 적용 시점: 플레이 내에서 프로필을 수정하거나 교체하면 다음 씬 생성부터 적용된다.
기존 유저 마이그레이션
- 기존 유저의 이름만 있던 플레이 프로필 → 슬롯 1번(디폴트)으로 자동 전환
- 설명 필드는 빈 값으로 초기화
UI 요소
- 설명 입력: 단일 textarea, 100자 제한
- Placeholder: 예시 안내 (예: "예) 20대 여성, 긴 흑발, 차분한 성격") — 구체적 문구 추후 확정
- 콘텐츠 필터링: 별도 필터링 없이 그대로 씬 생성에 전달
- 접근 경로:
- 계정 설정: 유저 플레이 프로필 생성/수정/삭제/디폴트 지정
- 플레이 메뉴 내: 플레이 프로필 수정 및 프로필 교체 (유저 노트와 같은 화면)
3-2. 유저 노트
개요
유저가 플레이 중에 자유롭게 작성하는 메모/지시사항 공간. AI에게 주는 지시사항(예: "주인공은 쿨한 성격으로 대화해줘"), 기억해둘 설정(예: "2화에서 만난 NPC 이름은 세라"), 또는 원하는 스타일 등을 자유롭게 작성할 수 있다.
데이터 구조
| 항목 | 내용 |
|---|---|
| 소속 | 개별 플레이(Play) |
| 기본값 | 비어있음 (빈 문자열) |
| 글자 수 제한 | 500자 |
| 영향 범위 | 해당 플레이 내에서만 유효. 다른 플레이에 영향 없음 |
| 변경 적용 시점 | 다음 씬 생성부터 적용 |
UI 요소
- 입력 형태: textarea
- 글자 수 제한: 500자
- Placeholder: (TBD — 용도를 안내하는 예시 문구)
- 콘텐츠 필터링: 별도 필터링 없이 그대로 씬 생성에 전달
- 접근 경로: 플레이 메뉴 내 (플레이 프로필과 같은 화면)
3-3. 유저 사칭 방지 토글
개요
유저 노트 화면 내에 유저 사칭 방지 On/Off 토글을 제공한다. 이 기능은 AI가 씬을 생성할 때 유저(주인공)를 사칭하는 행동을 방지하는 옵션이다.
동작
| 항목 | 내용 |
|---|---|
| 소속 | 개별 플레이(Play) |
| 기본값 (디폴트) | 디렉터가 에피소드 발행 시 설정한 값 |
| 유저 제어 | 유저가 플레이 내에서 자유롭게 On/Off 가능 |
| 변경 적용 시점 | 다음 씬 생성부터 적용 |
| 영향 범위 | 해당 플레이 내에서만 유효. 다른 플레이에 영향 없음 |
- 디렉터가 에피소드 발행 시 저장한 유저 사칭 방지 설정값이 플레이 시작 시 디폴트로 적용됨
- 유저는 플레이 중 언제든 이 토글을 끄거나 켤 수 있음
- 변경 시 다음 씬 생성부터 반영
3-4. 씬 생성 연동
두 데이터 모두 씬 생성 시 유저 인풋 영역에 포함되어 AI에 전달된다.
- 플레이 프로필 (이름 + 설명): 주인공 페르소나 정보로 전달
- 유저 노트: 유저의 추가 지시사항/메모로 전달
- 유저 사칭 방지 토글: On/Off 상태에 따라 씬 생성 프롬프트에 반영
- 전달 포맷: 추후 확정 (예:
### {user} info,### 참고등 — 명칭 및 구조는 변경 가능) - 빈 값 처리: 값이 비어있는 경우 해당 정보를 전달하지 않거나 빈 값으로 전달 (백엔드 협의 필요)
4. 사용자 플로우
4-1. 유저 플레이 프로필 관리 (계정 설정)
- 유저가 계정 설정 > 유저 플레이 프로필에 진입
- 기존 프로필 목록 확인 (기존 유저의 경우 이름만 있는 슬롯 1개가 디폴트로 존재)
- 새 프로필 생성: 이름 + 설명(100자) 입력 → 저장
- 프로필 수정/삭제 자유롭게 가능
- 대표 프로필은 삭제 불가
- 프로필이 1개만 남았을 때 삭제 불가
- 원하는 프로필을 디폴트로 지정
4-2. 플레이 프로필 수정/교체
- 새로운 플레이를 시작하는 시점에 유저 플레이 프로필이 2개 이상인 유저는 어떤 프로필로 에피소드를 시작할 것인지 고를 수 있음
- 에피소드 플레이 시작 → 유저가 선택한 프로필(1개면 디폴트 프로필)이 자동으로 플레이 프로필로 복사
- 플레이 중 플레이 메뉴 진입 → 프로필 & 유저 노트 화면
- 플레이 프로필 직접 수정 (이름/설명 변경) → 저장 → 다음 씬 생성부터 적용
- 또는 계정의 다른 유저 플레이 프로필로 교체 → 플레이 프로필이 선택한 프로필로 덮어써짐 → 다음 씬 생성부터 적용
4-3. 유저 노트 & 유저 사칭 방지 토글
- 플레이 중 플레이 메뉴 진입 → 프로필 & 유저 노트 화면
- 유저 노트 영역에 원하는 내용 작성 (500자 이내)
- 유저 사칭 방지 토글 On/Off 설정
- 저장 → 다음 씬 생성부터 적용
- 이후 언제든 재진입하여 수정 가능
4-4. 디스커버리
- 새로운 플레이를 시작할 때, 유저 플레이 프로필이 2개 이상인 유저에게는 현재 디폴트 프로필을 보여주면서, 이 프로필로 에피소드를 시작할지 물어보기
- 유저는 디폴트 프로필 외에 다른 프로필을 선택하여 에피소드 시작 가능
5. 에러 처리 및 예외 상황
유저 플레이 프로필 (계정 레벨)
- 슬롯 초과: 100개 초과 시 새 프로필 생성 불가, 안내 메시지 표시
- 디폴트 삭제 시: 디폴트 프로필은 삭제 불가능
- 전체 삭제 시: 모든 프로필을 삭제한 경우, 최소 1개 유지 강제. 마지막 1개가 남았을 때는 삭제 불가능
- 글자 수 초과: 설명 100자 초과 시 입력 불가 (실시간 카운터 표시)
플레이 프로필
- 교체 시 덮어쓰기 안내: 프로필 교체 시 기존 플레이 내 수정 내용이 사라진다는 점 안내 필요 여부
- 교체 원본 삭제 시: 플레이 내에서 교체하려는 계정 프로필이 이미 삭제된 경우 → 목록에서 제외
유저 노트
- 글자 수 초과: 500자 초과 시 입력 불가 (실시간 카운터 표시)
공통
- 저장 실패: 네트워크 오류 등으로 저장 실패 시 에러 토스트 표시 및 재시도 유도
- 콘텐츠 필터링: 별도 필터링 없음. 부적절한 내용이 입력되더라도 클라이언트/서버에서 차단하지 않으며, AI 씬 생성 레벨에서 자체적으로 처리
- 빈 값: 프로필 설명이나 유저 노트가 비어있어도 플레이/씬 생성에 지장 없음
6. 데이터 분석
핵심 지표
- 사용 유저 씬 생성량 비교: 기능 사용 유저 vs 미사용 유저의 씬 생성 수
- 사용 유저 리텐션 비교: 기능 사용 유저 vs 미사용 유저의 리텐션
로깅 이벤트
| 타입 | 이름 | 용도 | 파라미터 | 비고 |
|---|---|---|---|---|
| Event | view_account_play_profile | 계정 설정 유저 플레이 프로필 화면 진입 | ||
| Event | click_account_play_profile_edit | 계정 설정 유저 플레이 프로필 화면에서 수정 완료 | content: string(가장 최신 내용 덮어쓰기) | • 수정 완료 확인 모달에서 클릭 시 |
| Event | click_account_play_profile_gen | 계정 설정 유저 플레이 프로필 추가 생성 시 | → 따로 필요 없으면 edit으로 갈음 | |
| User Property | user_play_profile_count | 유저 플레이 프로필 몇개인지 | number | 프로필 생성/삭제 시 갱신 |
| → 이거 user property에 넣어야하나? |
→ 플레이 내에서 유저노트, 플레이 프로필 세팅은 메뉴모드 PRD에 모아놨음!