Skip to content

프론티아 글로벌 — 운영·어드민 PRD

운영자가 어드민에서 마켓별로 홈 큐레이션·공지·팝업·푸시를 운영하고, 유저를 마켓·국가·언어로 관리하고, 콘텐츠를 모더레이션하는 도구를 다룬다. 유저가 콘텐츠를 보는 소비 쪽은 탐색·플레이 PRD, 콘텐츠 발행·소울·프롬프트 관리는 창작·발행, 결제·정산 어드민은 결제·정산 PRD 소관이다.


Status: draft Created: 2026-07-03 Last updated: 2026-07-03 대상 표면: 어드민 (일부 규칙이 앱/웹 노출·발송에 반영)

이 문서의 표기

  • 마켓 코드: 콘텐츠 마켓 7개(NA·JP·KR·TW·LATAM·BR·ID). 마켓에 매핑되지 않은 나머지 국가(태국·베트남 등)는 NA로 매핑된다(별도 'ROW' 구분 없음). 마켓은 국가에서 매핑되는 콘텐츠 격리 단위이며 언어와 무관. 전체 정의는 가입·온보딩 & 글로벌 토대 PRD.
  • 노출 대상 마켓: 어떤 큐레이션 설정·공지·팝업·푸시가 노출·발송될 마켓의 집합(여러 개 지정 가능).
  • 마켓 대표 타임존: 마켓마다 하나 정한 대표 시간대(정의는 가입·온보딩 & 글로벌 토대 PRD). 팝업·배너·푸시의 "공통 시간"을 각 마켓 로컬 시각으로 바꾸는 데 쓴다.
  • 되돌리기 비용 등급(R): R1=쉬움(노출·화면 조정) · R2=중간(데이터 구조 변경·기존 데이터 채우기) · R3=비쌈(데이터 재이전).
  • 표시 약속: 검토 필요=아직 정해지지 않음(§7) · 후속=출시 후 디테일 패스.

Reversal Risk Summary

레이어R등급점검 초점
정책 / 규칙R1어드민 권한은 1차 단일 유지(마켓별 권한 2차) → 정책 가벼움
데이터 / 백엔드R2큐레이션 설정·공지·팝업·푸시에 노출 대상 마켓 항목 추가 + 기존 데이터 채우기
유저 대면 화면R1노출·발송은 규칙만 바뀜, 신규 유저 화면 없음
문구 / 시각 표현R1공지·차단 안내 문구는 언어별 리소스(UI 현지화)로 조정 쉬움

1. 목표 및 배경

1.1 목표

  • 프론티아 글로벌 확장을 운영이 지탱하도록, 운영자가 각 마켓의 홈·공지·팝업·푸시를 마켓별로 나눠 운영하고, 유저·콘텐츠를 마켓 단위로 관리·모더레이션하게 한다. 각 마켓에 그 마켓에 맞는 콘텐츠·공지가 노출되고, 마켓별 콘텐츠 부족을 운영으로 빠르게 메운다.

1.2 배경 (현황)

  • 프론티아 어드민은 역할 구분 없는 단일 권한이고, 홈 큐레이션·공지·팝업·푸시가 전부 하나의 한국 풀 기준으로 동작한다(마켓 구분 0건).
  • 그대로 글로벌에 열면 마켓이 섞여, 일본 공지가 대만 유저에게 가거나 한국 콘텐츠가 NA 홈에 뜬다.

1.3 접근

  • 데이터는 통합 관리하되 마켓 태깅으로 구분한다 — 마켓별로 페이지를 통째로 나누지 않고, 각 설정·유저에 마켓을 붙여 필터·노출을 가른다.
  • 어드민 권한은 1차 단일 유지(운영진이 전부 내부 한국팀). 도구만 마켓을 구분한다. 마켓별 권한 제한은 지역 운영팀이 생길 때 2차.
  • 팝업·배너·푸시의 시간은 마켓 대표 타임존으로 각 나라 로컬 시각에 맞춘다.

