Skip to content

E-02: 어드민 강화

담당: 하록님 (수민님) 상태: 설계 중 우선순위: P0

WHY (왜 필요한가?)

현재 문제

S52에서 쿠폰/추천인/크레딧 시스템이 구축되었지만, 운영 인터페이스가 없음.

[현재 프로모션 운영 플로우]

1. 마케팅팀: "신규 가입자 100원 쿠폰 만들어주세요"
2. 개발팀: DB 직접 INSERT
3. 마케팅팀: "쿠폰 사용 현황 알려주세요"
4. 개발팀: DB 쿼리 후 엑셀로 전달

→ 개발팀 병목, 프로모션 민첩성 저하

운영 자립 필요성

상황현재목표
쿠폰 생성개발팀 요청어드민에서 직접
쿠폰 수정/중지개발팀 요청어드민에서 직접
사용 현황 조회DB 쿼리 요청어드민에서 직접
CS 크레딧 지급개발팀 요청어드민에서 직접
추천 현황 조회DB 쿼리 요청어드민에서 직접

전략적 의미

  1. 개발팀 리소스 확보: 반복 운영 업무에서 해방 → 핵심 개발에 집중
  2. 프로모션 민첩성: 마케팅팀이 즉시 실행 가능
  3. CS 대응 속도: 크레딧 보상 즉시 처리 가능
  4. 데이터 접근성: 운영팀이 직접 현황 파악

WHAT (무엇을 만드는가?)

핵심 요구사항 (우선순위순)

1. 쿠폰 관리 (P0)

기능설명
쿠폰 목록 조회전체 쿠폰 리스트 + 필터/검색
쿠폰 상세 조회개별 쿠폰 정보 + 사용 통계
쿠폰 생성코드, 유형, 할인 정보, 조건 설정
쿠폰 수정기간, 사용 횟수, 활성화 상태 변경
쿠폰 비활성화즉시 사용 중지 (삭제 대신)
사용 이력 조회누가, 언제, 얼마 할인 받았는지

2. 크레딧 관리 (P1)

기능설명
잔액 조회특정 사업장 크레딧 잔액
크레딧 지급CS 보상, 프로모션 크레딧 발급
거래 이력 조회EARN/USE/EXPIRE 등 전체 이력

3. 추천인 관리 (P2)

기능설명
추천 현황 조회추천인별 실적 (가입/연동/결제)
추천 코드 관리코드 비활성화 (부정 사용 대응)
추천 관계 조회추천인-피추천인 관계 확인

적용 범위

  • 어드민 전용: 일반 사용자에게 노출 안 됨
  • 권한 관리: 역할별 접근 제어 (추후 확장)

HOW (어떻게 구현하는가?)

관련 테이블 (S52 E-07에서 구축)

[쿠폰]
Coupon
├── code, type (FIXED/PERCENT/TRIAL_EXT)
├── discountAmount, discountPercent, maxDiscount, trialDays
├── minAmount, startDate, endDate
├── maxUsageTotal, maxUsagePerUser
├── applicablePlans (JSON), firstOnlyYn
├── activeYn, usedCount
└── description

CouponUsage
├── couponId, bizId, paymentId
├── totalAmount, discountAmount, amount
├── status (APPLIED/COMPLETED/CANCELLED)
└── appliedAt, completedAt, canceledAt

[크레딧]
CreditBalance
├── bizId, balance
├── totalEarned, totalUsed, totalExpired
└── timestamps

CreditLedger
├── bizId, type (EARN/USE/EXPIRE/REFUND/HOLD/CANCEL)
├── amount, balanceAfter
├── reason, referralId, paymentId
├── expireAt, usedAmount, expiredAmount, consumedYn
└── timestamps

[추천인]
ReferralCode
├── code (SELLER-XXXXXX)
├── bizId
├── totalReferrals, activeCount, paidReferrals
└── activeYn

Referral
├── referrerId, refereeId, referralCode
├── status (JOINED/LINKED/PAID)
├── signedUpAt, storeLinkedAt, paidAt
└── storeRewardYn, payRewardYn

API 설계 (어드민용)

쿠폰 API

EndpointMethod설명
/admin/couponsGET쿠폰 목록 (페이지네이션 + 필터)
/admin/coupons/:idGET쿠폰 상세 + 사용 통계
/admin/couponsPOST쿠폰 생성
/admin/coupons/:idPATCH쿠폰 수정
/admin/coupons/:id/deactivatePOST쿠폰 비활성화
/admin/coupons/:id/usagesGET쿠폰 사용 이력

