4.3 KiB
4.3 KiB
관리자 정산 크리에이터 번호 적용 PRD
문서 정보
| 항목 | 내용 |
|---|---|
| 문서 상태 | 구현 완료 |
| 작성일 | 2026-08-04 |
| 최종 수정일 | 2026-08-04 |
| 대상 제품 | 관리자 크리에이터별 정산 조회 및 엑셀 |
| 작성자·결정권자 | 사용자 |
| 관련 구현 계획 | docs/20260804_관리자정산크리에이터번호적용/plan-task.md |
1. Overview
관리자 크리에이터별 정산에서 nullable인 Member.email을 필수 QueryDSL projection 값으로 사용해 발생하는 조회 오류를 제거한다. 정산 대상 식별값은 이메일 대신 non-null PK인 creatorId를 사용한다.
2. Problem Statement
Member.email은 nullable이지만GetCalculateByCreatorQueryData.email은 non-nullString이다.- 이메일이 없는 크리에이터가 정산 결과에 포함되면 QueryDSL이 DTO 생성 중
ExpressionException을 발생시킨다. - 이메일은 정산 계산식에 사용되지 않으므로 필수 projection 값으로 유지할 이유가 없다.
문제 해결 여부는 이메일이 null인 크리에이터의 정산 조회가 성공하고 creatorId를 반환하는지로 판단한다.
3. Goals
- 라이브·콘텐츠·커뮤니티 크리에이터별 정산 projection에서
email을 제거한다. - 정산 응답에
creatorId를 추가한다. - 크리에이터별 정산 엑셀에서 이메일을 제거하고 크리에이터 번호를 제공한다.
- 기존 정산 금액 계산, 집계, 필터, 정렬과 페이지네이션을 유지한다.
4. Non-Goals
Member.email의 nullable 정책을 변경하지 않는다.- 이메일이 없는 회원의 다른 기능을 수정하지 않는다.
- 에이전트 정산과 채널후원 정산 API를 변경하지 않는다.
- 정산 공식 또는 정산 비율을 변경하지 않는다.
5. 기능 요구사항
| ID | 상태 | 요구사항 | 수용 기준 | Goal 연결 |
|---|---|---|---|---|
CALC-001 |
확정 | 크리에이터별 정산 조회는 이메일 대신 크리에이터 번호를 반환한다. | 응답 item에 creatorId: Long이 있고 email이 없다. |
P1-T1 |
CALC-002 |
확정 | 이메일이 없는 크리에이터도 정산 조회 대상에 포함된다. | null 이메일 크리에이터의 라이브·콘텐츠·커뮤니티 정산 QueryDSL 조회가 예외 없이 성공한다. | P1-T1 |
CALC-003 |
확정 | 크리에이터별 정산 엑셀은 이메일 대신 크리에이터 번호를 제공한다. | 첫 헤더가 크리에이터 번호이고 데이터 셀에 creatorId가 기록된다. |
P1-T2 |
CALC-004 |
확정 | 기존 정산 계산 결과를 유지한다. | totalCan, 원화, 결제수수료, 정산금액, 원천세와 입금액 계산 회귀 테스트가 통과한다. |
P1-T1, P1-GATE |
6. API 계약
대상 endpoint는 다음과 같다.
GET /admin/calculate/live-by-creatorGET /admin/calculate/content-by-creatorGET /admin/calculate/community-by-creator- 위 세 endpoint의
/excel다운로드
조회 응답 item의 email: String을 제거하고 creatorId: Long을 추가한다. 요청 파라미터와 응답의 나머지 필드는 변경하지 않는다.
7. 성공 기준
- null 이메일 크리에이터에 대한 세 종류의 크리에이터별 정산 조회가 성공한다.
- 조회 응답은
creatorId를 포함하고email을 포함하지 않는다. - 엑셀은
크리에이터 번호컬럼을 포함하고 이메일 컬럼을 포함하지 않는다. - 기존 정산 계산 및 관련 회귀 테스트가 통과한다.
8. Decision Log
| 날짜 | ID | 상태 | 결정 | 근거 | 영향 요구사항·Goal |
|---|---|---|---|---|---|
| 2026-08-04 | DEC-001 |
확정 | 정산에서 email을 제거하고 creatorId를 사용한다. | email은 계산에 사용되지 않고 nullable이라 projection 오류를 발생시킨다. | CALC-001, CALC-002, P1-T1 |
| 2026-08-04 | DEC-002 |
확정 | 엑셀의 이메일 컬럼을 크리에이터 번호 컬럼으로 교체한다. | 사용자가 이메일 제거와 creatorId 기반 구분을 확정했다. | CALC-003, P1-T2 |
| 2026-08-04 | DEC-003 |
확정 | 이메일 제거에 따른 추가 식별력 보완은 하지 않는다. | 사용자가 식별력 저하는 문제가 되지 않는다고 확정했다. | Non-Goals |