2. 타깃 사용자

2.1 주요 사용자

  • 어드민 운영자(내부 한국팀): 전 마켓의 큐레이션·공지·팝업·푸시·유저 관리·모더레이션을 운영. 도구가 마켓별 필터·노출 대상 마켓 지정을 제공한다.

2.2 핵심 시나리오

  1. 운영자가 JP 마켓을 골라 JP 홈 큐레이션 섹션을 구성하고, JP 전용 공지(일본어)를 예약 발행한다 — 다른 마켓과 섞이지 않는다.
  2. 운영자가 팝업을 "오전 9시" + 타깃 NA·JP로 설정하면 → NA 유저는 NA 오전 9시에, JP 유저는 일본 오전 9시에 각각 뜬다.
  3. 운영자가 어드민에서 댓글을 큐레이션할 때, 연결된 에피소드의 마켓 기준으로 마켓별 댓글만 골라 본다.

3. 핵심 기능 요구사항

3.1 어드민 권한 (1차 단일 유지)

  • 1차는 현행 단일 어드민을 유지한다 — 전 운영자가 전 마켓을 관리한다.
  • 어드민 도구는 마켓을 구분(마켓별 필터·노출 대상 마켓 설정)하지만 권한을 마켓별로 제한하지 않는다(특정 어드민을 특정 마켓에 묶지 않음).
  • 마켓별 권한 제한·세부 역할은 2차.

3.2 화면 관리 — 마켓별 탭

  • 동작: 화면 편집기 최상단에 마켓 선택 탭을 둔다. 운영자가 마켓을 고르면 그 마켓의 화면 구성(홈 탭/섹션/메인 배너/띠 배너/홈 장르칩/큐레이션 섹션/오가닉 셀렉트/댓글카드 큐레이션/세그먼트 큐레이션/로그인 화면)만 보고 편집한다.
  • 적용 화면: 홈 화면 · 로그인 화면 · 큐레이션 라이브러리 · 오가닉 셀렉트.
  • 비즈니스 룰:
    • 화면 설정 단위에 노출 대상 마켓(최소 1개)을 붙인다 — 단, 에피소드에 연결된 단위(댓글카드·오가닉 셀렉트)는 연결 에피소드의 마켓을 물려받아 별도 지정하지 않고, 나머지 독립 단위(배너·섹션·세그먼트·홈 탭 등)는 노출 대상 마켓을 명시한다. 마켓별 데이터 저장 방식은 백엔드 설계 소관.
    • 홈 화면은 기존 추천/랭킹/신작 탭 구조를 그대로 두고, 그 위에 마켓 탭이 얹힌다.
    • 마켓별 빈 노출 영역은 운영으로 채운다.
    • 모든 운영자가 전 마켓 화면을 만들고/보고/고친다(마켓 탭은 노출 스코프 구분이지 권한 제한 아님).

3.3 유저 관리 · 환불 어뷰저 (마켓/국가/언어 조회·수정)

  • 동작: 유저 목록·상세에 각 유저의 마켓·유저 국가·언어를 표시하고 CS/어드민이 수정한다. 환불 어뷰저 목록에도 동일하게 표시한다.
  • 비즈니스 룰:
    • 유저는 단일 풀로 관리하며 마켓별 페이지로 나누지 않는다.
    • 유저 마켓 모델·판정·셀프 변경 불가·변경 이력 로깅은 토대 PRD 소관. 본 PRD는 어드민 도구에 이 정보가 표시·수정 가능해야 한다는 노출 요구만 정의한다.

