mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 20:06:23 +00:00
- 전체 유저스토리 요약 테이블 (20개) - 우선순위별/서비스별/복잡도별 통계 - 주요 기능별 상세 목록 - 기술 스택 및 아키텍처 정보 - 개발 로드맵 및 리스크 관리 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
16 KiB
16 KiB
KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 목록
전체 유저스토리 요약
| 서비스 | ID | 유저스토리 | 우선순위 | 복잡도 |
|---|---|---|---|---|
| User | UFR-USER-010 | [회원가입] 소상공인으로서 간편하게 회원가입하고 싶다 | M | 21 |
| UFR-USER-020 | [로그인] 소상공인으로서 간편하게 로그인하고 싶다 | M | 8 | |
| UFR-USER-030 | [프로필관리] 소상공인으로서 프로필 정보를 편집하고 싶다 | C | 8 | |
| UFR-USER-040 | [로그아웃] 소상공인으로서 안전하게 로그아웃하고 싶다 | S | 3 | |
| Event | UFR-EVENT-010 | [대시보드] 소상공인으로서 대시보드에서 이벤트를 한눈에 확인하고 싶다 | S | 13 |
| UFR-EVENT-020 | [이벤트목적선택] 소상공인으로서 이벤트 목적을 먼저 선택하고 싶다 | M | 5 | |
| UFR-EVENT-030 | [AI이벤트추천] 소상공인으로서 AI 트렌드 분석 결과와 함께 3가지 이벤트 추천을 확인하고 싶다 | M | 34 | |
| UFR-EVENT-040 | [배포채널선택] 소상공인으로서 다중 배포 채널을 선택하고 싶다 | M | 13 | |
| UFR-EVENT-050 | [최종승인] 소상공인으로서 모든 설정을 최종 확인하고 승인하고 싶다 | M | 13 | |
| UFR-EVENT-060 | [이벤트상세조회] 소상공인으로서 이벤트 상세 정보를 조회하고 싶다 | S | 13 | |
| UFR-EVENT-070 | [이벤트목록관리] 소상공인으로서 전체 이벤트 목록을 조회하고 필터링/검색하고 싶다 | S | 13 | |
| AI | UFR-AI-010 | [AI트렌드분석및이벤트추천] AI 시스템으로서 업종/지역/시즌 트렌드를 분석하고 3가지 최적화된 이벤트 기획안을 생성하고 싶다 | M | 34 |
| Content | UFR-CONT-010 | [SNS이미지생성] 소상공인으로서 AI가 자동으로 3가지 스타일의 이미지를 생성하기를 원한다 | M | 21 |
| UFR-CONT-020 | [콘텐츠편집] 소상공인으로서 생성된 이미지를 간단한 편집 기능으로 조정하고 싶다 | S | 13 | |
| Distribution | UFR-DIST-010 | [다중채널배포] 소상공인으로서 원클릭으로 다중 채널 배포를 실행하고 싶다 | M | 21 |
| UFR-DIST-020 | [배포상태모니터링] 소상공인으로서 배포 상태를 실시간으로 모니터링하고 싶다 | S | 13 | |
| Participation | UFR-PART-010 | [이벤트참여] 고객으로서 최소한의 정보만 입력하고 이벤트에 참여하고 싶다 | M | 13 |
| UFR-PART-020 | [참여자목록조회] 소상공인으로서 참여자 목록을 조회하고 싶다 | S | 8 | |
| UFR-PART-030 | [당첨자추첨] 소상공인으로서 자동 추첨 기능을 사용하고 싶다 | M | 13 | |
| Analytics | UFR-ANAL-010 | [실시간통합대시보드] 소상공인으로서 모든 지표가 통합된 실시간 대시보드를 보고 싶다 | M | 34 |
우선순위별 통계
| 우선순위 | 개수 | 비율 |
|---|---|---|
| M (필수) | 13 | 65.0% |
| S (선택) | 6 | 30.0% |
| C (조건부) | 1 | 5.0% |
| 총계 | 20 | 100% |
서비스별 통계
| 서비스 | 유저스토리 수 | 평균 복잡도 | 필수(M) | 선택(S) | 조건부(C) |
|---|---|---|---|---|---|
| User | 4 | 10.0 | 2 | 1 | 1 |
| Event | 7 | 14.9 | 4 | 3 | 0 |
| AI | 1 | 34.0 | 1 | 0 | 0 |
| Content | 2 | 17.0 | 1 | 1 | 0 |
| Distribution | 2 | 17.0 | 1 | 1 | 0 |
| Participation | 3 | 11.3 | 2 | 1 | 0 |
| Analytics | 1 | 34.0 | 1 | 0 | 0 |
| 총계 | 20 | 16.9 | 12 | 7 | 1 |
복잡도별 통계
| 복잡도 범위 | 개수 | 유저스토리 |
|---|---|---|
| 1-5 (낮음) | 2 | UFR-USER-040, UFR-EVENT-020 |
| 6-13 (중간) | 11 | UFR-USER-020, UFR-USER-030, UFR-EVENT-010, UFR-EVENT-040, UFR-EVENT-050, UFR-EVENT-060, UFR-EVENT-070, UFR-CONT-020, UFR-DIST-020, UFR-PART-010, UFR-PART-020, UFR-PART-030 |
| 14-21 (높음) | 4 | UFR-USER-010, UFR-CONT-010, UFR-DIST-010 |
| 22+ (매우 높음) | 3 | UFR-EVENT-030, UFR-AI-010, UFR-ANAL-010 |
주요 기능별 상세 목록
1. User 서비스 (회원 인증 및 매장 정보 관리)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 |
|---|---|---|---|---|
| UFR-USER-010 | 회원가입 | M | 21 | 이름, 전화번호, 이메일, 비밀번호, 매장명, 업종, 주소, 사업자번호 검증 |
| UFR-USER-020 | 로그인 | M | 8 | 전화번호/비밀번호 입력, 로그인 유지 옵션, 대시보드 이동 |
| UFR-USER-030 | 프로필관리 | C | 8 | 기본 정보, 매장 정보, 비밀번호 변경 |
| UFR-USER-040 | 로그아웃 | S | 3 | 안전한 세션 종료, 확인 다이얼로그 |
검증 로직:
- 사업자번호 형식 검증 (XXX-XX-XXXXX)
- 사업자번호 유효성 확인 및 휴폐업 여부 확인 (국세청 API)
- 매장명과 사업자 정보 일치 확인
주요 흐름:
- UFR-USER-020 (로그인) → UFR-EVENT-010 (대시보드)
- 신규 사용자: 회원가입(UFR-USER-010) → 대시보드(UFR-EVENT-010)
- 대시보드에서 "새 이벤트 만들기" → UFR-EVENT-020
2. Event 서비스 (이벤트 관리)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 |
|---|---|---|---|---|
| UFR-EVENT-010 | 대시보드 | S | 13 | 진행중/예정/종료 이벤트 목록, 통계, 새 이벤트 만들기 버튼 |
| UFR-EVENT-020 | 이벤트목적선택 | M | 5 | 신규고객 유치/재방문 유도/매출 증대/인지도 향상 선택 |
| UFR-EVENT-030 | AI이벤트추천 | M | 34 | 트렌드 분석 결과, 3가지 이벤트 추천, 제목/경품 간단 수정 |
| UFR-EVENT-040 | 배포채널선택 | M | 13 | 우리동네TV, 링고비즈, 지니TV, SNS 선택, 예상 노출 수 |
| UFR-EVENT-050 | 최종승인 | M | 13 | 이벤트 정보 확인, 승인 처리, 배포 시작 |
| UFR-EVENT-060 | 이벤트상세조회 | S | 13 | 기본 정보, 실시간 통계, 배포 현황, 참여자 목록 |
| UFR-EVENT-070 | 이벤트목록관리 | S | 13 | 전체 이벤트 목록, 필터링, 검색, 정렬 |
이벤트 생성 플로우:
- 이벤트 목적 선택 (UFR-EVENT-020)
- AI 트렌드 분석 및 이벤트 추천 (UFR-EVENT-030)
- 콘텐츠 생성 (UFR-CONT-010)
- 배포채널 선택 (UFR-EVENT-040)
- 최종승인 (UFR-EVENT-050)
3. AI 서비스 (AI 분석 및 추천)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 | AI 모델 |
|---|---|---|---|---|---|
| UFR-AI-010 | AI트렌드분석및이벤트추천 | M | 34 | 업종/지역/시즌 트렌드 분석, 3가지 이벤트 기획안 생성, 10초 이내 완료 | Claude API / GPT-4 API |
분석 항목:
- 업종 트렌드: 최근 성공 이벤트, 고객 선호 경품, 효과적인 참여 방법
- 지역 특성: 지역별 이벤트 성공률, 고객 특성
- 시즌 특성: 계절/시기별 추천 이벤트
추천 기준:
- 옵션 1: 저비용, 높은 참여율 중심
- 옵션 2: 중비용, 균형잡힌 투자 대비 수익률
- 옵션 3: 고비용, 높은 매출 증대 효과
성능 목표: 전체 기획 과정 10초 이내 완료 (병렬 처리)
4. Content 서비스 (콘텐츠 생성)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 | AI 모델 |
|---|---|---|---|---|---|
| UFR-CONT-010 | SNS이미지생성 | M | 21 | 3가지 스타일 (심플/화려/트렌디), 플랫폼별 최적화 | Stable Diffusion / DALL-E |
| UFR-CONT-020 | 콘텐츠편집 | S | 13 | 텍스트 수정, 색상 조정, 로고 위치 변경 | - |
플랫폼별 최적화:
- Instagram: 1080x1080
- Naver Blog: 800x600
- Kakao Channel: 800x800
성능 목표:
- 이미지 생성: 30초 이내
- 실시간 미리보기 제공
5. Distribution 서비스 (다중 채널 배포)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 | 연동 API |
|---|---|---|---|---|---|
| UFR-DIST-010 | 다중채널배포 | M | 21 | 우리동네TV, 링고비즈, 지니TV, SNS 동시 배포, 1분 이내 완료 | 우리동네TV, 링고비즈, 지니TV, SNS APIs |
| UFR-DIST-020 | 배포상태모니터링 | S | 13 | 채널별 배포 상태, 진행률, 오류 메시지, 재시도 기능 | - |
배포 채널:
- 우리동네TV (반경 500m/1km, 송출 시간대)
- 링고비즈 (매장 전화 연결음 업데이트)
- 지니TV (타겟 지역, 노출 시간대, 예산)
- SNS (Instagram, Naver Blog, Kakao Channel)
성능 목표: 전체 배포 과정 1분 이내 완료
6. Participation 서비스 (이벤트 참여 및 접수 관리)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 |
|---|---|---|---|---|
| UFR-PART-010 | 이벤트참여 | M | 13 | 이름, 전화번호 입력, 참여 경로 추적, 응모번호 발급, 중복 방지 |
| UFR-PART-020 | 참여자목록조회 | S | 8 | 참여자 테이블, 필터링, 검색, 개인정보 마스킹 |
| UFR-PART-030 | 당첨자추첨 | M | 13 | 자동 추첨, 매장 방문 고객 가산점, 재추첨 기능 |
정책:
- 1인 1회 참여 제한 (전화번호 기반)
- 개인정보 보호 규정 준수
- 매장 방문 고객 가산점 부여 (선택 가능)
7. Analytics 서비스 (실시간 효과 측정 및 분석)
| ID | 기능 | 우선순위 | 복잡도 | 핵심 요구사항 | 데이터 소스 |
|---|---|---|---|---|---|
| UFR-ANAL-010 | 실시간통합대시보드 | M | 34 | 참여자 수, 노출 수, 투자 대비 수익률, 매출 증가율, 채널별 성과, 5분 간격 업데이트 | KT 채널 API, POS, SNS API |
대시보드 구성:
- 상단 요약 카드: 총 참여자 수, 총 노출 수, 예상 투자 대비 수익률, 매출 증가율
- 채널별 성과 분석: 막대 그래프, 원 그래프
- 시간대별 참여 추이: 라인 차트
- 투자 대비 수익률 상세 분석: 총 비용, 예상 수익, 손익분기점
- 참여자 프로필 분석: 연령대별, 성별, 지역별 분포
- 비교 분석: 업종 평균, 이전 이벤트 대비
데이터 수집:
- 실시간 데이터 수집 (5분 간격)
- WebSocket 또는 SSE를 통한 실시간 업데이트
- 데이터 캐싱 (Redis)
기술 스택 요약
AI/ML 모델
| 모델 | 용도 | 관련 유저스토리 |
|---|---|---|
| Claude API / GPT-4 API | 트렌드 분석, 이벤트 추천, 홍보 문구 생성 | UFR-AI-010 |
| Stable Diffusion / DALL-E | 이미지 생성 | UFR-CONT-010 |
외부 API 연동
| API | 용도 | 관련 유저스토리 |
|---|---|---|
| 국세청 API | 사업자번호 검증 | UFR-USER-010 |
| 우리동네TV API | 지역 타겟팅 영상 송출 | UFR-DIST-010 |
| 링고비즈 API | 연결음 업데이트 | UFR-DIST-010 |
| 지니TV API | TV 광고 배포 | UFR-DIST-010 |
| Instagram API | SNS 자동 포스팅, 성과 데이터 수집 | UFR-DIST-010, UFR-ANAL-010 |
| Naver API | 블로그 자동 포스팅 | UFR-DIST-010 |
| Kakao API | 카카오 채널 자동 포스팅, 성과 데이터 수집 | UFR-DIST-010, UFR-ANAL-010 |
마이크로서비스 아키텍처
┌─────────────────────────────────────────────────────────────┐
│ API Gateway │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌───────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ User Service │ │ Event Service │ │ AI Service │
│ (UFR-USER) │ │ (UFR-EVENT) │ │ (UFR-AI) │
└────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ │ │
┌───────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ Content │ │ Distribution │ │ Participation │
│ (UFR-CONT) │ │ (UFR-DIST) │ │ (UFR-PART) │
└────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└─────────────────────┼─────────────────────┘
│
┌─────────▼─────────┐
│ Analytics │
│ (UFR-ANAL) │
└───────────────────┘
서비스 간 의존성
- User → Event: 사용자 인증 정보 제공
- Event → AI: 트렌드 분석 및 이벤트 추천 요청
- Event → Content: 콘텐츠 생성 요청
- Event → Distribution: 배포 요청
- Distribution → Content: 생성된 콘텐츠 사용
- Participation → Analytics: 참여자 데이터 제공
- Distribution → Analytics: 노출 데이터 제공
개발 우선순위 로드맵
Phase 1: MVP (8주)
목표: 기본 이벤트 기획 및 배포 기능
| 순서 | 서비스 | 유저스토리 | 비고 |
|---|---|---|---|
| 1 | User | UFR-USER-010, UFR-USER-020 | 회원가입, 로그인 |
| 2 | Event | UFR-EVENT-020, UFR-EVENT-030, UFR-EVENT-050 | 목적 선택, AI 추천, 승인 |
| 3 | AI | UFR-AI-010 | 트렌드 분석 및 이벤트 추천 |
| 4 | Content | UFR-CONT-010 | 이미지 생성 |
| 5 | Distribution | UFR-DIST-010 | 다중 채널 배포 |
| 6 | Participation | UFR-PART-010, UFR-PART-030 | 참여 신청, 자동 추첨 |
Phase 2: 고도화 (6주)
목표: 관리 및 분석 기능 추가
| 순서 | 서비스 | 유저스토리 | 비고 |
|---|---|---|---|
| 7 | Event | UFR-EVENT-010, UFR-EVENT-040, UFR-EVENT-060, UFR-EVENT-070 | 대시보드, 채널 선택, 상세 조회, 목록 관리 |
| 8 | Analytics | UFR-ANAL-010 | 실시간 통합 대시보드 |
| 9 | Distribution | UFR-DIST-020 | 배포 상태 모니터링 |
| 10 | Participation | UFR-PART-020 | 참여자 목록 조회 |
Phase 3: 완성 (2주)
목표: 선택 기능 추가
| 순서 | 서비스 | 유저스토리 | 비고 |
|---|---|---|---|
| 11 | User | UFR-USER-030, UFR-USER-040 | 프로필 관리, 로그아웃 |
| 12 | Content | UFR-CONT-020 | 콘텐츠 편집 |
주요 기술적 리스크 및 해결방안
1. AI 응답 시간 (10초 목표)
- 리스크: AI API 응답이 목표 시간을 초과할 수 있음
- 해결방안:
- 프롬프트 최적화로 응답 시간 단축
- 트렌드 분석과 이벤트 추천 병렬 처리
- 비동기 처리 + 폴링 방식
- 부분 응답 스트리밍
2. 다중 외부 API 의존성
- 리스크: API 장애 시 서비스 중단
- 해결방안:
- 각 API별 폴백 전략 수립
- 캐싱 적극 활용
- 써킷 브레이커 패턴 적용
- 채널별 독립 처리
3. 실시간 대시보드 성능
- 리스크: 다중 데이터 소스 통합으로 인한 성능 저하
- 해결방안:
- Redis 캐싱
- 5분 간격 데이터 폴링
- WebSocket/SSE를 통한 효율적인 업데이트
- 차트 데이터 메모이제이션
4. 이미지 생성 비용 및 시간
- 리스크: 이미지 생성 API 비용 및 생성 시간
- 해결방안:
- 생성된 이미지 캐싱
- CDN 활용
- 비동기 생성 + 진행 상황 표시
예상 개발 기간
- User 서비스: 2주
- Event 서비스: 3주
- AI 서비스: 4주 (프롬프트 엔지니어링 포함)
- Content 서비스: 3주
- Distribution 서비스: 4주 (다중 API 연동)
- Participation 서비스: 2주
- Analytics 서비스: 4주 (통합 대시보드)
총 예상 기간: 12-16주 (병렬 개발 시)