크레딧 API

EndpointMethod설명
/admin/credits/balance/:bizIdGET잔액 조회
/admin/credits/grantPOST크레딧 지급
/admin/credits/deductPOST크레딧 차감/취소
/admin/credits/ledger/:bizIdGET거래 이력

추천인 API

EndpointMethod설명
/admin/referralsGET추천 현황 목록
/admin/referrals/codes/:codeGET추천 코드 상세
/admin/referrals/codes/:code/deactivatePOST코드 비활성화
/admin/referrals/codes/:code/activatePOST코드 재활성화
/admin/referrals/:idGET추천 관계 상세

사업장 API

EndpointMethod설명
/admin/biz/searchGET사업장 검색
/admin/biz/:bizIdGET사업장 상세 조회

UI 설계 (어드민)

[어드민 메뉴 구조]
프로모션 관리
├── 쿠폰 관리
│   ├── 쿠폰 목록 (테이블 + 필터)
│   ├── 쿠폰 생성 (폼)
│   └── 쿠폰 상세 (정보 + 사용 이력)
├── 크레딧 관리
│   ├── 잔액 조회 (검색)
│   ├── 크레딧 지급 (폼)
│   └── 거래 이력 (테이블)
└── 추천인 관리
    ├── 추천 현황 (테이블)
    ├── 추천 코드 관리
    └── 추천 관계 조회

EDGE (예외/엣지 케이스)

케이스처리 방안
사용 중인 쿠폰 삭제삭제 대신 비활성화만 허용
중복 쿠폰 코드코드 유니크 검증 (DB UK 활용)
과거 날짜 쿠폰 생성startDate 검증 (현재 이후만)
크레딧 마이너스 지급금액 양수 검증
존재하지 않는 bizId사업장 존재 여부 검증
비활성화된 추천 코드 재활성화허용 (관리자 판단)

검증 계획

항목검증 방법
쿠폰 CRUD생성 → 수정 → 사용 → 비활성화 플로우
크레딧 지급지급 → 잔액 확인 → 이력 확인
추천 현황실제 데이터로 정합성 확인
동시성여러 관리자 동시 수정 시 충돌 처리

성공 기준 (KR2)

지표목표
프로모션 운영 자립도개발팀 의존 0건
쿠폰 생성~사용 리드타임당일 처리 가능
CS 크레딧 지급 리드타임즉시 처리 가능

의존성

의존설명
S52 E-07쿠폰/추천인/크레딧 테이블 구축 완료
어드민 프레임워크기존 어드민 페이지 구조 활용
권한 관리기본 admin 권한 사용 (추후 세분화)

Story 목록

Story ID제목영역규모우선순위상태
E-02-S-01쿠폰 목록/상세/이력 APIBEMP0draft
E-02-S-02쿠폰 생성/수정/비활성화 APIBEMP0draft
E-02-S-03쿠폰 관리 UIFELP0draft
E-02-S-04크레딧 관리 API (지급/차감)BESP1draft
E-02-S-05크레딧 관리 UIFEMP1draft
E-02-S-06추천인 관리 APIBESP2draft
E-02-S-07추천인 관리 UIFEMP2draft
E-02-S-08사업장 검색 APIBESP1draft

의존성 그래프

[공통]
E-02-S-08 (사업장 검색 BE) ──┬──→ E-02-S-03 (쿠폰 FE)
                            ├──→ E-02-S-05 (크레딧 FE)
                            └──→ E-02-S-07 (추천인 FE)

[P0 쿠폰]
E-02-S-01 (BE 조회) ──┬──→ E-02-S-03 (FE)
E-02-S-02 (BE CUD)  ──┘

[P1 크레딧]
E-02-S-04 (BE) ─────────→ E-02-S-05 (FE)

[P2 추천인]
E-02-S-06 (BE) ─────────→ E-02-S-07 (FE)

참고 자료

  • S52 E-07 DDL: ~/Downloads/DDL_E-07_쿠폰추천인시스템_20260122.sql
  • S52 Track 7 컨텍스트: .context/sprints/s52/tracks/track-07/context.md
  • 전략 문서: .context/global/strategy.md

생성일: 2026-01-27최종 수정: 2026-01-27

장사왕 Product Team