3.4 공지 · 팝업 (마켓별 + 언어별 + 타임존)

  • 공지: 만들기/고치기/지우기 시 노출 대상 마켓 + 언어를 지정한다. 유저는 자기 마켓·언어 공지만 받는다(소비는 탐색·플레이). 예약 발행·상단 고정·분류는 기존 유지.
  • 팝업: 노출 대상 마켓을 기존 타게팅(플랫폼·성별·나이·가입일·화풍) 위에 필터형으로 더한다. 마켓을 지정하면 그 마켓 유저에게만 노출한다.
  • 팝업·배너 노출/만료 시간 (타임존):
    • 운영자는 공통 시간 하나(예: 오전 9시)와 타깃 마켓을 입력한다.
    • 시스템은 각 타깃 마켓의 마켓 대표 타임존으로 그 시간을 해석해, 마켓마다 그 나라 로컬 시각에 노출·만료되게 한다(내부적으로 각 마켓의 시각을 계산해 저장). 여러 마켓을 타깃하면 마켓마다 각자의 로컬 시각에 뜬다.
  • 권한: 모든 운영자가 전 마켓 공지·팝업을 작성한다(마켓은 노출 대상 지정이지 권한 제한 아님).

3.5 푸시 관리 (마켓 · 언어 타게팅)

  • 전체 푸시: 발송 대상에 마켓 선택 필드를 추가해 특정 마켓 유저에게만 보낸다. 문구는 유저 언어에 맞춰 발송한다(유저 언어 정보를 가져와 언어별 문구로).
  • 전체 푸시 시간: 팝업과 동일 — 공통 시간 + 타깃 마켓 → 마켓 대표 타임존으로 각 나라 로컬 시각에 발송.
  • 대량 푸시: CSV로 유저를 직접 지정하므로 마켓과 무관하다.
  • 자동 푸시(활동 기반): 팔로우 디렉터 신작·댓글·좋아요 등. 디렉터는 본인 마켓에만 발행하고 프로필·콘텐츠가 마켓 하드 게이트라 팔로워도 같은 마켓이므로, 활동 알림은 자동으로 마켓 정합이라 별도 필터가 필요 없다.

3.6 콘텐츠 모더레이션 (에피소드 차단 · 댓글 큐레이션)

  • 에피소드 차단: 에피소드를 마켓별로 차단할 수 있다. 마켓별 페이지를 나누지 않고, 에피소드에 붙은 마켓 정보로 어느 마켓 콘텐츠인지 확인해 차단한다(마켓 정보만 있으면 되고 별도 분리 불필요).
  • 댓글 큐레이션: 댓글을 어드민에서 큐레이션할 때 연결된 에피소드의 마켓을 기준으로 마켓별로 골라낼 수 있어야 한다. 댓글 데이터가 에피소드 마켓을 참조하도록 한다(DB에는 마켓이 섞여 저장되므로, 에피소드 마켓으로 발라내는 조회가 필요).
  • 어드민 전 마켓 접근: 어드민 모더레이션은 소비 경로가 아니므로 마켓 하드 게이트의 예외다 — 운영자는 전 마켓 콘텐츠·댓글을 조회·처분한다.

3.7 Scope

포함 (In scope)

  • 어드민 권한 1차 단일 유지(도구만 마켓 구분).
  • 화면 관리(홈·로그인·큐레이션 라이브러리·오가닉 셀렉트) 마켓별 탭 + 설정 단위 노출 대상 마켓.
  • 유저 관리·환불 어뷰저에 마켓/국가/언어 조회·수정 노출.
  • 공지 마켓별+언어별, 팝업 마켓 필터 + 팝업·배너·푸시 시간 마켓 대표 타임존 처리.
  • 전체 푸시 마켓 선택 + 유저 언어 발송, 자동 푸시 마켓 교차 차단.
  • 에피소드 마켓별 차단, 댓글 큐레이션 에피소드 마켓 기준 필터.

제외 (Out of scope) — 인접 문서 경계

항목소관
마켓 필터·마켓 대표 타임존 정의·유저 마켓 모델·변경 규칙가입·온보딩 & 글로벌 토대
유저가 보는 탐색·노출·알림 수신탐색·플레이
에피소드·소울 발행·프롬프트 관리 어드민창작·발행
결제·환불·정산 어드민결제·정산
공지·팝업·차단 안내 문구 번역UI 현지화
마켓 전체 켜기/끄기·전체 차단 스위치, 마켓별 어드민 권한 제한·세부 역할2차/미도입

4. 에러 처리 및 예외 상황

상황처리 방향
마켓별 화면 빈 노출 영역운영으로 채움(교차 노출 금지)
팝업·푸시 여러 마켓 타깃마켓마다 각자 대표 타임존 로컬 시각에 노출/발송
자동 푸시 대상이 신작 에피소드 마켓과 불일치발송 제외(못 여는 콘텐츠 알림 방지)
댓글에 에피소드 마켓 참조 없음에피소드 마켓으로 조인해 큐레이션 필터 제공(마켓 참조 확보)
어드민이 다른 마켓 콘텐츠 조회허용(모더레이션은 하드 게이트 예외)

5. 데이터 분석

  • 큐레이션·공지·팝업·푸시 이벤트에 노출 대상 마켓/언어 속성을 추가한다. 유저 공통 속성(user_market·user_language)은 토대 PRD 규칙을 따른다.
  • 후속: event-docs.frontia.dev에서 어드민·알림 기존 이벤트명·그룹 확인 후 속성 추가 대상 확정.

6. Ubiquitous Language

마켓·마켓 대표 타임존 등 토대 용어는 토대 PRD 용어표가 기준. 여기선 이 문서 고유 항목만.

TermKoreanDefinitionDo Not Confuse With
노출 대상 마켓노출 대상 마켓큐레이션 설정·공지·팝업·푸시가 노출·발송될 마켓 집합(복수). 설정·공지 쪽 값유저 마켓(유저 쪽 값) / 에피소드 마켓(콘텐츠 귀속, 한 개)

7. 검토 필요 (미결정 항목)

열린 결정 없음. 큐레이션 단위별 마켓 적용은 §3.2에서 확정(에피소드 연결 단위=에피소드 마켓 상속, 독립 단위=노출 대상 마켓 명시). 마켓 대표 타임존(NA 포함) 선택은 가입·온보딩 & 글로벌 토대 PRD 소관.

외부 grounding 필요 (구현 시 코드/데이터에서 확인)

  • 댓글 데이터에 에피소드 마켓 참조가 있는지(없으면 조인 경로 확인).
  • event-docs 어드민·알림 기존 이벤트 목록.

부록: 메타 정보

Required artifacts

  • Spec — N/A. 기존 어드민 위에 마켓 항목·필터를 얹는 것이라 백엔드가 §3 요구사항 보고 직접 구현.
  • Design — 대부분 N/A(어드민 화면은 백엔드 직접 구현). 유저 대면 신규 화면 없음.
  • Migration plan — 본문 §3에 포함(노출 대상 마켓·공지 마켓/언어·팝업 시간 기존 데이터 채우기). 별도 파일 아님.

Size & Risks

  • Size: L / Confidence: medium — 영향 화면 다수(큐레이션·공지·팝업·푸시·유저관리·모더레이션). 화면당 난도는 낮으나 빠짐없이 마켓 항목·필터를 적용하는 범위가 관리 포인트.
  • 위험: ①마켓 필터 누락 → 잘못된 노출/발송(대응: 화면 체크리스트) ②팝업·푸시 타임존 계산 오류로 엉뚱한 시각 발송(대응: 마켓 대표 타임존 단일 로직).
  • 의존: 가입·온보딩 & 글로벌 토대(마켓 모델·대표 타임존·마켓 필터, 선행). 창작·발행(에피소드 마켓). UI 현지화(공지·안내 문구).

References

  • 위키 근거(As-is): 어드민이 역할 구분 없는 단일 권한, 탐색·발견·알림이 하나의 풀(마켓 구분 0) — frontia-wiki admin-ops/discovery/notification capabilities.
  • 결정 로그 원문: CLAUDE.md §8.