From eab1604f18e7878c9b7fc8fb5ddfab5fb6d19012 Mon Sep 17 00:00:00 2001 From: cherry2250 Date: Tue, 21 Oct 2025 14:02:24 +0900 Subject: [PATCH] edit userstory --- TEMP_BACKUP/userstory.md | 1437 +++++++++++++++++++++++++ design/userstory.md | 2080 ++++++++++++++---------------------- design/userstory_ver2.0.md | 1066 ------------------ 3 files changed, 2253 insertions(+), 2330 deletions(-) create mode 100644 TEMP_BACKUP/userstory.md delete mode 100644 design/userstory_ver2.0.md diff --git a/TEMP_BACKUP/userstory.md b/TEMP_BACKUP/userstory.md new file mode 100644 index 0000000..81145bf --- /dev/null +++ b/TEMP_BACKUP/userstory.md @@ -0,0 +1,1437 @@ +# KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 (프로토타입 반영) + +> 🔄 **업데이트 일자**: 2025-10-21 +> 📋 **프로토타입 기준**: 30개 화면 분석 완료 +> ✅ **주요 변경**: AI 영상 제작 추가, 네비게이션 구조 개선, UI 플로우 최적화 + +--- + +## 📊 프로토타입 분석 요약 + +### **주요 발견 사항** +1. ✅ **AI 영상 제작 화면 추가** - 기존 유저스토리에 누락되어 있던 핵심 기능 +2. ✅ **하단 네비게이션 구조** - 주요 5개 메뉴 (홈/이벤트/만들기/분석/MY) +3. ✅ **이벤트 기획안 승인** - AI 예상 성과 표시 기능 강화 +4. ✅ **배포 채널 선택** - KT 채널과 SNS 채널 명확히 구분 +5. ✅ **실시간 대시보드** - 채널별 성과 링크 및 최근 활동 표시 + +### **화면 플로우 (30개)** +``` +00 로그인 +01 회원가입 +02 매장정보등록 +03 홈화면 ⭐ (하단 네비게이션 시작) +04 이벤트목적선택 +05 AI트렌드분석결과 +06 AI이벤트상품추천 +07 AI참여방법설계 +08 AI홍보문구생성 +09 AI이미지생성 +10 이벤트기획안승인 ⭐ (AI 예상 성과 표시) +11 AI영상제작 ⭐ (신규 추가) +12 SNS콘텐츠생성 +13 QR포스터생성 +14 QR포스터생성선택 +15 QR포스터상세설정 +16 콘텐츠편집 +17 콘텐츠최종승인 +18 배포채널선택 ⭐ (KT/SNS 채널 구분) +19 배포진행상태 +20 오프라인자료다운로드 +21 이벤트참여 +22 참여완료 +23 당첨자명단관리 +24 실시간대시보드 ⭐ (채널별 성과 링크 추가) +25 채널별성과분석 +26 ROI분석 +27 분석리포트 +28 이벤트목록 +29 마이페이지 +``` + +--- + +## 마이크로서비스 구성 + +1. **User** - 회원 인증 및 매장 정보 관리 +2. **Event Planning** - AI 기반 이벤트 자동 기획 +3. **Content Generation** - AI 기반 콘텐츠 자동 생성 (이미지 + **영상**) +4. **Distribution** - 다중 채널 자동 배포 +5. **Participation** - 이벤트 참여 및 접수 관리 +6. **Analytics** - 실시간 효과 측정 및 분석 +7. **AI Learning** - AI 학습 및 개선 제안 + +--- + +## 유저스토리 + +``` +1. User 서비스 +1) 사용자 인증 및 관리 +UFR-USER-001: [로그인] 소상공인으로서 | 나는, 서비스를 이용하기 위해 | 등록된 계정으로 로그인하고 싶다. +- 시나리오: 로그인 인증 + 앱 실행 또는 웹 접속 시 | 이메일과 비밀번호를 입력하고 로그인하면 | 인증이 완료되고 홈 화면으로 이동한다. + + [입력 요구사항] + - [ ] 이메일 입력 (필수) + - [ ] 비밀번호 입력 (필수) + - [ ] 자동 로그인 체크박스 (선택) + + [인증 처리] + - [ ] 이메일과 비밀번호 검증 + - [ ] JWT 토큰 발급 + - [ ] 세션 생성 + - [ ] 로그인 상태 유지 (자동 로그인 선택 시) + + [처리 결과] + - [ ] 성공: 홈 화면(UFR-USER-002)으로 이동 + - [ ] 실패: 오류 메시지 표시 + - "이메일 또는 비밀번호가 일치하지 않습니다" + - "존재하지 않는 계정입니다" + + [추가 기능] + - [ ] 비밀번호 찾기 링크 + - [ ] 회원가입 화면으로 이동 링크 + +- M/5 + +--- + +UFR-USER-002: [홈화면] 소상공인으로서 | 나는, 로그인 후 | 내 이벤트 현황을 한눈에 보고 새 이벤트를 시작하고 싶다. +- 시나리오: 홈 화면 조회 + 로그인 완료 후 | 홈 화면에 접속하면 | 진행 중인 이벤트 요약, 최근 성과, 새 이벤트 생성 버튼이 표시된다. + + [홈 화면 구성 요소] + - [ ] 환영 메시지 (사용자명 표시: "안녕하세요!") + - [ ] 빠른 액션 버튼 (상단) + - "✨ 새 이벤트" (UFR-PLAN-010으로 이동) + - "📋 이벤트 목록" (UFR-USER-030으로 이동) + - "📊 실시간 현황" (UFR-ANAL-010으로 이동) + - "⚙️ 설정" + - [ ] 대시보드 요약 카드 + - 진행 중인 이벤트 수 + - 총 참여자 수 + - 전환율 (%) + - [ ] AI 인사이트 섹션 + - 🤖 AI 인사이트 제목 + - "이벤트를 생성하시면 AI가 맞춤형 인사이트를 제공해드립니다" 안내 메시지 + - [ ] 최근 이벤트 섹션 + - "최근 이벤트" 제목 + - "전체보기" 링크 (UFR-USER-030으로 이동) + - 최근 이벤트 목록 (최대 3개) + - [ ] 첫 이벤트 안내 (이벤트 없을 경우) + - 🎯 아이콘 + - "첫 이벤트를 만들어보세요!" 제목 + - "AI가 업종과 목적에 맞는 최적의 이벤트를 추천해드립니다" 설명 + - "AI 이벤트 만들기" 버튼 (UFR-PLAN-010으로 이동) + + [하단 네비게이션 바] ⭐ 신규 추가 + - [ ] 홈 (현재 화면, UFR-USER-002) + - [ ] 이벤트 (UFR-USER-030) + - [ ] 만들기 (UFR-PLAN-010) + - [ ] 분석 (UFR-ANAL-010) + - [ ] MY (UFR-USER-040) + + [처리] + - [ ] 사용자 정보 조회 + - [ ] 진행 중인 이벤트 목록 조회 + - [ ] 이벤트 통계 집계 + + [네비게이션] + - [ ] 새 이벤트 생성 버튼 → UFR-PLAN-010 + - [ ] 이벤트 목록 → UFR-USER-030 + - [ ] 실시간 대시보드 → UFR-ANAL-010 + - [ ] 마이페이지 → UFR-USER-040 + +- M/13 + +--- + +UFR-USER-010: [회원가입] 소상공인으로서 | 나는, 이벤트 자동 생성 서비스를 사용하기 위해 | 간편하게 회원가입하고 싶다. +- 시나리오: 기본 정보 입력 + 미가입 상태에서 | 이름, 전화번호, 이메일, 비밀번호를 입력하고 회원가입을 하면 | 회원가입이 완료되고 매장 정보 등록 화면으로 이동한다. + + [입력 요구사항] + - [ ] 이름 2자 이상 입력 가능 (필수) + - [ ] 전화번호 형식 검증 (010-XXXX-XXXX) (필수) + - [ ] 이메일 형식 검증 (example@domain.com) (필수) + - [ ] 비밀번호 입력 (필수) + - 최소 8자 이상 + - 영문, 숫자, 특수문자 조합 + - [ ] 비밀번호 확인 (필수, 비밀번호와 일치 검증) + - [ ] 중복 가입 방지 (이메일과 전화번호 기준) + + [처리 결과] + - [ ] 성공: "회원가입이 완료되었습니다" 메시지 → 매장 정보 등록 화면 + - [ ] 실패: 구체적인 오류 메시지 표시 + +- M/5 + +--- + +UFR-USER-020: [매장정보등록] 소상공인으로서 | 나는, 맞춤형 이벤트를 생성하기 위해 | 내 매장 정보를 등록하고 싶다. +- 시나리오: 매장 정보 입력 및 사업자번호 검증 + 회원가입 완료 후 | 매장명, 업종, 주소, 사업자번호, 메뉴 정보를 입력하면 | 사업자번호 검증 후 매장 정보가 저장되고 홈 화면으로 이동한다. + + [입력 요구사항] + - [ ] 매장명 입력 (최대 50자) + - [ ] 업종 선택 (카테고리 리스트 제공: 음식점, 카페, 소매업 등) + - [ ] 주소 입력 (도로명 주소 API 연동) + - [ ] 메뉴/상품 정보 입력 (선택, 최대 10개) + - 메뉴명/상품명 (최대 30자) + - 가격 정보 + - 간단한 설명 (최대 100자) + - [ ] 매장 특징/강점 입력 (선택, 최대 200자) + - [ ] 대표 이미지 업로드 (선택, 최대 3장) + + [사업자번호 검증] + - [ ] 사업자번호 형식 검증 (XXX-XX-XXXXX) + - [ ] 사업자번호 유효성 확인 + - [ ] 휴폐업 여부 확인 + - [ ] 매장명과 사업자 정보 일치 확인 + + [처리 결과] + - [ ] 검증 성공 시 매장 정보 DB 저장 → 홈 화면(UFR-USER-002)으로 이동 + - [ ] 검증 실패 시 구체적인 오류 알림 제공 + - 형식 오류: "사업자번호 형식이 올바르지 않습니다. (XXX-XX-XXXXX 형식으로 입력해주세요)" + - 유효성 오류: "등록되지 않은 사업자번호입니다. 번호를 다시 확인해주세요." + - 휴폐업: "휴업 또는 폐업된 사업자입니다. 현재 운영 중인 사업자번호를 입력해주세요." + - 정보 불일치: "입력하신 매장명과 사업자 정보가 일치하지 않습니다." + - [ ] 오류 발생 시 해당 필드 강조 표시 및 포커스 이동 + - [ ] 재입력 가능하도록 UI 유지 + +- M/13 + +--- + +UFR-USER-030: [이벤트목록] 소상공인으로서 | 나는, 이벤트를 관리하기 위해 | 전체 이벤트 목록을 확인하고 상세보기를 할 수 있어야 한다. +- 시나리오: 이벤트 목록 조회 + 홈 화면 또는 하단 네비게이션에서 | 이벤트 목록을 선택하면 | 진행 중, 종료됨, 전체 이벤트 목록이 표시된다. + + [목록 구성 요소] + - [ ] 필터 탭 (진행 중 / 종료됨 / 전체) + - [ ] 이벤트 카드 정보 + - 이벤트명 + - 진행 상태 (진행 중 / 종료됨) + - 참여자 수 + - 남은 기간 또는 종료 일자 + - "상세보기" 버튼 + - [ ] 페이지네이션 (10개씩 표시) + + [처리] + - [ ] 이벤트 목록 조회 (사용자별) + - [ ] 진행 상태별 필터링 + - [ ] 정렬 (최신순) + + [네비게이션] + - [ ] 이벤트 상세보기 → 실시간 대시보드(UFR-ANAL-010) + - [ ] 새 이벤트 만들기 → UFR-PLAN-010 + +- M/8 + +--- + +UFR-USER-040: [마이페이지] 소상공인으로서 | 나는, 내 정보를 관리하기 위해 | 회원 정보와 매장 정보를 조회하고 수정하고 싶다. +- 시나리오: 마이페이지 조회 및 수정 + 하단 네비게이션에서 | MY를 선택하면 | 회원 정보, 매장 정보, 설정을 확인하고 수정할 수 있다. + + [마이페이지 구성 요소] + - [ ] 프로필 섹션 + - 사용자명 + - 이메일 + - 전화번호 + - [ ] 매장 정보 섹션 + - 매장명 + - 업종 + - 주소 + - "매장 정보 수정" 버튼 + - [ ] 설정 섹션 + - 알림 설정 + - 비밀번호 변경 + - 로그아웃 + - 회원 탈퇴 + + [처리] + - [ ] 사용자 정보 조회 + - [ ] 매장 정보 조회 + - [ ] 정보 수정 시 검증 및 업데이트 + + [네비게이션] + - [ ] 매장 정보 수정 → UFR-USER-020 (수정 모드) + - [ ] 비밀번호 변경 → 비밀번호 변경 화면 + +- M/8 + +--- + +2. Event Planning 서비스 +1) AI 이벤트 기획 +UFR-PLAN-010: [이벤트목적선택] 소상공인으로서 | 나는, 효과적인 이벤트를 기획하기 위해 | 이벤트 목적을 선택하고 싶다. +- 시나리오: 이벤트 기획 시작 및 목적 설정 + 이벤트 기획 화면에 접근한 상황에서 | 6가지 목적 중 하나를 선택하면 | 선택한 목적이 저장되고 AI 트렌드 분석이 시작된다. + + [목적 선택 옵션] ⭐ 6가지로 확장 + - [ ] 👥 신규 고객 유치: 신규 고객 확보에 초점 (AI 추천) + - 예: 첫 방문 할인, 친구 추천 이벤트 + - [ ] 🔄 재방문 유도: 기존 고객의 재방문 촉진 + - 예: 스탬프 적립, 재방문 쿠폰 + - [ ] 💰 매출 증대: 객단가 향상 및 매출 증대 + - 예: 세트 할인, 한정 특가 이벤트 + - [ ] ⭐ 브랜드 인지도: 매장 홍보 및 SNS 화제 + - 예: SNS 인증샷, 바이럴 이벤트 + - [ ] 🎉 고객 참여 활성화: 커뮤니티 구축 및 소통 + - 예: 리뷰 이벤트, 고객 투표 + - [ ] 🎊 시즌/기념일 마케팅: 계절/기념일 이벤트 + - 예: 크리스마스, 창립기념일 이벤트 + + [UI/UX 요구사항] + - [ ] AI TIP 정보 제공 ⭐ 신규 추가 + - "선택하신 목적에 맞는 최신 트렌드와 성공 사례를 분석하여 맞춤형 이벤트를 제안해드립니다" + - [ ] 각 목적별 설명 및 예시 제공 + - [ ] 단일 선택만 가능 (라디오 버튼) + - [ ] 선택 후 "AI 트렌드 분석 시작" 버튼 활성화 + +- M/5 + +--- + +UFR-PLAN-020: [AI업종트렌드분석] 소상공인으로서 | 나는, 성공률 높은 이벤트를 기획하기 위해 | AI가 내 업종과 지역의 트렌드를 분석해주기를 원한다. +- 시나리오: AI 기반 업종 및 지역 트렌드 분석 + 이벤트 목적 선택 후 | 시스템이 내 매장의 업종, 지역, 현재 시즌을 분석하면 | 업종별 성공 사례와 트렌드 리포트가 생성된다. + + [분석 입력 데이터] + - [ ] 매장 업종 정보 (USER 서비스에서 조회) + - [ ] 매장 위치 정보 (지역, 상권) + - [ ] 현재 시즌 정보 (봄/여름/가을/겨울, 명절) + - [ ] 선택한 이벤트 목적 + + [트렌드 분석 처리] + - [ ] 트렌드 분석 시스템 API 호출 + - [ ] 과거 동일 업종 성공 사례 데이터 분석 + - [ ] 지역별 트렌드 반영 (유동인구, 연령대 등) + - [ ] 시즌 특성 고려 (계절 이벤트, 명절 등) + + [분석 결과 제공] + - [ ] 트렌드 리포트 생성 (주요 트렌드 3-5가지) + - [ ] Top 트렌드 강조 표시 + - [ ] 예상 참여율 표시 + - [ ] 추천 이벤트 방향 제시 + - [ ] 분석 결과를 다음 단계(경품 추천)에 전달 + +- M/13 + +--- + +UFR-PLAN-030: [AI이벤트상품추천] 소상공인으로서 | 나는, 예산 내에서 최적의 이벤트상품을 선정하기 위해 | AI가 타겟 고객층에 맞는 이벤트상품을 추천해주기를 원한다. +- 시나리오: AI 기반 최적 이벤트상품 추천 및 이벤트 진행 방법 선택 + 트렌드 분석 완료 후 | 예산, 타겟 고객층, 이벤트 목적, 이벤트 진행 방법을 입력하면 | Claude API가 예산 대비 매력도가 높은 이벤트상품 Top 5를 추천한다. + + [입력 요구사항] + - [ ] 예산 입력 (최소 10,000원 ~ 최대 5,000,000원) + - [ ] 타겟 고객층 자동 설정 (업종 기반) + - [ ] 이벤트 목적 연동 (PLAN-010에서 선택한 목적) + - [ ] 이벤트 진행 방법 선택 (필수) + - [옵션1] 추첨형: 기간 내 참여한 고객 중 이벤트가 끝나면 상품(쿠폰) 수량 안에서 당첨자 랜덤 추첨 진행 + - [옵션2] 선착순형: 선착순 쿠폰 소진 방식 + + [AI 이벤트상품 추천 처리] + - [ ] Claude API 연동 + - [ ] 프롬프트: 예산, 타겟 고객층, 이벤트 목적, 이벤트 진행 방법, 업종 정보 포함 + - [ ] 예산 대비 매력도 최대화 알고리즘 적용 + - [ ] 타겟 고객 선호도 분석 + - [ ] 이벤트 진행 방법에 따른 이벤트상품 수량 제안 + + [추천 결과 제공] + - [ ] 이벤트상품 목록 Top 5 생성 + - [ ] 각 이벤트상품별 예상 효과 표시 (참여율 예상) + - [ ] 예산 범위 내 이벤트상품 필터링 + - [ ] 소상공인이 1개 선택 또는 수정 가능 + + [이벤트상품 수정 기능] + - [ ] 추천 이벤트상품 내용 수정 가능 (이벤트상품명, 수량, 가격) + - [ ] 직접 이벤트상품 입력 옵션 제공 + - [ ] 수정된 내용 기반 예상 효과 재계산 + - [ ] 예산 초과 시 경고 메시지 표시 + +- M/21 + +--- + +UFR-PLAN-040: [AI참여방법설계] 소상공인으로서 | 나는, 고객 참여를 높이기 위해 | AI가 간단하면서도 재방문을 유도하는 참여 방법을 설계해주기를 원한다. +- 시나리오: AI 기반 참여 방법 설계 + 이벤트상품 선택 완료 후 | 이벤트 목적, 매장 특성, 선택 이벤트상품을 기반으로 Claude API가 분석하면 | 3가지 참여 방법 옵션이 제시된다. + + [설계 입력 데이터] + - [ ] 이벤트 목적 (PLAN-010) + - [ ] 매장 특성 (업종, 위치) + - [ ] 선택한 이벤트상품 정보 (PLAN-030) + + [AI 참여 방법 설계] + - [ ] Claude API 연동 + - [ ] 간단한 참여 방법 우선 설계 + - [ ] 재방문 유도 요소 포함 + - [ ] 바이럴 확산 장치 설계 (SNS 공유 등) + + [참여 방법 옵션 제공] + - [ ] 3가지 옵션 생성 + - 옵션 1: 가장 간단한 방법 (예: QR 코드 스캔) + - 옵션 2: 재방문 유도형 (예: 매장 방문 후 리뷰 작성) + - 옵션 3: 바이럴형 (예: SNS 공유 + 친구 태그) + - [ ] 각 옵션별 예상 참여율 표시 + - [ ] 난이도 표시 (쉬움/보통/어려움) + - [ ] 소상공인이 1개 선택 + +- M/21 + +--- + +UFR-PLAN-050: [AI홍보문구생성] 소상공인으로서 | 나는, 매력적인 홍보를 위해 | AI가 이벤트 개요에 맞는 홍보 문구를 자동으로 생성해주기를 원한다. +- 시나리오: AI 기반 홍보 문구 자동 생성 + 참여 방법 선택 완료 후 | 이벤트 개요, 이벤트상품 정보, 참여 방법을 GPT-4 AI에 전달하면 | 5개 버전의 홍보 문구와 SNS 해시태그가 생성된다. + + [생성 입력 데이터] + - [ ] 이벤트 개요 (목적, 기간) + - [ ] 이벤트상품 정보 + - [ ] 참여 방법 + - [ ] 매장 특성 + + [AI 홍보 문구 생성] + - [ ] GPT-4 API 연동 + - [ ] 프롬프트: 이벤트 정보, 타겟 고객층, 매장 특성 포함 + - [ ] 5개 버전의 홍보 문구 생성 + - [ ] 각 버전별 톤앤매너 차별화 (친근함/공식적/트렌디 등) + + [홍보 문구 결과] + - [ ] 문구 5개 버전 제공 + - [ ] SNS 해시태그 자동 생성 (5-10개) + - [ ] 플랫폼별 최적화 문구 제공 (Instagram, Blog, Kakao) + - [ ] 미리보기 기능 + - [ ] 소상공인이 1개 선택 또는 편집 가능 + +- M/13 + +--- + +UFR-PLAN-060: [이벤트기획안승인] 소상공인으로서 | 나는, 이벤트를 실행하기 위해 | 완성된 기획안을 검토하고 승인하고 싶다. +- 시나리오: 완성된 이벤트 기획안 검토 및 승인 + 모든 기획 단계 완료 후 | 완성된 기획안(목적, 이벤트상품, 참여방법, 홍보문구)을 확인하면 | 승인 버튼 클릭으로 기획안이 저장되고 콘텐츠 생성 단계로 이동한다. + + [기획안 완성 안내] ⭐ 신규 추가 + - [ ] "완벽한 이벤트 기획안이 완성되었어요!" 제목 + - [ ] "AI가 분석한 데이터를 바탕으로 최적의 이벤트를 설계했습니다" 설명 + + [AI 예상 성과] ⭐ 신규 추가 + - [ ] 예상 참여자 수 (예: 1,200명) + - [ ] 참여율 (예: 75%) + - [ ] ROI (예: 3.5배) + + [이벤트 미리보기] ⭐ 신규 추가 + - [ ] 이벤트 제목 + - [ ] 홍보 문구 미리보기 + - [ ] 해시태그 표시 + + [기획안 요약 제공] + - [ ] 🎯 이벤트 목적 (수정 버튼) + - 선택한 목적 표시 + - [ ] 📊 트렌드 분석 (수정 버튼) + - Top 트렌드 표시 + - 예상 참여율 표시 + - [ ] 🎁 이벤트 경품 (수정 버튼) + - 선택한 경품 및 유형 표시 + - [ ] 📱 참여 방법 (수정 버튼) + - 선택한 방법 및 유형 표시 + - [ ] ✍️ 홍보 문구 (수정 버튼) + - 헤드라인 표시 + - CTA 표시 + + [승인 처리] + - [ ] "📝 임시저장" 버튼 + - [ ] "✅ 승인하고 다음으로" 버튼 + - [ ] 승인 시 이벤트 기획안 DB 저장 + - [ ] 이벤트 ID 생성 + - [ ] 콘텐츠 생성 단계(UFR-CONT-010)로 이동 + + [수정 기능] + - [ ] 각 섹션별 "수정" 버튼 + - [ ] 수정 버튼 클릭 시 해당 단계로 이동 + +- M/8 + +--- + +3. Content Generation 서비스 +1) 콘텐츠 자동 생성 +UFR-CONT-010: [AI이미지생성] 소상공인으로서 | 나는, 이벤트 홍보를 위해 | AI가 브랜드 컬러와 로고를 반영한 이미지 3종을 자동으로 생성해주기를 원한다. +- 시나리오: AI 기반 이미지 자동 생성 + 콘텐츠 생성 화면에서 | 이벤트 기획안 ID, 브랜드 컬러, 로고 이미지를 전달하면 | Stable Diffusion이 3가지 스타일의 이미지를 생성한다. + + [입력 요구사항] + - [ ] 이벤트 제목 (기획안에서 자동 연동) + - [ ] 이벤트상품 이미지 + - [ ] 브랜드 컬러 (HEX 코드 입력 또는 색상 선택기) + - [ ] 로고 이미지 업로드 (PNG, JPG, 최대 5MB) + + [AI 이미지 생성] + - [ ] Stable Diffusion API 연동 + - [ ] 브랜드 컬러 자동 적용 + - [ ] 로고 자동 배치 (우측 상단 또는 중앙 하단) + - [ ] 3가지 스타일 생성 + - 심플: 미니멀 디자인 + - 화려: 풍성한 그래픽 요소 + - 트렌디: 최신 디자인 트렌드 반영 + + [생성 결과] + - [ ] 이미지 3종 제공 (각각 1080x1080 해상도) + - [ ] 미리보기 기능 + - [ ] 이미지 다운로드 가능 + - [ ] 1개 선택하여 다음 단계 진행 + +- M/34 + +--- + +UFR-CONT-020: [AI영상제작] 소상공인으로서 | 나는, 효과적인 홍보를 위해 | AI가 선택한 이미지를 기반으로 15초 홍보 영상을 자동 제작해주기를 원한다. ⭐ 신규 추가 +- 시나리오: AI 기반 15초 홍보 영상 자동 제작 + 이미지 선택 완료 후 | 선택한 이미지, 홍보 문구, 배경음악을 전달하면 | AI 영상 제작 엔진이 15초 홍보 영상을 생성한다. + + [입력 요구사항] + - [ ] 선택한 이미지 (UFR-CONT-010에서 선택) + - [ ] 홍보 문구 (기획안에서 자동 연동) + - [ ] 배경음악 선택 (3가지 옵션 제공) + - 경쾌한 음악 + - 차분한 음악 + - 트렌디한 음악 + + [AI 영상 제작] + - [ ] AI 영상 제작 엔진 API 연동 + - [ ] 이미지 애니메이션 효과 적용 + - [ ] 텍스트 자막 자동 삽입 (홍보 문구) + - [ ] 배경음악 자동 삽입 + - [ ] 15초 길이로 자동 편집 + + [영상 생성 결과] + - [ ] 15초 영상 파일 (MP4, 1080x1920 세로형) + - [ ] 미리보기 재생 기능 + - [ ] 영상 다운로드 가능 + - [ ] 다음 단계(SNS 콘텐츠 생성)로 진행 + + [성능 요구사항] + - [ ] 영상 제작 시간: 3-5분 이내 + - [ ] 진행 상황 실시간 표시 (사용자 경험 개선) + +- M/34 + +--- + +UFR-CONT-030: [SNS콘텐츠생성] 소상공인으로서 | 나는, 다양한 SNS에 게시하기 위해 | 플랫폼별로 최적화된 콘텐츠를 자동으로 생성해주기를 원한다. +- 시나리오: SNS 플랫폼별 최적화 콘텐츠 생성 + 이미지 및 영상 생성 완료 후 | Instagram, Naver Blog, Kakao Channel을 선택하면 | 각 SNS 플랫폼에 최적화된 해상도와 형식의 콘텐츠가 생성된다. + + [SNS 플랫폼 선택] + - [ ] Instagram (선택) + - [ ] Naver Blog (선택) + - [ ] Kakao Channel (선택) + - [ ] 최소 1개 이상 플랫폼 선택 필수 + + [플랫폼별 최적화] + - [ ] Instagram: 1080x1080 (정사각형) + - [ ] Naver Blog: 800x600 (가로형) + - [ ] Kakao Channel: 800x800 (정사각형) + + [콘텐츠 생성] + - [ ] 선택한 이미지를 플랫폼별 해상도로 자동 조정 + - [ ] 해시태그 자동 삽입 (기획안의 해시태그 활용) + - [ ] 플랫폼별 텍스트 최적화 (글자 수 제한 고려) + + [생성 결과] + - [ ] 플랫폼별 최적화 이미지 파일 + - [ ] 각 플랫폼용 게시 텍스트 + - [ ] 미리보기 기능 + - [ ] 일괄 다운로드 가능 (ZIP 파일) + +- M/21 + +--- + +UFR-CONT-040: [QR포스터생성] 소상공인으로서 | 나는, 오프라인 홍보를 위해 | QR 코드가 포함된 인쇄용 포스터를 생성하고 싶다. +- 시나리오: 콘텐츠 생성 후 QR 코드 포스터 생성 여부 선택 + 콘텐츠 생성 완료 후 | QR 포스터 생성 여부를 묻는 화면에서 "생성" 선택 시 | QR 연결 URL과 포스터 크기를 입력하면 | QR 코드가 포함된 인쇄용 포스터 PDF가 생성된다. + + [QR 포스터 생성 여부 선택] + - [ ] "QR 포스터 생성" 선택 시: QR 포스터 생성 화면으로 이동 + - [ ] "생성 안 함" 선택 시: 콘텐츠 편집 단계(UFR-CONT-050)로 바로 이동 + + [입력 요구사항] (QR 포스터 생성 선택 시) + - [ ] QR 연결 URL (이벤트 참여 페이지 URL) + - [ ] 포스터 크기 선택 (A4 또는 A3) + + [QR 포스터 생성] + - [ ] QR 코드 생성 API 연동 + - [ ] 선택한 이미지를 배경으로 사용 + - [ ] QR 코드 배치 (하단 중앙) + - [ ] 이벤트 정보 텍스트 삽입 (제목, 기간, 이벤트상품) + - [ ] 인쇄 최적화 (300dpi 이상) + + [생성 결과] + - [ ] A4 포스터 PDF + - [ ] A3 포스터 PDF (선택 시) + - [ ] QR 코드 단독 이미지 (PNG) + - [ ] 다운로드 가능 + +- M/8 + +--- + +UFR-CONT-050: [콘텐츠편집] 소상공인으로서 | 나는, 콘텐츠를 개인화하기 위해 | 생성된 콘텐츠를 수정하고 싶다. +- 시나리오: 생성된 콘텐츠 편집 + 전체 콘텐츠 미리보기 화면에서 | 수정이 필요한 콘텐츠를 선택하면 | 간단한 편집 도구로 수정할 수 있다. + + [편집 가능 항목] + - [ ] 이미지: 텍스트 수정, 색상 조정 + - [ ] 영상: 자막 수정, 배경음악 변경 ⭐ 신규 추가 + - [ ] SNS 콘텐츠: 게시 텍스트 편집 + - [ ] QR 포스터: 텍스트 수정, 레이아웃 조정 (생성한 경우) + + [편집 도구] + - [ ] 텍스트 편집기 (폰트, 크기, 색상 변경) + - [ ] 색상 선택기 + - [ ] 레이아웃 템플릿 변경 + - [ ] 미리보기 실시간 반영 + + [편집 완료] + - [ ] 저장 버튼으로 수정사항 적용 + - [ ] 편집 이력 관리 (최대 3개 버전) + - [ ] 원본으로 되돌리기 가능 + +- S/13 + +--- + +UFR-CONT-060: [콘텐츠최종승인] 소상공인으로서 | 나는, 배포 전에 | 완성된 콘텐츠를 검토하고 승인하고 싶다. +- 시나리오: 완성된 콘텐츠 최종 승인 + 모든 콘텐츠 생성 완료 후 | 전체 콘텐츠 미리보기를 확인하면 | 승인 버튼으로 콘텐츠를 저장하고 배포 단계로 이동한다. + + [콘텐츠 미리보기] + - [ ] 이미지 3종 + - [ ] 영상 (15초) ⭐ 신규 추가 + - [ ] SNS 콘텐츠 (플랫폼별) + - [ ] QR 포스터 (생성한 경우) + + [승인 처리] + - [ ] 승인 버튼 클릭 시 콘텐츠 DB 저장 + - [ ] 콘텐츠 ID 생성 + - [ ] 배포 단계(UFR-DIST-010)로 이동 + + [성능 기준] + - [ ] 전체 콘텐츠 생성 5-8분 이내 완료 (영상 포함) ⭐ 업데이트 + +- M/3 + +--- + +4. Distribution 서비스 +1) 다중 채널 배포 +UFR-DIST-010: [다중채널배포설정] 소상공인으로서 | 나는, 이벤트를 효과적으로 홍보하기 위해 | 여러 채널에 한 번에 배포할 수 있기를 원한다. +- 시나리오: 배포 채널 선택 및 설정 + 배포 화면에서 | 원하는 배포 채널을 선택하고 배포 일시를 설정하면 | 선택한 채널 목록이 저장되고 각 채널별 배포가 시작된다. + + [배포 진행 단계 표시] ⭐ 신규 추가 + - [ ] "배포 1/3: 채널 선택" 진행 상태 표시 + - [ ] "선택된 채널: N개 채널" 요약 정보 표시 + + [배포 채널 선택 - KT 채널] ⭐ 섹션 구분 명확화 + - [ ] "KT 채널" 섹션 제목 + - [ ] 우리동네TV (추천 뱃지) (선택) + - "지역 주변 노출" 설명 + - "설정 ›" 버튼 + - [ ] 링고비즈 연결음 (선택) + - "매장 전화 연결음" 설명 + - "설정 ›" 버튼 + - [ ] 지니TV 광고 (선택) + - "TV 광고 송출" 설명 + - "설정 ›" 버튼 + + [배포 채널 선택 - SNS 채널] ⭐ 섹션 구분 명확화 + - [ ] "SNS 채널" 섹션 제목 + - [ ] Instagram (필수 뱃지) (선택) + - "인스타그램 게시물" 설명 + - 계정 연동 상태 표시 ("✓ 계정 연동됨" 또는 "계정 연동 필요") + - 연동되지 않은 경우 "계정 연동하기" 버튼 + - [ ] Naver Blog (선택) + - "네이버 블로그" 설명 + - 계정 연동 상태 표시 + - 연동되지 않은 경우 "계정 연동하기" 버튼 + - [ ] Kakao Channel (선택) + - "카카오톡 채널" 설명 + - 계정 연동 상태 표시 + - 연동되지 않은 경우 "계정 연동하기" 버튼 + - [ ] 최소 1개 이상 채널 선택 필수 + + [배포 시간 설정] ⭐ 섹션 추가 + - [ ] "배포 시간" 섹션 제목 + - [ ] 즉시 배포 (선택) + - "지금 바로 선택한 채널에 배포" 설명 + - [ ] 예약 배포 (선택) + - "원하는 날짜와 시간에 배포" 설명 + - 날짜 및 시간 선택 UI + + [배포 시작] + - [ ] "임시저장" 버튼 + - [ ] "다음 (배포 시작)" 버튼 + - [ ] 선택한 채널 목록 저장 + - [ ] 배포 요청 이벤트 발생 + - [ ] 각 채널별 병렬 배포 시작 + +- M/13 + +--- + +UFR-DIST-020: [우리동네TV배포] 소상공인으로서 | 나는, 주변 지역 고객에게 도달하기 위해 | 우리동네TV에 반경과 시간대를 설정하여 배포하고 싶다. +- 시나리오: 우리동네TV 배포 설정 및 송출 + 배포 채널로 우리동네TV 선택 시 | 반경(500m/1km)과 송출 시간대를 설정하면 | 15초 영상이 해당 지역에 송출된다. + + [배포 설정] + - [ ] 반경 선택 (500m 또는 1km) + - [ ] 송출 시간대 선택 (평일 저녁 6-9시, 주말 점심 12-2시 등) + - [ ] 15초 영상 파일 전달 (CONT-020) + + [우리동네TV API 연동] + - [ ] 우리동네TV API 호출 + - [ ] 매장 위치 기반 타겟 지역 설정 + - [ ] 송출 시간대 예약 + - [ ] 영상 파일 업로드 + + [배포 결과] + - [ ] 배포 ID 발급 + - [ ] 예상 노출 수 제공 + - [ ] 송출 스케줄 확인 가능 + +- M/21 + +--- + +UFR-DIST-030: [링고비즈연결음업데이트] 소상공인으로서 | 나는, 전화하는 고객에게도 홍보하기 위해 | 매장 전화번호의 연결음을 이벤트 내용으로 자동 업데이트하고 싶다. +- 시나리오: 링고비즈 연결음 업데이트 + 배포 채널로 링고비즈 선택 시 | 매장 전화번호와 연결음 파일을 전달하면 | 연결음이 자동으로 업데이트된다. + + [연결음 생성] + - [ ] 홍보 문구 기반 연결음 스크립트 자동 생성 + - [ ] 네이버 클로바(Clova) TTS 엔진을 이용한 음성 파일 생성 + - [ ] 음성 톤 선택 가능 (친근한 톤, 공식적인 톤, 활기찬 톤 등) + - [ ] 또는 사전 녹음 파일 업로드 (MP3, WAV 형식) + + [네이버 클로바 TTS 연동] + - [ ] 네이버 클로바 TTS API 연동 + - [ ] 음성 합성 옵션 설정 (음색, 속도, 톤) + - [ ] 고품질 음성 파일 생성 (16kHz 이상) + - [ ] 생성된 음성 파일 미리듣기 기능 + + [링고비즈 API 연동] + - [ ] 링고비즈 API 호출 + - [ ] 매장 전화번호 전달 (USER 서비스에서 조회) + - [ ] 연결음 파일 업로드 + - [ ] 업데이트 요청 + + [업데이트 결과] + - [ ] 업데이트 완료 시각 확인 + - [ ] 연결음 미리듣기 가능 + - [ ] 롤백 기능 (이전 연결음으로 복구) + +- S/13 + +--- + +UFR-DIST-040: [지니TV광고배포] 소상공인으로서 | 나는, 가정의 TV를 통해 홍보하기 위해 | 지니TV에 예산과 타겟 지역을 설정하여 광고를 배포하고 싶다. +- 시나리오: 지니TV 광고 예약 및 송출 + 배포 채널로 지니TV 선택 시 | 타겟 지역, 노출 시간대, 예산을 설정하면 | 지니TV에 광고가 예약되고 노출된다. + + [광고 설정] + - [ ] 타겟 지역 선택 (매장 주변 반경 1km, 3km, 5km) + - [ ] 노출 시간대 선택 (아침/점심/저녁/심야) + - [ ] 예산 입력 (최소 100,000원) + + [지니TV API 연동] + - [ ] 지니TV 광고 플랫폼 API 호출 + - [ ] 타겟 지역 설정 + - [ ] 노출 시간대 및 빈도 설정 + - [ ] 예산 기반 노출량 자동 계산 + - [ ] 영상 파일 업로드 (15초 영상) + + [광고 예약 결과] + - [ ] 광고 ID 발급 + - [ ] 노출 스케줄 확인 + - [ ] 예상 노출 횟수 및 도달 가구 수 제공 + +- M/21 + +--- + +UFR-DIST-050: [SNS자동포스팅] 소상공인으로서 | 나는, 온라인 고객에게 도달하기 위해 | Instagram, Naver Blog, Kakao Channel에 자동으로 포스팅하고 싶다. +- 시나리오: SNS 플랫폼 자동 포스팅 + 배포 채널로 SNS 선택 시 | 플랫폼별 계정 연동 후 예약 시간을 설정하면 | 각 SNS에 자동으로 포스팅된다. + + [계정 연동] + - [ ] Instagram 계정 OAuth 연동 + - [ ] Naver Blog 계정 OAuth 연동 + - [ ] Kakao Channel 계정 OAuth 연동 + - [ ] 연동 상태 확인 + + [포스팅 설정] + - [ ] 즉시 포스팅 또는 예약 포스팅 + - [ ] 예약 시간 설정 (플랫폼별 개별 설정 가능) + - [ ] 게시물 미리보기 + + [SNS API 연동 (병렬 처리)] + - [ ] Instagram API 호출 + - [ ] Naver Blog API 호출 + - [ ] Kakao Channel API 호출 + - [ ] 플랫폼별 최적화 콘텐츠 및 텍스트 전달 + + [포스팅 결과] + - [ ] 각 플랫폼별 포스팅 완료 확인 + - [ ] 게시물 URL 제공 + - [ ] 포스팅 실패 시 재시도 (최대 3회) + +- M/13 + +--- + +UFR-DIST-060: [오프라인자료다운로드] 소상공인으로서 | 나는, 매장 내 홍보를 위해 | QR 포스터와 인쇄용 PDF를 다운로드하고 싶다. +- 시나리오: 오프라인 홍보 자료 다운로드 + 배포 완료 화면에서 | 오프라인 자료 다운로드 버튼을 클릭하면 | QR 포스터와 인쇄용 PDF가 다운로드된다. + + [다운로드 자료] + - [ ] QR 코드 포스터 (A4 PDF) + - [ ] QR 코드 포스터 (A3 PDF) + - [ ] QR 코드 단독 이미지 (PNG) + - [ ] 인쇄용 이미지 (고해상도 300dpi 이상) + + [다운로드 기능] + - [ ] 개별 파일 다운로드 + - [ ] 전체 파일 일괄 다운로드 (ZIP) + - [ ] 다운로드 이력 관리 + + [성능 기준] + - [ ] 전체 배포 과정 1분 이내 완료 + +- S/5 + +--- + +5. Participation 서비스 +1) 이벤트 참여 관리 +UFR-PART-010: [이벤트참여신청] 고객으로서 | 나는, 이벤트상품을 받기 위해 | 간편하게 이벤트에 참여하고 싶다. +- 시나리오: 고객의 이벤트 참여 신청 + 고객이 이벤트를 발견한 상황에서 | 이름, 전화번호, 참여 경로를 입력하고 참여 버튼을 클릭하면 | 참여 정보가 접수되고 응모번호가 발급된다. + + [이벤트 발견 경로] + - [ ] 우리동네TV + - [ ] 지니TV + - [ ] 링고 비즈 (연결음) + - [ ] SNS (Instagram, Blog, Kakao) + - [ ] QR 코드 스캔 + + [참여 정보 입력] + - [ ] 고객명 입력 (필수) + - [ ] 전화번호 입력 (필수, 010-XXXX-XXXX 형식) + - [ ] 참여 경로 자동 추적 또는 선택 + - [ ] 개인정보 수집 동의 체크 (필수) + + [참여 신청 처리] + - [ ] 입력 정보 검증 (형식 확인) + - [ ] 중복 참여 체크 (전화번호 기준) + - [ ] 참여 데이터 저장 + + [참여 완료] + - [ ] 응모번호 자동 발급 + - [ ] 참여 완료 메시지 표시 + - [ ] 당첨 발표일 안내 + + [Policy] + - 1인 1회 참여 제한 + - 개인정보 보호 규정 준수 + +- M/8 + +--- + +UFR-PART-020: [중복참여방지] 시스템으로서 | 나는, 공정한 이벤트 운영을 위해 | 1인 1회 참여만 허용하고 싶다. +- 시나리오: 중복 참여 방지 및 차단 + 고객이 참여 신청 시 | 전화번호 기반으로 중복 여부를 확인하면 | 중복 참여는 차단하고 정상 참여만 접수한다. + + [중복 체크 처리] + - [ ] 참여자 DB에서 전화번호 조회 + - [ ] 동일 이벤트 ID에 대한 중복 여부 확인 + - [ ] 매장 방문 고객 여부 확인 (가산점 부여용) + + [중복 참여 차단] + - [ ] 중복 참여 시 "이미 참여하셨습니다" 메시지 + - [ ] 이전 참여 일시 표시 + - [ ] 재참여 불가 안내 + + [정상 참여 처리] + - [ ] 중복 없음 확인 + - [ ] 참여 정보 DB 저장 + - [ ] 참여 ID 생성 + - [ ] 참여 일시 기록 + - [ ] 참여 채널 기록 + - [ ] 매장 방문 고객인 경우 가산점 부여 플래그 + + [Policy] + - 전화번호 기반 중복 체크 + - 매장 방문 고객 가산점 부여 + +- M/8 + +--- + +UFR-PART-030: [자동당첨자추첨] 소상공인으로서 | 나는, 수동 관리 부담을 줄이기 위해 | 추첨형 이벤트 종료 시 자동으로 당첨자가 추첨되기를 원한다. +- 시나리오: 추첨형 이벤트 종료 후 자동 추첨 + 추첨형 이벤트 종료 시각 도래 시 | 시스템이 자동으로 참여자 목록을 조회하면 | 공정한 알고리즘으로 당첨자를 추첨하고 명단을 생성한다. + + [추첨 시작 트리거] + - [ ] 이벤트 진행 방법 확인 (UFR-PLAN-030에서 선택한 방법) + - [ ] 추첨형 이벤트: 종료 시각 자동 감지하여 추첨 시작 + - [ ] 선착순형 이벤트: 추첨 진행하지 않음 (쿠폰 소진 시 자동 종료) + - [ ] 스케줄러에 의한 자동 추첨 시작 (추첨형만) + - [ ] 또는 소상공인의 수동 추첨 요청 (추첨형만) + + [당첨자 추첨 처리] (추첨형 이벤트만) + - [ ] 참여자 목록 조회 (이벤트 ID 기준) + - [ ] 중복 참여자 제외 + - [ ] 매장 방문 고객 가산점 적용 + - [ ] 난수 기반 무작위 추첨 알고리즘 + - [ ] 당첨 인원만큼 추첨 (기획안에 정의된 인원) + + [선착순형 이벤트 처리] + - [ ] 쿠폰 소진 시 자동으로 이벤트 종료 + - [ ] 참여 순서대로 당첨자 자동 확정 + - [ ] 추첨 과정 없음 + + [추첨 결과] (추첨형 이벤트) + - [ ] 당첨자 목록 생성 + - [ ] 추첨 과정 로그 기록 (감사 추적용) + - [ ] 당첨자 정보 DB 저장 + - [ ] 소상공인에게 당첨자 명단 제공 + +- M/13 + +--- + +UFR-PART-040: [당첨알림발송] 고객으로서 | 나는, 당첨 여부를 빠르게 확인하기 위해 | SMS나 카카오 알림톡으로 당첨 알림을 받고 싶다. +- 시나리오: 당첨자에게 당첨 알림 발송 + 당첨자 추첨 완료 후 | 시스템이 당첨자 목록과 이벤트상품 정보를 전달하면 | SMS 또는 카카오 알림톡이 자동 발송된다. + + [알림 발송 준비] + - [ ] 당첨자 목록 조회 + - [ ] 이벤트상품 정보 조회 + - [ ] 매장 정보 조회 (수령 장소 안내용) + + [SMS/알림톡 발송] + - [ ] SMS/카카오 알림톡 시스템 API 연동 + - [ ] 당첨 축하 메시지 생성 + - [ ] 이벤트상품 정보 포함 + - [ ] 이벤트상품 수령 방법 안내 + - [ ] 수령 기한 안내 (예: 발표일로부터 7일 이내) + - [ ] 매장 연락처 포함 + + [발송 결과] + - [ ] 발송 성공/실패 확인 + - [ ] 발송 이력 저장 + - [ ] 실패 시 재발송 시도 (최대 3회) + + [미당첨자 처리] + - [ ] 미당첨자에게는 별도 알림 미발송 + - [ ] 또는 참여 감사 메시지 발송 (옵션) + +- M/8 + +--- + +UFR-PART-050: [당첨자명단관리] 소상공인으로서 | 나는, 이벤트상품을 지급하기 위해 | 당첨자 명단을 확인하고 관리하고 싶다. +- 시나리오: 당첨자 명단 조회 및 관리 + 당첨자 추첨 완료 후 | 소상공인이 당첨자 관리 화면에 접근하면 | 당첨자 명단과 이벤트상품 지급 상태를 확인하고 업데이트할 수 있다. + + [당첨자 명단 조회] + - [ ] 이벤트별 당첨자 목록 표시 + - [ ] 당첨자 정보: 이름, 전화번호, 응모번호, 참여일시 + - [ ] 이벤트상품 정보 표시 + - [ ] 이벤트상품 지급 상태 (미지급/지급완료) + + [이벤트상품 지급 관리] + - [ ] 이벤트상품 지급 상태 업데이트 (체크박스) + - [ ] 지급 일시 자동 기록 + - [ ] 지급 완료 시 당첨자에게 확인 문자 발송 (옵션) + + [데이터 다운로드] + - [ ] 당첨자 명단 엑셀 다운로드 + - [ ] 참여자 전체 명단 다운로드 (분석용) + +- M/5 + +--- + +6. Analytics 서비스 +1) 효과 측정 및 분석 +UFR-ANAL-010: [실시간대시보드조회] 소상공인으로서 | 나는, 이벤트 성과를 즉시 파악하기 위해 | 실시간으로 참여자 수, 노출 수, 전환율을 확인하고 싶다. +- 시나리오: 실시간 효과 측정 대시보드 조회 + 이벤트 배포 완료 후 | 효과 측정 대시보드에 접근하면 | 5분 간격으로 업데이트되는 실시간 데이터를 확인할 수 있다. + + [기간 필터] ⭐ 신규 추가 + - [ ] "오늘" 버튼 + - [ ] "최근 7일" 버튼 + - [ ] "최근 30일" 버튼 + - [ ] "전체" 버튼 + + [대시보드 주요 지표] + - [ ] 👥 총 참여자 수 (실시간) + - 전일 대비 증감율 표시 (예: +23.3%) + - [ ] 🎁 당첨자 수 + - 전일 대비 증감율 표시 + - [ ] 📊 전환율 (%) ⭐ 명칭 변경 (매장 방문자 증가율 → 전환율) + - 전일 대비 증감율 표시 + - [ ] 📈 조회수 ⭐ 신규 추가 + - 전일 대비 증감율 표시 + + [채널별 성과 섹션] ⭐ 신규 추가 + - [ ] "채널별 성과" 제목 + - [ ] "상세보기 →" 링크 (UFR-ANAL-020으로 이동) + - [ ] 채널별 참여자 수 막대 그래프 + - 📷 Instagram: N명 + - 📺 우리동네TV: N명 + - 📝 Naver 블로그: N명 + - 💬 KakaoTalk: N명 + + [최근 활동 섹션] ⭐ 신규 추가 + - [ ] "최근 활동" 제목 + - [ ] 활동 타임라인 (최대 5개) + - 🎉 새로운 당첨자 선정 알림 (시간 표시) + - 👤 새로운 참여자 알림 (채널별) + - 📊 조회수 돌파 알림 + - 💰 경품 지급 완료 알림 + - 📱 당첨 알림 발송 알림 + + [빠른 이동 버튼] ⭐ 신규 추가 + - [ ] 🎯 당첨자 관리 (UFR-PART-050) + - [ ] 📊 성과 분석 (UFR-ANAL-020) + - [ ] 💰 ROI 분석 (UFR-ANAL-030) + - [ ] 📄 리포트 (UFR-ANAL-040) + + [실시간 데이터 수집] + - [ ] 5분 간격 자동 업데이트 + - [ ] KT 채널 데이터 수집 API 연동 (우리동네TV, 지니TV) + - [ ] POS 시스템 연동 (매장 방문, 매출 데이터) + - [ ] SNS 플랫폼 데이터 수집 (Instagram, Naver Blog, Kakao Channel) + + [대시보드 UI] + - [ ] 그래프 시각화 (시간대별 추이) + - [ ] 숫자 대형 표시 (핵심 지표) + - [ ] 새로고침 버튼 + - [ ] 자동 새로고침 옵션 + +- M/21 + +--- + +UFR-ANAL-020: [채널별성과분석] 소상공인으로서 | 나는, 효과적인 채널을 파악하기 위해 | 우리동네TV, 지니TV, SNS 등 채널별 노출 수와 참여율을 비교하고 싶다. +- 시나리오: 채널별 성과 비교 분석 + 효과 측정 대시보드에서 | 채널별 분석 탭을 선택하면 | 각 채널의 노출 수, 참여율, 전환율이 비교되어 표시된다. + + [채널별 데이터 수집] + - [ ] 우리동네TV: 노출 수, 도달률 + - [ ] 지니TV: 노출 수, 도달 가구 수 + - [ ] Instagram: 조회 수, 좋아요, 저장 수, 공유 수 (Instagram Graph API 활용) + - [ ] Naver Blog: 방문자 수, 조회 수 + - [ ] Kakao Channel: 조회 수, 클릭 수 (Kakao API 활용) + - [ ] QR 코드: 스캔 횟수 (자체 QR 코드 추적 시스템) + + [성과 지표 계산] + - [ ] 노출 수 (Impression) + - [ ] 참여율 (Participation Rate = 참여 수 / 노출 수) + - [ ] 전환율 (Conversion Rate = 매장 방문 / 참여 수) + - [ ] 채널별 비용 대비 효과 (Cost per Acquisition) + + [비교 분석 시각화] + - [ ] 채널별 막대 그래프 + - [ ] 파이 차트 (참여 비율) + - [ ] 효율성 순위표 + - [ ] 가장 효과적인 채널 강조 표시 + +- M/13 + +--- + +UFR-ANAL-030: [광고수익률자동계산] 소상공인으로서 | 나는, 투자 대비 효과를 명확히 알기 위해 | 총비용 대비 수익(광고 수익률)이 자동으로 계산되기를 원한다. +- 시나리오: 광고 수익률 자동 계산 및 분석 + 이벤트 진행 중 또는 종료 후 | 효과 측정 대시보드에서 | 투자 비용 대비 수익이 자동으로 계산되어 표시된다. + + [비용 데이터 수집] + - [ ] 이벤트상품 비용 (기획안에서 자동 조회) + - [ ] 플랫폼 이용 비용 + - 우리동네TV 광고비 + - 지니TV 광고비 + - SNS 광고비 (있는 경우) + - [ ] 총 투자 비용 계산 + + [수익 데이터 수집] + - [ ] 매출 증가액 (이벤트 기간 매출 - 평균 매출) + - [ ] 신규 고객 수 × 예상 LTV (Lifetime Value) + - [ ] 총 수익 계산 + + [ROI 계산] + - [ ] ROI = (수익 - 비용) / 비용 × 100 + - [ ] 손익분기점 계산 + - [ ] 회수 기간 예상 + + [결과 표시] + - [ ] ROI 퍼센트 대형 표시 + - [ ] 손익 분기 달성 여부 + - [ ] 비용/수익 상세 내역 + - [ ] 그래프 시각화 + +- M/13 + +--- + +UFR-ANAL-040: [분석리포트생성] 소상공인으로서 | 나는, 이벤트 결과를 정리하기 위해 | 종합 분석 리포트를 PDF로 다운로드하고 싶다. +- 시나리오: 종합 분석 리포트 생성 및 다운로드 + 이벤트 종료 후 | 리포트 생성 버튼을 클릭하면 | 전체 성과를 요약한 PDF 리포트가 생성되어 다운로드된다. + + [리포트 포함 내용] + - [ ] 이벤트 개요 (목적, 기간, 이벤트상품) + - [ ] 참여 통계 (총 참여자 수, 채널별 참여 분포) + - [ ] 노출 통계 (채널별 노출 수, 도달률) + - [ ] 매출 분석 (매출 증가율, 객단가 변화) + - [ ] 광고 수익률 분석 (투자 대비 수익) + - [ ] 채널별 성과 비교 + - [ ] 업종 평균 대비 벤치마킹 + - [ ] 그래프 및 차트 시각화 + + [리포트 생성] + - [ ] 데이터 수집 및 집계 + - [ ] 그래프 이미지 생성 + - [ ] PDF 레이아웃 생성 + - [ ] PDF 파일 생성 + + [다운로드] + - [ ] PDF 다운로드 링크 제공 + - [ ] 파일명: "이벤트명_분석리포트_YYYYMMDD.pdf" + - [ ] 이메일 발송 옵션 + +- S/8 + +--- + +7. AI Learning 서비스 +1) AI 학습 및 개선 +UFR-AIMPR-010: [AI개선안생성] 소상공인으로서 | 나는, 더 나은 이벤트를 운영하기 위해 | AI가 분석 결과를 바탕으로 구체적인 개선안을 제안해주기를 원한다. +- 시나리오: AI 기반 이벤트 개선안 생성 + 이벤트 종료 후 | 시스템이 결과 데이터를 자동 분석하면 | AI가 성공 요인과 실패 요인을 파악하여 3가지 개선안을 제시한다. + + [결과 데이터 분석] + - [ ] 빅데이터 분석 시스템 API 호출 + - [ ] 참여율 vs 목표 비교 + - [ ] 광고 수익률 vs 업종 평균 비교 + - [ ] 채널별 효율성 분석 + - [ ] 시간대별 참여 패턴 분석 + - [ ] 이벤트상품 매력도 평가 + + [성공/실패 요인 도출] + - [ ] 성공 요인 식별 (목표 달성 항목) + - [ ] 실패 요인 식별 (목표 미달 항목) + - [ ] 개선 포인트 도출 + + [AI 개선안 생성] + - [ ] AI 머신러닝 엔진 API 호출 + - [ ] 성공 패턴 학습 및 재활용 + - [ ] 실패 패턴 회피 로직 적용 + - [ ] 최적화 알고리즘 적용 + - [ ] 3가지 개선안 생성 + - 개선안 1: 이벤트상품 변경 (더 매력적인 이벤트상품) + - 개선안 2: 참여 방법 단순화 (참여율 향상) + - 개선안 3: 배포 채널 조정 (효율적 채널 집중) + + [개선안 제시] + - [ ] 각 개선안별 우선순위 표시 + - [ ] 예상 효과 제공 (참여율 증가 예상치 등) + - [ ] 소상공인이 개선안 선택 또는 피드백 제공 + +- M/21 + +--- + +UFR-AIMPR-020: [다음이벤트아이디어제안] 소상공인으로서 | 나는, 계절과 트렌드에 맞는 이벤트를 기획하기 위해 | AI가 시즌별 성공 이벤트 아이디어를 제안해주기를 원한다. +- 시나리오: AI 기반 다음 이벤트 아이디어 제안 + 이벤트 종료 및 개선안 검토 후 | 다음 이벤트 아이디어 요청 버튼을 클릭하면 | AI가 시즌, 학습 결과, 트렌드를 반영한 이벤트 아이디어 5가지를 제안한다. + + [입력 데이터] + - [ ] 현재 시즌 (봄/여름/가을/겨울, 명절) + - [ ] 이벤트 목표 (신규고객/재방문/매출증대/인지도향상) + - [ ] 이전 이벤트 학습 결과 + + [트렌드 데이터베이스 조회] + - [ ] 트렌드 DB API 호출 + - [ ] 계절별 성공 이벤트 조회 + - [ ] 지역 특성 반영 + - [ ] 트렌드 예측 적용 (최근 인기 이벤트 유형) + + [이벤트 아이디어 생성] + - [ ] 추천 이벤트 5가지 생성 + - [ ] 각 아이디어별 상세 설명 + - [ ] 예상 성과 제공 (참여율, ROI 예상) + - [ ] 적합한 시기 제안 + + [아이디어 제시] + - [ ] 아이디어 목록 표시 + - [ ] 각 아이디어 선택 시 상세 설명 확장 + - [ ] "이 아이디어로 기획 시작" 버튼 + - [ ] 선택 시 이벤트 기획 화면(PLAN-010)으로 이동 + +- S/13 + +--- + +UFR-AIMPR-030: [성공패턴학습] AI시스템으로서 | 나는, 추천 정확도를 높이기 위해 | 이벤트 결과 데이터를 학습하여 성공 패턴을 축적하고 싶다. +- 시나리오: AI 학습 데이터 자동 업데이트 + 이벤트 종료 및 분석 완료 후 | 시스템이 자동으로 학습 데이터를 저장하면 | AI 모델이 성공 패턴을 학습하여 다음 추천 정확도가 향상된다. + + [학습 데이터 수집] + - [ ] 이벤트 결과 데이터 (참여율, ROI, 채널 효율성 등) + - [ ] 성공 패턴 (목표 달성 항목) + - [ ] 실패 패턴 (목표 미달 항목) + - [ ] 업종, 지역, 시즌 정보 + + [학습 데이터 저장] + - [ ] 학습 데이터 DB에 저장 + - [ ] 성공 사례 태깅 + - [ ] 실패 사례 태깅 + - [ ] 메타데이터 저장 (업종, 지역, 시즌) + + [AI 모델 학습] + - [ ] 이벤트 결과 누적 데이터 기반 학습 + - [ ] 성공률 향상 학습 + - [ ] 이벤트상품 추천 알고리즘 개선 + - [ ] 참여 방법 설계 알고리즘 개선 + - [ ] 채널 효율성 예측 모델 업데이트 + - [ ] 개인화 추천 강화 + + [학습 결과 적용] + - [ ] 다음 이벤트 기획 시 학습된 패턴 적용 + - [ ] 추천 정확도 모니터링 + - [ ] 지속적인 성능 개선 + +- M/34 + +--- + +8. 비기능 요구사항 +1) 성능 +NFR-PERF-010: [AI기획속도] 시스템으로서 | 나는, 사용자 대기 시간을 최소화하기 위해 | AI 이벤트 기획을 10초 이내에 완료하고 싶다. +- 시나리오: AI 이벤트 기획 성능 보장 + 소상공인이 이벤트 기획 시작 후 | 모든 AI 분석 및 추천 단계를 거쳐 | 10초 이내에 완성된 기획안이 제시된다. + + [성능 요구사항] + - [ ] 업종 트렌드 분석: 3초 이내 + - [ ] 경품 추천: 3초 이내 + - [ ] 참여 방법 설계: 2초 이내 + - [ ] 홍보 문구 생성: 2초 이내 + - [ ] 총 처리 시간: 10초 이내 + + [최적화 방안] + - [ ] AI API 병렬 호출 + - [ ] 응답 캐싱 (동일 조건 재사용) + - [ ] 프롬프트 최적화 + - [ ] 네트워크 지연 최소화 + +- M/21 + +--- + +NFR-PERF-020: [콘텐츠생성속도] 시스템으로서 | 나는, 효율적인 서비스를 제공하기 위해 | 이미지와 영상 콘텐츠 생성을 현실적인 시간 내에 완료하고 싶다. +- 시나리오: 콘텐츠 생성 성능 보장 + 소상공인이 콘텐츠 생성 시작 후 | 이미지 3종, 영상 1개, SNS 콘텐츠, QR 포스터까지 | 현실적인 처리 시간 내에 모든 콘텐츠가 생성된다. + + [성능 요구사항] + - [ ] 이미지 생성 (3종): 2-3분 이내 (AI 이미지 생성 특성 고려) + - [ ] 영상 제작 (15초): 3-5분 이내 (AI 영상 제작 특성 고려) ⭐ 신규 추가 + - [ ] SNS 콘텐츠 생성: 30초 이내 + - [ ] QR 포스터 생성: 20초 이내 + - [ ] 총 처리 시간: 5-8분 이내 (단계별 병렬 처리 시) ⭐ 업데이트 + + [최적화 방안] + - [ ] 이미지와 영상 병렬 생성 ⭐ 업데이트 + - [ ] GPU 가속 활용 + - [ ] 콘텐츠 캐싱 + - [ ] 진행 상황 실시간 표시 (사용자 경험 개선) + - [ ] 백그라운드 처리로 다른 작업 가능 + + [Policy] + - AI 생성 모델의 현실적인 처리 시간 반영 + - 품질과 속도의 균형 유지 + - 사용자에게 명확한 진행 상황 피드백 제공 + +- M/34 + +--- + +NFR-PERF-030: [배포속도] 시스템으로서 | 나는, 신속한 배포를 위해 | 다중 채널 배포를 1분 이내에 완료하고 싶다. +- 시나리오: 배포 성능 보장 + 소상공인이 배포 시작 버튼 클릭 후 | 모든 선택 채널에 콘텐츠가 배포되기까지 | 1분 이내에 완료된다. + + [성능 요구사항] + - [ ] 우리동네TV: 15초 + - [ ] 링고비즈: 10초 + - [ ] 지니TV: 20초 + - [ ] SNS (3개 플랫폼 병렬): 20초 + - [ ] 총 처리 시간: 1분 이내 + + [최적화 방안] + - [ ] 채널별 병렬 배포 + - [ ] 비동기 API 호출 + - [ ] 배포 상태 실시간 업데이트 + +- M/21 + +--- + +NFR-PERF-040: [실시간데이터수집] 시스템으로서 | 나는, 정확한 효과 측정을 위해 | 5분 간격으로 실시간 데이터를 수집하고 업데이트하고 싶다. +- 시나리오: 실시간 데이터 수집 주기 보장 + 이벤트 배포 후 | 효과 측정 대시보드가 | 5분 간격으로 자동 업데이트된다. + + [데이터 수집 주기] + - [ ] 5분마다 자동 데이터 수집 + - [ ] 스케줄러 기반 자동 실행 + - [ ] 실패 시 재시도 (3회) + + [데이터 소스] + - [ ] KT 채널 API (우리동네TV, 지니TV) + - [ ] POS 시스템 + - [ ] SNS 플랫폼 API (Instagram, Naver Blog, Kakao Channel) + - [ ] 참여자 DB + +- M/13 + +--- + +2) 보안 +NFR-SECU-010: [개인정보보호] 시스템으로서 | 나는, 고객 신뢰를 확보하기 위해 | 개인정보 보호 규정을 준수하고 암호화를 적용하고 싶다. +- 시나리오: 개인정보 보호 및 암호화 + 고객의 개인정보(이름, 전화번호)가 수집될 때 | 암호화되어 저장되고 | GDPR, 개인정보보호법을 준수한다. + + [개인정보 암호화] + - [ ] 전화번호 암호화 (AES-256) + - [ ] 이름 암호화 (필요 시) + - [ ] 전송 시 HTTPS/TLS 적용 + + [개인정보 보호 규정 준수] + - [ ] 개인정보 수집 동의 획득 (필수) + - [ ] 수집 목적 명시 + - [ ] 보유 기간 설정 (이벤트 종료 후 3개월) + - [ ] 파기 절차 자동화 + + [접근 제어] + - [ ] 역할 기반 접근 제어 (RBAC) + - [ ] 소상공인은 자신의 이벤트 데이터만 접근 + - [ ] 관리자 감사 로그 기록 + +- M/13 + +--- + +3) 안정성 +NFR-RELI-010: [배포실패자동재시도] 시스템으로서 | 나는, 서비스 안정성을 위해 | 배포 실패 시 자동으로 3회까지 재시도하고 싶다. +- 시나리오: 배포 실패 시 자동 재시도 + 채널 배포 중 API 오류로 실패 시 | 시스템이 자동으로 재시도하여 | 최대 3회까지 재시도 후 성공 또는 최종 실패 처리한다. + + [재시도 로직] + - [ ] 배포 실패 감지 + - [ ] 1차 재시도 (5초 후) + - [ ] 2차 재시도 (10초 후) + - [ ] 3차 재시도 (20초 후) + - [ ] 3회 실패 시 최종 실패 처리 + + [실패 알림] + - [ ] 소상공인에게 실패 알림 + - [ ] 실패 사유 제공 + - [ ] 수동 재시도 옵션 제공 + +- M/8 + +--- + +4) 확장성 +NFR-SCAL-010: [동시이벤트처리] 시스템으로서 | 나는, 다수의 소상공인을 지원하기 위해 | 최소 100개의 이벤트를 동시에 처리할 수 있어야 한다. +- 시나리오: 동시 다발적 이벤트 처리 + 100명의 소상공인이 동시에 이벤트를 기획/배포하는 상황에서 | 시스템이 정상적으로 모든 요청을 처리한다. + + [확장성 요구사항] + - [ ] 동시 이벤트 처리: 최소 100개 + - [ ] AI API 동시 호출: 최소 50개 + - [ ] 배포 API 동시 호출: 최소 100개 + + [확장 전략] + - [ ] 마이크로서비스 수평 확장 (Auto Scaling) + - [ ] 로드 밸런싱 + - [ ] 메시지 큐 활용 (비동기 처리) + - [ ] 캐싱 전략 (Redis) + +- S/21 +``` + +--- + +## 📈 프로토타입 반영 통계 + +| 구분 | 기존 | 추가/수정 | 합계 | +|------|------|-----------|------| +| User 서비스 | 3개 | 2개 | 5개 | +| Event Planning 서비스 | 6개 | 1개 | 7개 | +| Content Generation 서비스 | 5개 | 1개 (영상제작 신규) | 6개 | +| Distribution 서비스 | 6개 | - | 6개 | +| Participation 서비스 | 5개 | - | 5개 | +| Analytics 서비스 | 4개 | - | 4개 | +| AI Learning 서비스 | 3개 | - | 3개 | +| 비기능 요구사항 | 5개 | - | 5개 | +| **총계** | **37개** | **4개** | **41개** | + +--- + +## 🔧 기술 검토 업데이트 + +### **신규 추가 항목** + +**UFR-CONT-020: AI영상제작** +- ⚠️ 높은 기술적 복잡도 +- AI 영상 제작 엔진 연동 필요 +- 예상 처리 시간: 3-5분 +- GPU 가속 활용 권장 +- 진행 상황 실시간 표시 필수 + +**UFR-USER-030: 이벤트목록** +- ✅ 실현 가능 +- 표준적인 CRUD 패턴 +- 필터링 및 페이지네이션 구현 + +**UFR-USER-040: 마이페이지** +- ✅ 실현 가능 +- 사용자 정보 관리 표준 패턴 + +### **주요 기술 스택 업데이트** + +**AI/ML 추가:** +- AI 영상 제작 엔진 (15초 영상 자동 생성) +- 예상 소요 시간: 3-5분 +- GPU 가속 필수 + +**성능 요구사항 업데이트:** +- 콘텐츠 생성 전체 시간: 5-8분 이내 (영상 포함) +- 이미지와 영상 병렬 생성 필수 + +--- + +## ✅ 다음 단계 + +1. **UI/UX 설계 업데이트**: 프로토타입 기준으로 설계서 재작성 +2. **API 설계 업데이트**: 영상 제작 API 명세 추가 +3. **백엔드 설계 업데이트**: 영상 제작 서비스 추가 +4. **프론트엔드 설계 업데이트**: 하단 네비게이션 구조 반영 diff --git a/design/userstory.md b/design/userstory.md index 81145bf..4800403 100644 --- a/design/userstory.md +++ b/design/userstory.md @@ -1,1437 +1,989 @@ -# KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 (프로토타입 반영) +# KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 ver2.0 -> 🔄 **업데이트 일자**: 2025-10-21 -> 📋 **프로토타입 기준**: 30개 화면 분석 완료 -> ✅ **주요 변경**: AI 영상 제작 추가, 네비게이션 구조 개선, UI 플로우 최적화 - ---- - -## 📊 프로토타입 분석 요약 - -### **주요 발견 사항** -1. ✅ **AI 영상 제작 화면 추가** - 기존 유저스토리에 누락되어 있던 핵심 기능 -2. ✅ **하단 네비게이션 구조** - 주요 5개 메뉴 (홈/이벤트/만들기/분석/MY) -3. ✅ **이벤트 기획안 승인** - AI 예상 성과 표시 기능 강화 -4. ✅ **배포 채널 선택** - KT 채널과 SNS 채널 명확히 구분 -5. ✅ **실시간 대시보드** - 채널별 성과 링크 및 최근 활동 표시 - -### **화면 플로우 (30개)** -``` -00 로그인 -01 회원가입 -02 매장정보등록 -03 홈화면 ⭐ (하단 네비게이션 시작) -04 이벤트목적선택 -05 AI트렌드분석결과 -06 AI이벤트상품추천 -07 AI참여방법설계 -08 AI홍보문구생성 -09 AI이미지생성 -10 이벤트기획안승인 ⭐ (AI 예상 성과 표시) -11 AI영상제작 ⭐ (신규 추가) -12 SNS콘텐츠생성 -13 QR포스터생성 -14 QR포스터생성선택 -15 QR포스터상세설정 -16 콘텐츠편집 -17 콘텐츠최종승인 -18 배포채널선택 ⭐ (KT/SNS 채널 구분) -19 배포진행상태 -20 오프라인자료다운로드 -21 이벤트참여 -22 참여완료 -23 당첨자명단관리 -24 실시간대시보드 ⭐ (채널별 성과 링크 추가) -25 채널별성과분석 -26 ROI분석 -27 분석리포트 -28 이벤트목록 -29 마이페이지 -``` +- [KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 ver2.0](#kt-ai-기반-소상공인-이벤트-자동-생성-서비스---유저스토리-ver20) + - [마이크로서비스 구성](#마이크로서비스-구성) + - [유저스토리](#유저스토리) + - [기술 검토 결과](#기술-검토-결과) --- ## 마이크로서비스 구성 - -1. **User** - 회원 인증 및 매장 정보 관리 -2. **Event Planning** - AI 기반 이벤트 자동 기획 -3. **Content Generation** - AI 기반 콘텐츠 자동 생성 (이미지 + **영상**) -4. **Distribution** - 다중 채널 자동 배포 -5. **Participation** - 이벤트 참여 및 접수 관리 -6. **Analytics** - 실시간 효과 측정 및 분석 -7. **AI Learning** - AI 학습 및 개선 제안 +1. **User** - 사용자 인증 및 매장정보 관리 +2. **Event** - 이벤트 기획 및 관리 +3. **AI** - AI 기반 트렌드 분석 및 이벤트 추천 +4. **Content** - SNS 콘텐츠 생성 +5. **Distribution** - 다중 채널 배포 관리 +6. **Participation** - 이벤트 참여 및 당첨자 관리 +7. **Analytics** - 실시간 효과 측정 및 통합 대시보드 --- ## 유저스토리 - ``` 1. User 서비스 -1) 사용자 인증 및 관리 -UFR-USER-001: [로그인] 소상공인으로서 | 나는, 서비스를 이용하기 위해 | 등록된 계정으로 로그인하고 싶다. -- 시나리오: 로그인 인증 - 앱 실행 또는 웹 접속 시 | 이메일과 비밀번호를 입력하고 로그인하면 | 인증이 완료되고 홈 화면으로 이동한다. +1) 사용자 인증 및 매장정보 관리 +UFR-USER-010: [회원가입] 소상공인으로서 | 나는 이벤트 마케팅 서비스를 이용하기 위해 | 간편하게 회원가입하고 싶다. +- 시나리오: 신규 회원가입 + 미로그인 상태에서 회원가입 화면에 접근한 상황에서 | 필수 정보를 모두 입력하고 회원가입 버튼을 클릭하면 | 사업자번호 검증을 거쳐 회원가입이 완료된다. [입력 요구사항] - - [ ] 이메일 입력 (필수) - - [ ] 비밀번호 입력 (필수) - - [ ] 자동 로그인 체크박스 (선택) + - 기본 정보 + - 이름: 2자 이상 (한글/영문) + - 전화번호: 휴대폰 번호 형식 + - 이메일: 이메일 형식 준수 + - 비밀번호: 8자 이상 (영문/숫자/특수문자 포함) + + [매장 정보 입력] + - 매장명: 필수 + - 업종: 선택 (예: 음식점, 카페, 소매점 등) + - 주소: 필수 + - 영업시간: 선택 + - 사업자번호: 필수 + - 국세청 DB 조회를 통한 검증 + - 휴폐업 여부 확인 + - 검증 실패 시 재입력 요청 + + [처리 결과] + - 성공: "회원가입이 완료되었습니다" 메시지 → 대시보드 화면 + - 실패: 구체적인 오류 메시지 표시 + +- M/21 + +--- + +UFR-USER-020: [로그인] 소상공인으로서 | 나는 이벤트를 관리하기 위해 | 간편하게 로그인하고 싶다. +- 시나리오: 사용자 로그인 + 미로그인 상태에서 로그인 화면에 접근한 상황에서 | 전화번호와 비밀번호를 입력하고 로그인 버튼을 클릭하면 | 인증이 완료되고 대시보드로 이동한다. + + [입력 요구사항] + - 전화번호: 등록된 전화번호 입력 + - 비밀번호: 해당 계정의 비밀번호 입력 + - 로그인 유지: 선택 옵션 제공 [인증 처리] - - [ ] 이메일과 비밀번호 검증 - - [ ] JWT 토큰 발급 - - [ ] 세션 생성 - - [ ] 로그인 상태 유지 (자동 로그인 선택 시) - - [처리 결과] - - [ ] 성공: 홈 화면(UFR-USER-002)으로 이동 - - [ ] 실패: 오류 메시지 표시 - - "이메일 또는 비밀번호가 일치하지 않습니다" - - "존재하지 않는 계정입니다" - - [추가 기능] - - [ ] 비밀번호 찾기 링크 - - [ ] 회원가입 화면으로 이동 링크 - -- M/5 - ---- - -UFR-USER-002: [홈화면] 소상공인으로서 | 나는, 로그인 후 | 내 이벤트 현황을 한눈에 보고 새 이벤트를 시작하고 싶다. -- 시나리오: 홈 화면 조회 - 로그인 완료 후 | 홈 화면에 접속하면 | 진행 중인 이벤트 요약, 최근 성과, 새 이벤트 생성 버튼이 표시된다. - - [홈 화면 구성 요소] - - [ ] 환영 메시지 (사용자명 표시: "안녕하세요!") - - [ ] 빠른 액션 버튼 (상단) - - "✨ 새 이벤트" (UFR-PLAN-010으로 이동) - - "📋 이벤트 목록" (UFR-USER-030으로 이동) - - "📊 실시간 현황" (UFR-ANAL-010으로 이동) - - "⚙️ 설정" - - [ ] 대시보드 요약 카드 - - 진행 중인 이벤트 수 - - 총 참여자 수 - - 전환율 (%) - - [ ] AI 인사이트 섹션 - - 🤖 AI 인사이트 제목 - - "이벤트를 생성하시면 AI가 맞춤형 인사이트를 제공해드립니다" 안내 메시지 - - [ ] 최근 이벤트 섹션 - - "최근 이벤트" 제목 - - "전체보기" 링크 (UFR-USER-030으로 이동) - - 최근 이벤트 목록 (최대 3개) - - [ ] 첫 이벤트 안내 (이벤트 없을 경우) - - 🎯 아이콘 - - "첫 이벤트를 만들어보세요!" 제목 - - "AI가 업종과 목적에 맞는 최적의 이벤트를 추천해드립니다" 설명 - - "AI 이벤트 만들기" 버튼 (UFR-PLAN-010으로 이동) - - [하단 네비게이션 바] ⭐ 신규 추가 - - [ ] 홈 (현재 화면, UFR-USER-002) - - [ ] 이벤트 (UFR-USER-030) - - [ ] 만들기 (UFR-PLAN-010) - - [ ] 분석 (UFR-ANAL-010) - - [ ] MY (UFR-USER-040) - - [처리] - - [ ] 사용자 정보 조회 - - [ ] 진행 중인 이벤트 목록 조회 - - [ ] 이벤트 통계 집계 - - [네비게이션] - - [ ] 새 이벤트 생성 버튼 → UFR-PLAN-010 - - [ ] 이벤트 목록 → UFR-USER-030 - - [ ] 실시간 대시보드 → UFR-ANAL-010 - - [ ] 마이페이지 → UFR-USER-040 - -- M/13 - ---- - -UFR-USER-010: [회원가입] 소상공인으로서 | 나는, 이벤트 자동 생성 서비스를 사용하기 위해 | 간편하게 회원가입하고 싶다. -- 시나리오: 기본 정보 입력 - 미가입 상태에서 | 이름, 전화번호, 이메일, 비밀번호를 입력하고 회원가입을 하면 | 회원가입이 완료되고 매장 정보 등록 화면으로 이동한다. - - [입력 요구사항] - - [ ] 이름 2자 이상 입력 가능 (필수) - - [ ] 전화번호 형식 검증 (010-XXXX-XXXX) (필수) - - [ ] 이메일 형식 검증 (example@domain.com) (필수) - - [ ] 비밀번호 입력 (필수) - - 최소 8자 이상 - - 영문, 숫자, 특수문자 조합 - - [ ] 비밀번호 확인 (필수, 비밀번호와 일치 검증) - - [ ] 중복 가입 방지 (이메일과 전화번호 기준) - - [처리 결과] - - [ ] 성공: "회원가입이 완료되었습니다" 메시지 → 매장 정보 등록 화면 - - [ ] 실패: 구체적인 오류 메시지 표시 - -- M/5 - ---- - -UFR-USER-020: [매장정보등록] 소상공인으로서 | 나는, 맞춤형 이벤트를 생성하기 위해 | 내 매장 정보를 등록하고 싶다. -- 시나리오: 매장 정보 입력 및 사업자번호 검증 - 회원가입 완료 후 | 매장명, 업종, 주소, 사업자번호, 메뉴 정보를 입력하면 | 사업자번호 검증 후 매장 정보가 저장되고 홈 화면으로 이동한다. - - [입력 요구사항] - - [ ] 매장명 입력 (최대 50자) - - [ ] 업종 선택 (카테고리 리스트 제공: 음식점, 카페, 소매업 등) - - [ ] 주소 입력 (도로명 주소 API 연동) - - [ ] 메뉴/상품 정보 입력 (선택, 최대 10개) - - 메뉴명/상품명 (최대 30자) - - 가격 정보 - - 간단한 설명 (최대 100자) - - [ ] 매장 특징/강점 입력 (선택, 최대 200자) - - [ ] 대표 이미지 업로드 (선택, 최대 3장) - - [사업자번호 검증] - - [ ] 사업자번호 형식 검증 (XXX-XX-XXXXX) - - [ ] 사업자번호 유효성 확인 - - [ ] 휴폐업 여부 확인 - - [ ] 매장명과 사업자 정보 일치 확인 - - [처리 결과] - - [ ] 검증 성공 시 매장 정보 DB 저장 → 홈 화면(UFR-USER-002)으로 이동 - - [ ] 검증 실패 시 구체적인 오류 알림 제공 - - 형식 오류: "사업자번호 형식이 올바르지 않습니다. (XXX-XX-XXXXX 형식으로 입력해주세요)" - - 유효성 오류: "등록되지 않은 사업자번호입니다. 번호를 다시 확인해주세요." - - 휴폐업: "휴업 또는 폐업된 사업자입니다. 현재 운영 중인 사업자번호를 입력해주세요." - - 정보 불일치: "입력하신 매장명과 사업자 정보가 일치하지 않습니다." - - [ ] 오류 발생 시 해당 필드 강조 표시 및 포커스 이동 - - [ ] 재입력 가능하도록 UI 유지 - -- M/13 - ---- - -UFR-USER-030: [이벤트목록] 소상공인으로서 | 나는, 이벤트를 관리하기 위해 | 전체 이벤트 목록을 확인하고 상세보기를 할 수 있어야 한다. -- 시나리오: 이벤트 목록 조회 - 홈 화면 또는 하단 네비게이션에서 | 이벤트 목록을 선택하면 | 진행 중, 종료됨, 전체 이벤트 목록이 표시된다. - - [목록 구성 요소] - - [ ] 필터 탭 (진행 중 / 종료됨 / 전체) - - [ ] 이벤트 카드 정보 - - 이벤트명 - - 진행 상태 (진행 중 / 종료됨) - - 참여자 수 - - 남은 기간 또는 종료 일자 - - "상세보기" 버튼 - - [ ] 페이지네이션 (10개씩 표시) - - [처리] - - [ ] 이벤트 목록 조회 (사용자별) - - [ ] 진행 상태별 필터링 - - [ ] 정렬 (최신순) - - [네비게이션] - - [ ] 이벤트 상세보기 → 실시간 대시보드(UFR-ANAL-010) - - [ ] 새 이벤트 만들기 → UFR-PLAN-010 + - 성공: 대시보드로 즉시 이동 + - 실패: "전화번호 또는 비밀번호를 확인해주세요" 메시지 - M/8 --- -UFR-USER-040: [마이페이지] 소상공인으로서 | 나는, 내 정보를 관리하기 위해 | 회원 정보와 매장 정보를 조회하고 수정하고 싶다. -- 시나리오: 마이페이지 조회 및 수정 - 하단 네비게이션에서 | MY를 선택하면 | 회원 정보, 매장 정보, 설정을 확인하고 수정할 수 있다. +UFR-USER-030: [프로필관리] 소상공인으로서 | 나는 내 정보를 최신 상태로 유지하기 위해 | 프로필 정보를 편집하고 싶다. +- 시나리오: 프로필 정보 수정 + 로그인한 상태에서 프로필 편집 화면에 접근한 상황에서 | 변경할 정보를 수정하고 저장 버튼을 클릭하면 | 변경사항이 저장되고 확인 메시지가 표시된다. - [마이페이지 구성 요소] - - [ ] 프로필 섹션 - - 사용자명 - - 이메일 - - 전화번호 - - [ ] 매장 정보 섹션 + [수정 가능 항목] + - 기본 정보 + - 이름: 실명 변경 가능 + - 전화번호: 변경 시 재인증 필요 + - 이메일: 이메일 변경 가능 + - 매장 정보 - 매장명 - 업종 - 주소 - - "매장 정보 수정" 버튼 - - [ ] 설정 섹션 - - 알림 설정 - - 비밀번호 변경 - - 로그아웃 - - 회원 탈퇴 + - 영업시간 + - 비밀번호 + - 현재 비밀번호 확인 필수 + - 새 비밀번호 규칙: 8자 이상 (영문/숫자/특수문자 포함) - [처리] - - [ ] 사용자 정보 조회 - - [ ] 매장 정보 조회 - - [ ] 정보 수정 시 검증 및 업데이트 + [저장 처리] + - 저장 전 확인: "변경사항을 저장하시겠습니까?" + - 저장 완료: "프로필이 성공적으로 업데이트되었습니다" + - 취소 선택: "변경사항이 저장되지 않습니다. 계속하시겠습니까?" - [네비게이션] - - [ ] 매장 정보 수정 → UFR-USER-020 (수정 모드) - - [ ] 비밀번호 변경 → 비밀번호 변경 화면 - -- M/8 +- C/8 --- -2. Event Planning 서비스 -1) AI 이벤트 기획 -UFR-PLAN-010: [이벤트목적선택] 소상공인으로서 | 나는, 효과적인 이벤트를 기획하기 위해 | 이벤트 목적을 선택하고 싶다. -- 시나리오: 이벤트 기획 시작 및 목적 설정 - 이벤트 기획 화면에 접근한 상황에서 | 6가지 목적 중 하나를 선택하면 | 선택한 목적이 저장되고 AI 트렌드 분석이 시작된다. +UFR-USER-040: [로그아웃] 소상공인으로서 | 나는 보안을 위해 | 서비스 사용 후 안전하게 로그아웃하고 싶다. +- 시나리오: 안전한 로그아웃 + 로그인된 상태에서 프로필 메뉴의 로그아웃을 선택한 상황에서 | 로그아웃 확인 다이얼로그에서 확인을 클릭하면 | 세션이 종료되고 로그인 화면으로 이동한다. - [목적 선택 옵션] ⭐ 6가지로 확장 - - [ ] 👥 신규 고객 유치: 신규 고객 확보에 초점 (AI 추천) - - 예: 첫 방문 할인, 친구 추천 이벤트 - - [ ] 🔄 재방문 유도: 기존 고객의 재방문 촉진 - - 예: 스탬프 적립, 재방문 쿠폰 - - [ ] 💰 매출 증대: 객단가 향상 및 매출 증대 - - 예: 세트 할인, 한정 특가 이벤트 - - [ ] ⭐ 브랜드 인지도: 매장 홍보 및 SNS 화제 - - 예: SNS 인증샷, 바이럴 이벤트 - - [ ] 🎉 고객 참여 활성화: 커뮤니티 구축 및 소통 - - 예: 리뷰 이벤트, 고객 투표 - - [ ] 🎊 시즌/기념일 마케팅: 계절/기념일 이벤트 - - 예: 크리스마스, 창립기념일 이벤트 + [로그아웃 요구사항] + - 확인 다이얼로그 + - 메시지: "로그아웃 하시겠습니까?" + - 버튼: 취소/확인 - [UI/UX 요구사항] - - [ ] AI TIP 정보 제공 ⭐ 신규 추가 - - "선택하신 목적에 맞는 최신 트렌드와 성공 사례를 분석하여 맞춤형 이벤트를 제안해드립니다" - - [ ] 각 목적별 설명 및 예시 제공 - - [ ] 단일 선택만 가능 (라디오 버튼) - - [ ] 선택 후 "AI 트렌드 분석 시작" 버튼 활성화 + [처리 결과] + - 확인 선택: "안전하게 로그아웃되었습니다" 메시지 → 로그인 화면 + - 취소 선택: 다이얼로그 닫힘, 현재 화면 유지 + +- S/3 + +--- + +2. Event 서비스 +1) 이벤트 관리 +UFR-EVENT-010: [대시보드] 소상공인으로서 | 나는 내 이벤트를 효율적으로 관리하기 위해 | 대시보드에서 진행중/예정/종료된 이벤트를 한눈에 확인하고 싶다. +- 시나리오: 대시보드에서 이벤트 목록 확인 + 로그인한 상태에서 대시보드에 접근한 상황에서 | 이벤트 목록 영역을 확인하면 | 내 이벤트들이 상태별로 구분되어 표시된다. + + [표시 요구사항] + - 이벤트 상태별 섹션 구성 + - "진행중": 현재 진행 중인 이벤트 + - "예정": 배포 대기 중인 이벤트 + - "종료": 완료된 이벤트 + - 이벤트 카드 정보 + - 이벤트명 + - 이벤트 기간 + - 진행 상태 뱃지 + - 간단한 통계 (참여자 수, 조회수 등) + + [상호작용 요구사항] + - 이벤트 카드 클릭: 해당 이벤트 상세 화면으로 이동 + - 섹션당 최대 5개 카드 표시 (최신 순) + - "전체보기" 링크: 전체 이벤트 목록 화면으로 이동 + - "새 이벤트 만들기" 버튼: 이벤트 생성 프로세스 시작 + + [빈 상태 처리] + - 이벤트가 없을 경우: "첫 이벤트를 만들어보세요" 안내 및 생성 버튼 + +- S/13 + +--- + +UFR-EVENT-020: [이벤트목적선택] 소상공인으로서 | 나는 효과적인 이벤트를 기획하기 위해 | 이벤트 목적을 먼저 선택하고 싶다. +- 시나리오: 이벤트 목적 선택 + 대시보드에서 "새 이벤트 만들기" 버튼을 클릭한 상황에서 | 이벤트 목적 선택 화면에서 하나의 목적을 선택하면 | AI 트렌드 분석 및 이벤트 추천 화면으로 이동한다. + + [목적 옵션] + - 신규 고객 유치: 새로운 고객 확보 + - 재방문 유도: 기존 고객 재방문 촉진 + - 매출 증대: 단기 매출 향상 + - 인지도 향상: 브랜드/매장 인지도 제고 + + [목적별 설명 제공] + - 각 목적에 대한 간단한 설명 + - 예상 효과 예시 + + [다음 단계] + - 목적 선택 완료 시 자동으로 AI 트렌드 분석 및 이벤트 추천 화면으로 이동 - M/5 --- -UFR-PLAN-020: [AI업종트렌드분석] 소상공인으로서 | 나는, 성공률 높은 이벤트를 기획하기 위해 | AI가 내 업종과 지역의 트렌드를 분석해주기를 원한다. -- 시나리오: AI 기반 업종 및 지역 트렌드 분석 - 이벤트 목적 선택 후 | 시스템이 내 매장의 업종, 지역, 현재 시즌을 분석하면 | 업종별 성공 사례와 트렌드 리포트가 생성된다. +UFR-EVENT-030: [AI이벤트추천] 소상공인으로서 | 나는 최신 트렌드를 반영하고 선택지를 비교하기 위해 | AI 트렌드 분석 결과와 함께 3가지 이벤트 추천을 확인하고 싶다. +- 시나리오: AI 트렌드 분석 및 이벤트 추천 확인 + 이벤트 목적을 선택한 상황에서 | AI 이벤트 추천 화면에 접근하면 | 트렌드 분석 결과와 함께 3가지 이벤트 기획안이 표시된다. - [분석 입력 데이터] - - [ ] 매장 업종 정보 (USER 서비스에서 조회) - - [ ] 매장 위치 정보 (지역, 상권) - - [ ] 현재 시즌 정보 (봄/여름/가을/겨울, 명절) - - [ ] 선택한 이벤트 목적 + [화면 구성] + 1. 트렌드 분석 결과 (상단) + - 업종 트렌드 + - 최근 성공한 이벤트 유형 + - 고객 선호 경품 분석 + - 효과적인 참여 방법 + - 지역 특성 + - 지역별 이벤트 성공률 + - 지역 고객 특성 + - 시즌 특성 + - 계절/시기별 추천 이벤트 + - 특별 이벤트 시즌 (명절, 기념일 등) - [트렌드 분석 처리] - - [ ] 트렌드 분석 시스템 API 호출 - - [ ] 과거 동일 업종 성공 사례 데이터 분석 - - [ ] 지역별 트렌드 반영 (유동인구, 연령대 등) - - [ ] 시즌 특성 고려 (계절 이벤트, 명절 등) + 2. 추천 이벤트 3가지 (하단) + 각 카드에 다음 정보 포함: + - 이벤트 제목 (수정 가능) + - 추천 경품 (수정 가능) + - 참여 방법 + - 예상 참여자 수 + - 예상 비용 + - 예상 ROI - [분석 결과 제공] - - [ ] 트렌드 리포트 생성 (주요 트렌드 3-5가지) - - [ ] Top 트렌드 강조 표시 - - [ ] 예상 참여율 표시 - - [ ] 추천 이벤트 방향 제시 - - [ ] 분석 결과를 다음 단계(경품 추천)에 전달 + [추천 기준] + - 이벤트 목적 기반 최적화 + - 업종 트렌드 반영 + - 예산 대비 효과 극대화 + - 3가지 옵션 차별화: + - 옵션 1: 저비용, 높은 참여율 중심 + - 옵션 2: 중비용, 균형잡힌 ROI + - 옵션 3: 고비용, 높은 매출 증대 효과 + + [간단한 커스텀 기능] + - 이벤트 제목: 각 카드에서 직접 수정 가능 (최대 50자) + - 경품명: 각 카드에서 직접 수정 가능 + + [이벤트 선택] + - 3가지 중 1개 선택 (라디오 버튼) + - 선택한 카드의 커스텀된 정보가 저장됨 + - 선택 완료 후 "다음" 버튼 활성화 + + [프로세스 시간] + - 트렌드 분석 + 추천 생성: 10초 이내 + - 진행 상황 표시 (로딩 인디케이터) + + [다음 단계] + - 이벤트 선택 후 콘텐츠 생성 화면으로 이동 + +- M/34 + +- 기술 태스크 + - AI 트렌드 분석 API + - 빅데이터 분석: 과거 성공 이벤트, 업종별 성공률, 지역 특성, 시즌 패턴 + - 트렌드 리포트 생성: JSON 형태 반환 + - 분석 완료 시간: 5초 이내 + - AI 이벤트 추천 API + - Claude API / GPT-4 API 연동 + - 기획안 생성 로직: + - 경품 추천 (예산 대비 매력도, 고객 선호도) + - 참여 방법 설계 (난이도별 차별화) + - 홍보 문구 생성 + - 3가지 옵션 차별화 생성 + - 예상 성과 계산 (참여자 수, 비용, ROI) + - 생성 완료 시간: 5초 이내 + - 프론트엔드 통합 + - 트렌드 분석 결과 표시 + - 3가지 추천 카드 UI + - 실시간 제목/경품 편집 기능 + - 선택 상태 관리 + - 성능 최적화 + - 트렌드 분석과 추천 생성 병렬 처리 + - 캐싱 전략 + - 비동기 처리 + +--- + +UFR-EVENT-040: [배포채널선택] 소상공인으로서 | 나는 효과적인 이벤트 홍보를 위해 | 다중 배포 채널을 선택하고 싶다. +- 시나리오: 배포 채널 선택 + 이벤트 추천을 완료하고 콘텐츠 생성이 완료된 상황에서 | 배포 채널 선택 화면에서 원하는 채널을 선택하면 | 각 채널의 예상 노출 수가 표시된다. + + [배포 채널 옵션] + 1. 우리동네TV + - 반경 선택: 500m / 1km + - 송출 시간대: 평일 저녁 / 주말 점심 등 + - 예상 노출 수 표시 + + 2. 링고비즈 (연결음) + - 매장 전화번호 자동 연동 + - 연결음 업데이트 안내 + + 3. 지니TV 광고 + - 타겟 지역 선택 + - 노출 시간대 선택 + - 예산 입력 + - 예상 노출량 표시 + + 4. SNS + - Instagram (체크박스) + - Naver Blog (체크박스) + - Kakao Channel (체크박스) + - 예약 시간 설정 + + [채널별 비용 안내] + - 각 채널별 예상 비용 표시 + - 총 예상 비용 합계 + + [다음 단계] + - 최소 1개 이상 채널 선택 필수 + - "다음" 버튼: 최종 승인 화면으로 이동 - M/13 --- -UFR-PLAN-030: [AI이벤트상품추천] 소상공인으로서 | 나는, 예산 내에서 최적의 이벤트상품을 선정하기 위해 | AI가 타겟 고객층에 맞는 이벤트상품을 추천해주기를 원한다. -- 시나리오: AI 기반 최적 이벤트상품 추천 및 이벤트 진행 방법 선택 - 트렌드 분석 완료 후 | 예산, 타겟 고객층, 이벤트 목적, 이벤트 진행 방법을 입력하면 | Claude API가 예산 대비 매력도가 높은 이벤트상품 Top 5를 추천한다. +UFR-EVENT-050: [최종승인] 소상공인으로서 | 나는 이벤트를 배포하기 전에 | 모든 설정을 최종 확인하고 승인하고 싶다. +- 시나리오: 이벤트 최종 승인 + 배포 채널을 선택한 상황에서 | 최종 승인 화면에서 모든 정보를 확인하고 승인 버튼을 클릭하면 | 이벤트가 생성되고 배포가 시작된다. - [입력 요구사항] - - [ ] 예산 입력 (최소 10,000원 ~ 최대 5,000,000원) - - [ ] 타겟 고객층 자동 설정 (업종 기반) - - [ ] 이벤트 목적 연동 (PLAN-010에서 선택한 목적) - - [ ] 이벤트 진행 방법 선택 (필수) - - [옵션1] 추첨형: 기간 내 참여한 고객 중 이벤트가 끝나면 상품(쿠폰) 수량 안에서 당첨자 랜덤 추첨 진행 - - [옵션2] 선착순형: 선착순 쿠폰 소진 방식 + [최종 확인 정보] + 1. 이벤트 정보 + - 이벤트명 + - 이벤트 기간 + - 이벤트 목적 - [AI 이벤트상품 추천 처리] - - [ ] Claude API 연동 - - [ ] 프롬프트: 예산, 타겟 고객층, 이벤트 목적, 이벤트 진행 방법, 업종 정보 포함 - - [ ] 예산 대비 매력도 최대화 알고리즘 적용 - - [ ] 타겟 고객 선호도 분석 - - [ ] 이벤트 진행 방법에 따른 이벤트상품 수량 제안 + 2. 경품 정보 + - 경품명 + - 경품 수량 - [추천 결과 제공] - - [ ] 이벤트상품 목록 Top 5 생성 - - [ ] 각 이벤트상품별 예상 효과 표시 (참여율 예상) - - [ ] 예산 범위 내 이벤트상품 필터링 - - [ ] 소상공인이 1개 선택 또는 수정 가능 + 3. 참여 방법 + - 참여 조건 요약 - [이벤트상품 수정 기능] - - [ ] 추천 이벤트상품 내용 수정 가능 (이벤트상품명, 수량, 가격) - - [ ] 직접 이벤트상품 입력 옵션 제공 - - [ ] 수정된 내용 기반 예상 효과 재계산 - - [ ] 예산 초과 시 경고 메시지 표시 + 4. 배포 채널 + - 선택한 채널 목록 + - 채널별 예상 노출 수 -- M/21 + 5. 예상 비용 및 효과 + - 총 예상 비용 + - 예상 참여자 수 + - 예상 ROI ---- + [승인 프로세스] + - "승인 및 배포" 버튼 클릭 + - 확인 다이얼로그: "이벤트를 승인하고 배포하시겠습니까?" + - 승인 시 이벤트 생성 및 콘텐츠 생성 시작 -UFR-PLAN-040: [AI참여방법설계] 소상공인으로서 | 나는, 고객 참여를 높이기 위해 | AI가 간단하면서도 재방문을 유도하는 참여 방법을 설계해주기를 원한다. -- 시나리오: AI 기반 참여 방법 설계 - 이벤트상품 선택 완료 후 | 이벤트 목적, 매장 특성, 선택 이벤트상품을 기반으로 Claude API가 분석하면 | 3가지 참여 방법 옵션이 제시된다. - - [설계 입력 데이터] - - [ ] 이벤트 목적 (PLAN-010) - - [ ] 매장 특성 (업종, 위치) - - [ ] 선택한 이벤트상품 정보 (PLAN-030) - - [AI 참여 방법 설계] - - [ ] Claude API 연동 - - [ ] 간단한 참여 방법 우선 설계 - - [ ] 재방문 유도 요소 포함 - - [ ] 바이럴 확산 장치 설계 (SNS 공유 등) - - [참여 방법 옵션 제공] - - [ ] 3가지 옵션 생성 - - 옵션 1: 가장 간단한 방법 (예: QR 코드 스캔) - - 옵션 2: 재방문 유도형 (예: 매장 방문 후 리뷰 작성) - - 옵션 3: 바이럴형 (예: SNS 공유 + 친구 태그) - - [ ] 각 옵션별 예상 참여율 표시 - - [ ] 난이도 표시 (쉬움/보통/어려움) - - [ ] 소상공인이 1개 선택 - -- M/21 - ---- - -UFR-PLAN-050: [AI홍보문구생성] 소상공인으로서 | 나는, 매력적인 홍보를 위해 | AI가 이벤트 개요에 맞는 홍보 문구를 자동으로 생성해주기를 원한다. -- 시나리오: AI 기반 홍보 문구 자동 생성 - 참여 방법 선택 완료 후 | 이벤트 개요, 이벤트상품 정보, 참여 방법을 GPT-4 AI에 전달하면 | 5개 버전의 홍보 문구와 SNS 해시태그가 생성된다. - - [생성 입력 데이터] - - [ ] 이벤트 개요 (목적, 기간) - - [ ] 이벤트상품 정보 - - [ ] 참여 방법 - - [ ] 매장 특성 - - [AI 홍보 문구 생성] - - [ ] GPT-4 API 연동 - - [ ] 프롬프트: 이벤트 정보, 타겟 고객층, 매장 특성 포함 - - [ ] 5개 버전의 홍보 문구 생성 - - [ ] 각 버전별 톤앤매너 차별화 (친근함/공식적/트렌디 등) - - [홍보 문구 결과] - - [ ] 문구 5개 버전 제공 - - [ ] SNS 해시태그 자동 생성 (5-10개) - - [ ] 플랫폼별 최적화 문구 제공 (Instagram, Blog, Kakao) - - [ ] 미리보기 기능 - - [ ] 소상공인이 1개 선택 또는 편집 가능 + [처리 결과] + - 성공: "이벤트가 생성되었습니다. 배포를 시작합니다." 메시지 + - 자동으로 대시보드로 이동 + - 배포 진행 상황 알림 - M/13 --- -UFR-PLAN-060: [이벤트기획안승인] 소상공인으로서 | 나는, 이벤트를 실행하기 위해 | 완성된 기획안을 검토하고 승인하고 싶다. -- 시나리오: 완성된 이벤트 기획안 검토 및 승인 - 모든 기획 단계 완료 후 | 완성된 기획안(목적, 이벤트상품, 참여방법, 홍보문구)을 확인하면 | 승인 버튼 클릭으로 기획안이 저장되고 콘텐츠 생성 단계로 이동한다. +UFR-EVENT-060: [이벤트상세조회] 소상공인으로서 | 나는 진행 중인 이벤트의 현황을 파악하기 위해 | 이벤트 상세 정보를 조회하고 싶다. +- 시나리오: 이벤트 상세 정보 조회 + 대시보드에서 이벤트 카드를 클릭한 상황에서 | 이벤트 상세 화면에 접근하면 | 이벤트의 모든 정보와 실시간 통계가 표시된다. - [기획안 완성 안내] ⭐ 신규 추가 - - [ ] "완벽한 이벤트 기획안이 완성되었어요!" 제목 - - [ ] "AI가 분석한 데이터를 바탕으로 최적의 이벤트를 설계했습니다" 설명 + [상세 정보 구성] + 1. 기본 정보 + - 이벤트명 + - 이벤트 기간 + - 진행 상태 + - 경품 정보 + - 참여 방법 - [AI 예상 성과] ⭐ 신규 추가 - - [ ] 예상 참여자 수 (예: 1,200명) - - [ ] 참여율 (예: 75%) - - [ ] ROI (예: 3.5배) + 2. 실시간 통계 (Analytics 서비스 연동) + - 참여자 수 + - 노출 수 + - 조회 수 + - 공유 수 - [이벤트 미리보기] ⭐ 신규 추가 - - [ ] 이벤트 제목 - - [ ] 홍보 문구 미리보기 - - [ ] 해시태그 표시 + 3. 배포 채널 현황 + - 채널별 배포 상태 + - 채널별 성과 요약 - [기획안 요약 제공] - - [ ] 🎯 이벤트 목적 (수정 버튼) - - 선택한 목적 표시 - - [ ] 📊 트렌드 분석 (수정 버튼) - - Top 트렌드 표시 - - 예상 참여율 표시 - - [ ] 🎁 이벤트 경품 (수정 버튼) - - 선택한 경품 및 유형 표시 - - [ ] 📱 참여 방법 (수정 버튼) - - 선택한 방법 및 유형 표시 - - [ ] ✍️ 홍보 문구 (수정 버튼) - - 헤드라인 표시 - - CTA 표시 + 4. 참여자 목록 + - 최근 참여자 10명 + - "전체 참여자 보기" 링크 - [승인 처리] - - [ ] "📝 임시저장" 버튼 - - [ ] "✅ 승인하고 다음으로" 버튼 - - [ ] 승인 시 이벤트 기획안 DB 저장 - - [ ] 이벤트 ID 생성 - - [ ] 콘텐츠 생성 단계(UFR-CONT-010)로 이동 + [액션 버튼] + - "효과 측정 대시보드": Analytics 대시보드로 이동 + - "이벤트 수정": 진행 중인 이벤트 수정 (제한적) + - "이벤트 종료": 예정보다 빨리 종료 - [수정 기능] - - [ ] 각 섹션별 "수정" 버튼 - - [ ] 수정 버튼 클릭 시 해당 단계로 이동 - -- M/8 +- S/13 --- -3. Content Generation 서비스 -1) 콘텐츠 자동 생성 -UFR-CONT-010: [AI이미지생성] 소상공인으로서 | 나는, 이벤트 홍보를 위해 | AI가 브랜드 컬러와 로고를 반영한 이미지 3종을 자동으로 생성해주기를 원한다. -- 시나리오: AI 기반 이미지 자동 생성 - 콘텐츠 생성 화면에서 | 이벤트 기획안 ID, 브랜드 컬러, 로고 이미지를 전달하면 | Stable Diffusion이 3가지 스타일의 이미지를 생성한다. +UFR-EVENT-070: [이벤트목록관리] 소상공인으로서 | 나는 모든 이벤트를 관리하기 위해 | 전체 이벤트 목록을 조회하고 필터링/검색하고 싶다. +- 시나리오: 전체 이벤트 목록 조회 + 대시보드에서 "전체보기" 링크를 클릭한 상황에서 | 이벤트 목록 화면에 접근하면 | 모든 이벤트가 테이블 형태로 표시된다. - [입력 요구사항] - - [ ] 이벤트 제목 (기획안에서 자동 연동) - - [ ] 이벤트상품 이미지 - - [ ] 브랜드 컬러 (HEX 코드 입력 또는 색상 선택기) - - [ ] 로고 이미지 업로드 (PNG, JPG, 최대 5MB) + [목록 표시 요구사항] + - 테이블 컬럼 + - 이벤트명 + - 이벤트 기간 + - 상태 (진행중/예정/종료) + - 참여자 수 + - ROI + - 생성일 + - 페이지네이션 (페이지당 20개) - [AI 이미지 생성] - - [ ] Stable Diffusion API 연동 - - [ ] 브랜드 컬러 자동 적용 - - [ ] 로고 자동 배치 (우측 상단 또는 중앙 하단) - - [ ] 3가지 스타일 생성 - - 심플: 미니멀 디자인 - - 화려: 풍성한 그래픽 요소 - - 트렌디: 최신 디자인 트렌드 반영 + [필터 옵션] + - 상태별 필터: 전체/진행중/예정/종료 + - 기간별 필터: 최근 1개월/3개월/6개월/1년/전체 - [생성 결과] - - [ ] 이미지 3종 제공 (각각 1080x1080 해상도) - - [ ] 미리보기 기능 - - [ ] 이미지 다운로드 가능 - - [ ] 1개 선택하여 다음 단계 진행 + [검색 기능] + - 검색창: 이벤트명 검색 + - 실시간 검색 결과 + + [정렬 옵션] + - 최신순 (기본값) + - 참여자 많은 순 + - ROI 높은 순 + + [이벤트 관리] + - 행 클릭: 이벤트 상세 화면 + - 다중 선택: 일괄 삭제 기능 + +- S/13 + +--- + +3. AI 서비스 +1) AI 분석 및 추천 +UFR-AI-010: [AI트렌드분석및이벤트추천] AI 시스템으로서 | 나는 소상공인에게 최적의 이벤트를 제안하기 위해 | 업종/지역/시즌 트렌드를 분석하고 3가지 최적화된 이벤트 기획안을 생성하고 싶다. +- 시나리오: 트렌드 분석 및 이벤트 추천 수행 + 소상공인이 이벤트 목적을 선택한 상황에서 | AI 시스템이 요청을 받으면 | 트렌드 분석과 이벤트 추천을 병렬로 수행하여 결과를 반환한다. + + [분석 데이터 소스] + - 과거 성공 이벤트 데이터 + - 업종별 이벤트 성공률 + - 지역별 고객 특성 + - 시즌별 트렌드 패턴 + + [트렌드 분석 항목] + 1. 업종 트렌드 + - 최근 3개월 성공 이벤트 유형 + - 고객 선호 경품 Top 5 + - 효과적인 참여 방법 분석 + + 2. 지역 특성 + - 해당 지역 이벤트 성공률 + - 지역 고객 연령대/성별 분포 + + 3. 시즌 특성 + - 계절별 추천 이벤트 + - 특별 시즌 (명절, 기념일) 반영 + + [이벤트 추천 로직] + 1. 경품 추천 + - 예산 대비 매력도 최대화 + - 타겟 고객 선호도 반영 + - KT 멤버십 포인트 활용 가능 여부 + + 2. 참여 방법 설계 + - 간단한 참여 방법 (저 난이도) + - 재방문 유도 요소 (중 난이도) + - 바이럴 확산 장치 (고 난이도) + + 3. 홍보 문구 생성 + - 이벤트 개요 기반 문구 5개 생성 + - SNS 해시태그 자동 생성 + + [3가지 옵션 차별화] + - 옵션 1: 저비용, 높은 참여율 중심 + - 옵션 2: 중비용, 균형잡힌 ROI + - 옵션 3: 고비용, 높은 매출 증대 효과 + + [예상 성과 계산] + - 예상 참여자 수 + - 예상 비용 + - 예상 ROI + + [결과 출력] + - 트렌드 분석 결과 JSON 형태 반환 + - 3가지 이벤트 기획안 JSON 배열 반환 + - 전체 완료 시간: 10초 이내 (병렬 처리) - M/34 ---- - -UFR-CONT-020: [AI영상제작] 소상공인으로서 | 나는, 효과적인 홍보를 위해 | AI가 선택한 이미지를 기반으로 15초 홍보 영상을 자동 제작해주기를 원한다. ⭐ 신규 추가 -- 시나리오: AI 기반 15초 홍보 영상 자동 제작 - 이미지 선택 완료 후 | 선택한 이미지, 홍보 문구, 배경음악을 전달하면 | AI 영상 제작 엔진이 15초 홍보 영상을 생성한다. - - [입력 요구사항] - - [ ] 선택한 이미지 (UFR-CONT-010에서 선택) - - [ ] 홍보 문구 (기획안에서 자동 연동) - - [ ] 배경음악 선택 (3가지 옵션 제공) - - 경쾌한 음악 - - 차분한 음악 - - 트렌디한 음악 - - [AI 영상 제작] - - [ ] AI 영상 제작 엔진 API 연동 - - [ ] 이미지 애니메이션 효과 적용 - - [ ] 텍스트 자막 자동 삽입 (홍보 문구) - - [ ] 배경음악 자동 삽입 - - [ ] 15초 길이로 자동 편집 - - [영상 생성 결과] - - [ ] 15초 영상 파일 (MP4, 1080x1920 세로형) - - [ ] 미리보기 재생 기능 - - [ ] 영상 다운로드 가능 - - [ ] 다음 단계(SNS 콘텐츠 생성)로 진행 - - [성능 요구사항] - - [ ] 영상 제작 시간: 3-5분 이내 - - [ ] 진행 상황 실시간 표시 (사용자 경험 개선) - -- M/34 +- 기술 태스크 + - AI 트렌드 분석 엔진 + - 빅데이터 분석 시스템 연동 + - 업종/지역/시즌별 데이터 집계 + - 트렌드 패턴 인식 알고리즘 + - AI 이벤트 추천 엔진 + - Claude API / GPT-4 API 연동 + - 프롬프트 엔지니어링 최적화 + - 응답 파싱 및 구조화 + - 병렬 처리 아키텍처 + - 트렌드 분석과 이벤트 추천 동시 실행 + - 결과 통합 로직 + - 성능 최적화 + - 캐싱 전략 (Redis) + - 비동기 처리 + - 응답 시간 모니터링 --- -UFR-CONT-030: [SNS콘텐츠생성] 소상공인으로서 | 나는, 다양한 SNS에 게시하기 위해 | 플랫폼별로 최적화된 콘텐츠를 자동으로 생성해주기를 원한다. -- 시나리오: SNS 플랫폼별 최적화 콘텐츠 생성 - 이미지 및 영상 생성 완료 후 | Instagram, Naver Blog, Kakao Channel을 선택하면 | 각 SNS 플랫폼에 최적화된 해상도와 형식의 콘텐츠가 생성된다. +4. Content 서비스 +1) 콘텐츠 생성 +UFR-CONT-010: [SNS이미지생성] 소상공인으로서 | 나는 SNS에 게시할 이벤트 이미지를 쉽게 만들기 위해 | AI가 자동으로 3가지 스타일의 이미지를 생성하기를 원한다. +- 시나리오: SNS 이미지 자동 생성 + 이벤트 추천을 완료한 상황에서 | 콘텐츠 생성 화면에 접근하면 | AI가 3가지 스타일의 SNS 이미지를 자동 생성한다. - [SNS 플랫폼 선택] - - [ ] Instagram (선택) - - [ ] Naver Blog (선택) - - [ ] Kakao Channel (선택) - - [ ] 최소 1개 이상 플랫폼 선택 필수 + [이미지 생성 입력] + - 이벤트 제목 + - 경품 정보 + - 브랜드 컬러 (프로필에서 가져옴) + - 로고 이미지 (업로드된 경우) + + [3가지 스타일] + 1. 심플 스타일 + - 깔끔한 디자인 + - 텍스트 중심 + - 읽기 쉬운 구성 + + 2. 화려한 스타일 + - 눈에 띄는 디자인 + - 이미지 강조 + - 풍부한 색상 + + 3. 트렌디 스타일 + - 최신 트렌드 반영 + - SNS 최적화 + - MZ세대 타겟 [플랫폼별 최적화] - - [ ] Instagram: 1080x1080 (정사각형) - - [ ] Naver Blog: 800x600 (가로형) - - [ ] Kakao Channel: 800x800 (정사각형) + - Instagram: 1080x1080 + - Naver Blog: 800x600 + - Kakao Channel: 800x800 - [콘텐츠 생성] - - [ ] 선택한 이미지를 플랫폼별 해상도로 자동 조정 - - [ ] 해시태그 자동 삽입 (기획안의 해시태그 활용) - - [ ] 플랫폼별 텍스트 최적화 (글자 수 제한 고려) + [생성 프로세스] + - 생성 진행 표시 (로딩 인디케이터) + - 예상 소요 시간: 30초 이내 + - 생성 완료 시 미리보기 제공 - [생성 결과] - - [ ] 플랫폼별 최적화 이미지 파일 - - [ ] 각 플랫폼용 게시 텍스트 - - [ ] 미리보기 기능 - - [ ] 일괄 다운로드 가능 (ZIP 파일) + [이미지 선택] + - 3가지 중 1개 선택 가능 + - 또는 "다시 생성" 옵션 (최대 3회) - M/21 --- -UFR-CONT-040: [QR포스터생성] 소상공인으로서 | 나는, 오프라인 홍보를 위해 | QR 코드가 포함된 인쇄용 포스터를 생성하고 싶다. -- 시나리오: 콘텐츠 생성 후 QR 코드 포스터 생성 여부 선택 - 콘텐츠 생성 완료 후 | QR 포스터 생성 여부를 묻는 화면에서 "생성" 선택 시 | QR 연결 URL과 포스터 크기를 입력하면 | QR 코드가 포함된 인쇄용 포스터 PDF가 생성된다. - - [QR 포스터 생성 여부 선택] - - [ ] "QR 포스터 생성" 선택 시: QR 포스터 생성 화면으로 이동 - - [ ] "생성 안 함" 선택 시: 콘텐츠 편집 단계(UFR-CONT-050)로 바로 이동 - - [입력 요구사항] (QR 포스터 생성 선택 시) - - [ ] QR 연결 URL (이벤트 참여 페이지 URL) - - [ ] 포스터 크기 선택 (A4 또는 A3) - - [QR 포스터 생성] - - [ ] QR 코드 생성 API 연동 - - [ ] 선택한 이미지를 배경으로 사용 - - [ ] QR 코드 배치 (하단 중앙) - - [ ] 이벤트 정보 텍스트 삽입 (제목, 기간, 이벤트상품) - - [ ] 인쇄 최적화 (300dpi 이상) - - [생성 결과] - - [ ] A4 포스터 PDF - - [ ] A3 포스터 PDF (선택 시) - - [ ] QR 코드 단독 이미지 (PNG) - - [ ] 다운로드 가능 - -- M/8 - ---- - -UFR-CONT-050: [콘텐츠편집] 소상공인으로서 | 나는, 콘텐츠를 개인화하기 위해 | 생성된 콘텐츠를 수정하고 싶다. +UFR-CONT-020: [콘텐츠편집] 소상공인으로서 | 나는 생성된 이미지를 내 스타일에 맞게 조정하기 위해 | 간단한 편집 기능을 사용하고 싶다. - 시나리오: 생성된 콘텐츠 편집 - 전체 콘텐츠 미리보기 화면에서 | 수정이 필요한 콘텐츠를 선택하면 | 간단한 편집 도구로 수정할 수 있다. + SNS 이미지가 생성된 상황에서 | 편집 화면에서 텍스트나 색상을 수정하면 | 실시간으로 미리보기가 업데이트된다. [편집 가능 항목] - - [ ] 이미지: 텍스트 수정, 색상 조정 - - [ ] 영상: 자막 수정, 배경음악 변경 ⭐ 신규 추가 - - [ ] SNS 콘텐츠: 게시 텍스트 편집 - - [ ] QR 포스터: 텍스트 수정, 레이아웃 조정 (생성한 경우) + - 텍스트 수정 + - 제목 텍스트 + - 경품 정보 텍스트 + - 참여 안내 텍스트 + - 색상 조정 + - 배경색 + - 텍스트 색상 + - 강조 색상 + - 로고 위치 + - 위치 이동 + - 크기 조절 - [편집 도구] - - [ ] 텍스트 편집기 (폰트, 크기, 색상 변경) - - [ ] 색상 선택기 - - [ ] 레이아웃 템플릿 변경 - - [ ] 미리보기 실시간 반영 + [편집 제약사항] + - 레이아웃 변경 불가 + - 이미지 교체 불가 (다시 생성으로만 가능) - [편집 완료] - - [ ] 저장 버튼으로 수정사항 적용 - - [ ] 편집 이력 관리 (최대 3개 버전) - - [ ] 원본으로 되돌리기 가능 + [실시간 미리보기] + - 수정사항 즉시 반영 + - 플랫폼별 미리보기 전환 가능 + + [저장 및 완료] + - "저장" 버튼: 편집 내용 저장 + - "완료" 버튼: 배포 채널 선택 화면으로 이동 - S/13 --- -UFR-CONT-060: [콘텐츠최종승인] 소상공인으로서 | 나는, 배포 전에 | 완성된 콘텐츠를 검토하고 승인하고 싶다. -- 시나리오: 완성된 콘텐츠 최종 승인 - 모든 콘텐츠 생성 완료 후 | 전체 콘텐츠 미리보기를 확인하면 | 승인 버튼으로 콘텐츠를 저장하고 배포 단계로 이동한다. +5. Distribution 서비스 +1) 배포 관리 +UFR-DIST-010: [다중채널배포] 소상공인으로서 | 나는 여러 채널에 동시에 이벤트를 홍보하기 위해 | 원클릭으로 다중 채널 배포를 실행하고 싶다. +- 시나리오: 다중 채널 동시 배포 + 최종 승인이 완료된 상황에서 | Distribution 서비스가 배포 요청을 받으면 | 선택된 모든 채널에 동시 배포를 시작한다. - [콘텐츠 미리보기] - - [ ] 이미지 3종 - - [ ] 영상 (15초) ⭐ 신규 추가 - - [ ] SNS 콘텐츠 (플랫폼별) - - [ ] QR 포스터 (생성한 경우) + [배포 채널 처리] + 1. 우리동네TV + - 우리동네TV API 연동 + - 15초 영상 업로드 (Content 서비스에서 생성된 이미지 활용) + - 송출 시간대 및 반경 설정 전달 + - 배포 완료 시 배포 ID 수신 - [승인 처리] - - [ ] 승인 버튼 클릭 시 콘텐츠 DB 저장 - - [ ] 콘텐츠 ID 생성 - - [ ] 배포 단계(UFR-DIST-010)로 이동 + 2. 링고비즈 (연결음) + - 링고비즈 API 연동 + - 매장 전화번호로 연결음 업데이트 + - 업데이트 완료 시각 수신 - [성능 기준] - - [ ] 전체 콘텐츠 생성 5-8분 이내 완료 (영상 포함) ⭐ 업데이트 + 3. 지니TV 광고 + - 지니TV 광고 API 연동 + - 타겟 지역, 노출 시간대, 예산 정보 전달 + - 광고 ID 및 노출 스케줄 수신 -- M/3 + 4. SNS 자동 포스팅 + - Instagram, Naver Blog, Kakao Channel 병렬 처리 + - 플랫폼별 최적화된 이미지 사용 + - 예약 시간 설정 반영 + - 각 플랫폼 포스팅 완료 확인 ---- + [배포 진행 상황] + - 실시간 진행 상황 알림 + - 채널별 배포 상태 표시 + - 예상 완료 시간: 1분 이내 -4. Distribution 서비스 -1) 다중 채널 배포 -UFR-DIST-010: [다중채널배포설정] 소상공인으로서 | 나는, 이벤트를 효과적으로 홍보하기 위해 | 여러 채널에 한 번에 배포할 수 있기를 원한다. -- 시나리오: 배포 채널 선택 및 설정 - 배포 화면에서 | 원하는 배포 채널을 선택하고 배포 일시를 설정하면 | 선택한 채널 목록이 저장되고 각 채널별 배포가 시작된다. + [배포 실패 처리] + - 채널별 독립적 처리 (하나 실패해도 다른 채널 계속 진행) + - 실패 시 자동 재시도 (최대 3회) + - 최종 실패 시 소상공인에게 알림 - [배포 진행 단계 표시] ⭐ 신규 추가 - - [ ] "배포 1/3: 채널 선택" 진행 상태 표시 - - [ ] "선택된 채널: N개 채널" 요약 정보 표시 - - [배포 채널 선택 - KT 채널] ⭐ 섹션 구분 명확화 - - [ ] "KT 채널" 섹션 제목 - - [ ] 우리동네TV (추천 뱃지) (선택) - - "지역 주변 노출" 설명 - - "설정 ›" 버튼 - - [ ] 링고비즈 연결음 (선택) - - "매장 전화 연결음" 설명 - - "설정 ›" 버튼 - - [ ] 지니TV 광고 (선택) - - "TV 광고 송출" 설명 - - "설정 ›" 버튼 - - [배포 채널 선택 - SNS 채널] ⭐ 섹션 구분 명확화 - - [ ] "SNS 채널" 섹션 제목 - - [ ] Instagram (필수 뱃지) (선택) - - "인스타그램 게시물" 설명 - - 계정 연동 상태 표시 ("✓ 계정 연동됨" 또는 "계정 연동 필요") - - 연동되지 않은 경우 "계정 연동하기" 버튼 - - [ ] Naver Blog (선택) - - "네이버 블로그" 설명 - - 계정 연동 상태 표시 - - 연동되지 않은 경우 "계정 연동하기" 버튼 - - [ ] Kakao Channel (선택) - - "카카오톡 채널" 설명 - - 계정 연동 상태 표시 - - 연동되지 않은 경우 "계정 연동하기" 버튼 - - [ ] 최소 1개 이상 채널 선택 필수 - - [배포 시간 설정] ⭐ 섹션 추가 - - [ ] "배포 시간" 섹션 제목 - - [ ] 즉시 배포 (선택) - - "지금 바로 선택한 채널에 배포" 설명 - - [ ] 예약 배포 (선택) - - "원하는 날짜와 시간에 배포" 설명 - - 날짜 및 시간 선택 UI - - [배포 시작] - - [ ] "임시저장" 버튼 - - [ ] "다음 (배포 시작)" 버튼 - - [ ] 선택한 채널 목록 저장 - - [ ] 배포 요청 이벤트 발생 - - [ ] 각 채널별 병렬 배포 시작 - -- M/13 - ---- - -UFR-DIST-020: [우리동네TV배포] 소상공인으로서 | 나는, 주변 지역 고객에게 도달하기 위해 | 우리동네TV에 반경과 시간대를 설정하여 배포하고 싶다. -- 시나리오: 우리동네TV 배포 설정 및 송출 - 배포 채널로 우리동네TV 선택 시 | 반경(500m/1km)과 송출 시간대를 설정하면 | 15초 영상이 해당 지역에 송출된다. - - [배포 설정] - - [ ] 반경 선택 (500m 또는 1km) - - [ ] 송출 시간대 선택 (평일 저녁 6-9시, 주말 점심 12-2시 등) - - [ ] 15초 영상 파일 전달 (CONT-020) - - [우리동네TV API 연동] - - [ ] 우리동네TV API 호출 - - [ ] 매장 위치 기반 타겟 지역 설정 - - [ ] 송출 시간대 예약 - - [ ] 영상 파일 업로드 - - [배포 결과] - - [ ] 배포 ID 발급 - - [ ] 예상 노출 수 제공 - - [ ] 송출 스케줄 확인 가능 + [배포 완료 처리] + - 배포 이력 DB 저장 + - 배포 채널 목록 및 예상 도달 수 반환 + - 소상공인에게 배포 완료 알림 (앱 푸시/이메일) - M/21 --- -UFR-DIST-030: [링고비즈연결음업데이트] 소상공인으로서 | 나는, 전화하는 고객에게도 홍보하기 위해 | 매장 전화번호의 연결음을 이벤트 내용으로 자동 업데이트하고 싶다. -- 시나리오: 링고비즈 연결음 업데이트 - 배포 채널로 링고비즈 선택 시 | 매장 전화번호와 연결음 파일을 전달하면 | 연결음이 자동으로 업데이트된다. +UFR-DIST-020: [배포상태모니터링] 소상공인으로서 | 나는 배포 진행 상황을 실시간으로 파악하기 위해 | 배포 상태를 모니터링하고 싶다. +- 시나리오: 배포 상태 실시간 확인 + 배포가 시작된 상황에서 | 이벤트 상세 화면의 배포 상태 섹션을 확인하면 | 채널별 배포 진행 상황이 실시간으로 표시된다. - [연결음 생성] - - [ ] 홍보 문구 기반 연결음 스크립트 자동 생성 - - [ ] 네이버 클로바(Clova) TTS 엔진을 이용한 음성 파일 생성 - - [ ] 음성 톤 선택 가능 (친근한 톤, 공식적인 톤, 활기찬 톤 등) - - [ ] 또는 사전 녹음 파일 업로드 (MP3, WAV 형식) + [배포 상태 표시] + - 채널별 상태 + - 대기중: 회색 + - 진행중: 파란색 (진행률 표시) + - 완료: 초록색 (체크 표시) + - 실패: 빨간색 (오류 메시지) - [네이버 클로바 TTS 연동] - - [ ] 네이버 클로바 TTS API 연동 - - [ ] 음성 합성 옵션 설정 (음색, 속도, 톤) - - [ ] 고품질 음성 파일 생성 (16kHz 이상) - - [ ] 생성된 음성 파일 미리듣기 기능 + [배포 정보] + - 우리동네TV: 배포 ID, 예상 노출 수 + - 링고비즈: 업데이트 완료 시각 + - 지니TV: 광고 ID, 노출 스케줄 + - SNS: 포스팅 URL 링크 - [링고비즈 API 연동] - - [ ] 링고비즈 API 호출 - - [ ] 매장 전화번호 전달 (USER 서비스에서 조회) - - [ ] 연결음 파일 업로드 - - [ ] 업데이트 요청 - - [업데이트 결과] - - [ ] 업데이트 완료 시각 확인 - - [ ] 연결음 미리듣기 가능 - - [ ] 롤백 기능 (이전 연결음으로 복구) + [재시도/취소] + - 실패한 채널: "재시도" 버튼 + - 진행중인 배포: "취소" 버튼 (일부 채널만 가능) - S/13 --- -UFR-DIST-040: [지니TV광고배포] 소상공인으로서 | 나는, 가정의 TV를 통해 홍보하기 위해 | 지니TV에 예산과 타겟 지역을 설정하여 광고를 배포하고 싶다. -- 시나리오: 지니TV 광고 예약 및 송출 - 배포 채널로 지니TV 선택 시 | 타겟 지역, 노출 시간대, 예산을 설정하면 | 지니TV에 광고가 예약되고 노출된다. - - [광고 설정] - - [ ] 타겟 지역 선택 (매장 주변 반경 1km, 3km, 5km) - - [ ] 노출 시간대 선택 (아침/점심/저녁/심야) - - [ ] 예산 입력 (최소 100,000원) - - [지니TV API 연동] - - [ ] 지니TV 광고 플랫폼 API 호출 - - [ ] 타겟 지역 설정 - - [ ] 노출 시간대 및 빈도 설정 - - [ ] 예산 기반 노출량 자동 계산 - - [ ] 영상 파일 업로드 (15초 영상) - - [광고 예약 결과] - - [ ] 광고 ID 발급 - - [ ] 노출 스케줄 확인 - - [ ] 예상 노출 횟수 및 도달 가구 수 제공 - -- M/21 - ---- - -UFR-DIST-050: [SNS자동포스팅] 소상공인으로서 | 나는, 온라인 고객에게 도달하기 위해 | Instagram, Naver Blog, Kakao Channel에 자동으로 포스팅하고 싶다. -- 시나리오: SNS 플랫폼 자동 포스팅 - 배포 채널로 SNS 선택 시 | 플랫폼별 계정 연동 후 예약 시간을 설정하면 | 각 SNS에 자동으로 포스팅된다. - - [계정 연동] - - [ ] Instagram 계정 OAuth 연동 - - [ ] Naver Blog 계정 OAuth 연동 - - [ ] Kakao Channel 계정 OAuth 연동 - - [ ] 연동 상태 확인 - - [포스팅 설정] - - [ ] 즉시 포스팅 또는 예약 포스팅 - - [ ] 예약 시간 설정 (플랫폼별 개별 설정 가능) - - [ ] 게시물 미리보기 - - [SNS API 연동 (병렬 처리)] - - [ ] Instagram API 호출 - - [ ] Naver Blog API 호출 - - [ ] Kakao Channel API 호출 - - [ ] 플랫폼별 최적화 콘텐츠 및 텍스트 전달 - - [포스팅 결과] - - [ ] 각 플랫폼별 포스팅 완료 확인 - - [ ] 게시물 URL 제공 - - [ ] 포스팅 실패 시 재시도 (최대 3회) - -- M/13 - ---- - -UFR-DIST-060: [오프라인자료다운로드] 소상공인으로서 | 나는, 매장 내 홍보를 위해 | QR 포스터와 인쇄용 PDF를 다운로드하고 싶다. -- 시나리오: 오프라인 홍보 자료 다운로드 - 배포 완료 화면에서 | 오프라인 자료 다운로드 버튼을 클릭하면 | QR 포스터와 인쇄용 PDF가 다운로드된다. - - [다운로드 자료] - - [ ] QR 코드 포스터 (A4 PDF) - - [ ] QR 코드 포스터 (A3 PDF) - - [ ] QR 코드 단독 이미지 (PNG) - - [ ] 인쇄용 이미지 (고해상도 300dpi 이상) - - [다운로드 기능] - - [ ] 개별 파일 다운로드 - - [ ] 전체 파일 일괄 다운로드 (ZIP) - - [ ] 다운로드 이력 관리 - - [성능 기준] - - [ ] 전체 배포 과정 1분 이내 완료 - -- S/5 - ---- - -5. Participation 서비스 -1) 이벤트 참여 관리 -UFR-PART-010: [이벤트참여신청] 고객으로서 | 나는, 이벤트상품을 받기 위해 | 간편하게 이벤트에 참여하고 싶다. -- 시나리오: 고객의 이벤트 참여 신청 - 고객이 이벤트를 발견한 상황에서 | 이름, 전화번호, 참여 경로를 입력하고 참여 버튼을 클릭하면 | 참여 정보가 접수되고 응모번호가 발급된다. +6. Participation 서비스 +1) 참여자 관리 +UFR-PART-010: [이벤트참여] 고객으로서 | 나는 간편하게 이벤트에 참여하기 위해 | 최소한의 정보만 입력하고 싶다. +- 시나리오: 고객 이벤트 참여 + 고객이 이벤트를 발견한 상황에서 | 이벤트 참여 화면에서 필수 정보를 입력하고 참여 버튼을 클릭하면 | 참여 접수가 완료된다. [이벤트 발견 경로] - - [ ] 우리동네TV - - [ ] 지니TV - - [ ] 링고 비즈 (연결음) - - [ ] SNS (Instagram, Blog, Kakao) - - [ ] QR 코드 스캔 + - 우리동네TV + - SNS (Instagram, Blog, Kakao) + - 매장 방문 (링고비즈 연결음 안내) [참여 정보 입력] - - [ ] 고객명 입력 (필수) - - [ ] 전화번호 입력 (필수, 010-XXXX-XXXX 형식) - - [ ] 참여 경로 자동 추적 또는 선택 - - [ ] 개인정보 수집 동의 체크 (필수) + - 이름: 필수 (2자 이상) + - 전화번호: 필수 (휴대폰 번호) + - 참여 경로: 자동 감지 또는 선택 - [참여 신청 처리] - - [ ] 입력 정보 검증 (형식 확인) - - [ ] 중복 참여 체크 (전화번호 기준) - - [ ] 참여 데이터 저장 - - [참여 완료] - - [ ] 응모번호 자동 발급 - - [ ] 참여 완료 메시지 표시 - - [ ] 당첨 발표일 안내 - - [Policy] + [중복 참여 체크] + - 전화번호 기반 중복 확인 - 1인 1회 참여 제한 - - 개인정보 보호 규정 준수 + - 중복 시: "이미 참여하신 이벤트입니다" 안내 -- M/8 + [참여 접수 완료] + - 응모 번호 발급 + - 당첨 발표일 안내 + - 참여 완료 화면 표시 ---- - -UFR-PART-020: [중복참여방지] 시스템으로서 | 나는, 공정한 이벤트 운영을 위해 | 1인 1회 참여만 허용하고 싶다. -- 시나리오: 중복 참여 방지 및 차단 - 고객이 참여 신청 시 | 전화번호 기반으로 중복 여부를 확인하면 | 중복 참여는 차단하고 정상 참여만 접수한다. - - [중복 체크 처리] - - [ ] 참여자 DB에서 전화번호 조회 - - [ ] 동일 이벤트 ID에 대한 중복 여부 확인 - - [ ] 매장 방문 고객 여부 확인 (가산점 부여용) - - [중복 참여 차단] - - [ ] 중복 참여 시 "이미 참여하셨습니다" 메시지 - - [ ] 이전 참여 일시 표시 - - [ ] 재참여 불가 안내 - - [정상 참여 처리] - - [ ] 중복 없음 확인 - - [ ] 참여 정보 DB 저장 - - [ ] 참여 ID 생성 - - [ ] 참여 일시 기록 - - [ ] 참여 채널 기록 - - [ ] 매장 방문 고객인 경우 가산점 부여 플래그 - - [Policy] - - 전화번호 기반 중복 체크 - - 매장 방문 고객 가산점 부여 - -- M/8 - ---- - -UFR-PART-030: [자동당첨자추첨] 소상공인으로서 | 나는, 수동 관리 부담을 줄이기 위해 | 추첨형 이벤트 종료 시 자동으로 당첨자가 추첨되기를 원한다. -- 시나리오: 추첨형 이벤트 종료 후 자동 추첨 - 추첨형 이벤트 종료 시각 도래 시 | 시스템이 자동으로 참여자 목록을 조회하면 | 공정한 알고리즘으로 당첨자를 추첨하고 명단을 생성한다. - - [추첨 시작 트리거] - - [ ] 이벤트 진행 방법 확인 (UFR-PLAN-030에서 선택한 방법) - - [ ] 추첨형 이벤트: 종료 시각 자동 감지하여 추첨 시작 - - [ ] 선착순형 이벤트: 추첨 진행하지 않음 (쿠폰 소진 시 자동 종료) - - [ ] 스케줄러에 의한 자동 추첨 시작 (추첨형만) - - [ ] 또는 소상공인의 수동 추첨 요청 (추첨형만) - - [당첨자 추첨 처리] (추첨형 이벤트만) - - [ ] 참여자 목록 조회 (이벤트 ID 기준) - - [ ] 중복 참여자 제외 - - [ ] 매장 방문 고객 가산점 적용 - - [ ] 난수 기반 무작위 추첨 알고리즘 - - [ ] 당첨 인원만큼 추첨 (기획안에 정의된 인원) - - [선착순형 이벤트 처리] - - [ ] 쿠폰 소진 시 자동으로 이벤트 종료 - - [ ] 참여 순서대로 당첨자 자동 확정 - - [ ] 추첨 과정 없음 - - [추첨 결과] (추첨형 이벤트) - - [ ] 당첨자 목록 생성 - - [ ] 추첨 과정 로그 기록 (감사 추적용) - - [ ] 당첨자 정보 DB 저장 - - [ ] 소상공인에게 당첨자 명단 제공 + [개인정보 처리] + - 개인정보 수집/이용 동의 필수 + - 마케팅 활용 동의 선택 - M/13 --- -UFR-PART-040: [당첨알림발송] 고객으로서 | 나는, 당첨 여부를 빠르게 확인하기 위해 | SMS나 카카오 알림톡으로 당첨 알림을 받고 싶다. -- 시나리오: 당첨자에게 당첨 알림 발송 - 당첨자 추첨 완료 후 | 시스템이 당첨자 목록과 이벤트상품 정보를 전달하면 | SMS 또는 카카오 알림톡이 자동 발송된다. +UFR-PART-020: [참여자목록조회] 소상공인으로서 | 나는 누가 참여했는지 파악하기 위해 | 참여자 목록을 조회하고 싶다. +- 시나리오: 참여자 목록 확인 + 이벤트 상세 화면에서 "참여자 목록" 탭을 클릭한 상황에서 | 참여자 목록 화면에 접근하면 | 모든 참여자 정보가 테이블로 표시된다. - [알림 발송 준비] - - [ ] 당첨자 목록 조회 - - [ ] 이벤트상품 정보 조회 - - [ ] 매장 정보 조회 (수령 장소 안내용) + [목록 표시] + - 테이블 컬럼 + - 번호 (응모 번호) + - 이름 + - 전화번호 (일부 마스킹) + - 참여 경로 + - 참여 일시 + - 당첨 여부 + - 페이지네이션 - [SMS/알림톡 발송] - - [ ] SMS/카카오 알림톡 시스템 API 연동 - - [ ] 당첨 축하 메시지 생성 - - [ ] 이벤트상품 정보 포함 - - [ ] 이벤트상품 수령 방법 안내 - - [ ] 수령 기한 안내 (예: 발표일로부터 7일 이내) - - [ ] 매장 연락처 포함 + [필터 옵션] + - 참여 경로별 필터 + - 당첨 여부 필터 (전체/당첨/미당첨) - [발송 결과] - - [ ] 발송 성공/실패 확인 - - [ ] 발송 이력 저장 - - [ ] 실패 시 재발송 시도 (최대 3회) + [검색 기능] + - 이름 또는 전화번호로 검색 - [미당첨자 처리] - - [ ] 미당첨자에게는 별도 알림 미발송 - - [ ] 또는 참여 감사 메시지 발송 (옵션) - -- M/8 - ---- - -UFR-PART-050: [당첨자명단관리] 소상공인으로서 | 나는, 이벤트상품을 지급하기 위해 | 당첨자 명단을 확인하고 관리하고 싶다. -- 시나리오: 당첨자 명단 조회 및 관리 - 당첨자 추첨 완료 후 | 소상공인이 당첨자 관리 화면에 접근하면 | 당첨자 명단과 이벤트상품 지급 상태를 확인하고 업데이트할 수 있다. - - [당첨자 명단 조회] - - [ ] 이벤트별 당첨자 목록 표시 - - [ ] 당첨자 정보: 이름, 전화번호, 응모번호, 참여일시 - - [ ] 이벤트상품 정보 표시 - - [ ] 이벤트상품 지급 상태 (미지급/지급완료) - - [이벤트상품 지급 관리] - - [ ] 이벤트상품 지급 상태 업데이트 (체크박스) - - [ ] 지급 일시 자동 기록 - - [ ] 지급 완료 시 당첨자에게 확인 문자 발송 (옵션) - - [데이터 다운로드] - - [ ] 당첨자 명단 엑셀 다운로드 - - [ ] 참여자 전체 명단 다운로드 (분석용) - -- M/5 - ---- - -6. Analytics 서비스 -1) 효과 측정 및 분석 -UFR-ANAL-010: [실시간대시보드조회] 소상공인으로서 | 나는, 이벤트 성과를 즉시 파악하기 위해 | 실시간으로 참여자 수, 노출 수, 전환율을 확인하고 싶다. -- 시나리오: 실시간 효과 측정 대시보드 조회 - 이벤트 배포 완료 후 | 효과 측정 대시보드에 접근하면 | 5분 간격으로 업데이트되는 실시간 데이터를 확인할 수 있다. - - [기간 필터] ⭐ 신규 추가 - - [ ] "오늘" 버튼 - - [ ] "최근 7일" 버튼 - - [ ] "최근 30일" 버튼 - - [ ] "전체" 버튼 - - [대시보드 주요 지표] - - [ ] 👥 총 참여자 수 (실시간) - - 전일 대비 증감율 표시 (예: +23.3%) - - [ ] 🎁 당첨자 수 - - 전일 대비 증감율 표시 - - [ ] 📊 전환율 (%) ⭐ 명칭 변경 (매장 방문자 증가율 → 전환율) - - 전일 대비 증감율 표시 - - [ ] 📈 조회수 ⭐ 신규 추가 - - 전일 대비 증감율 표시 - - [채널별 성과 섹션] ⭐ 신규 추가 - - [ ] "채널별 성과" 제목 - - [ ] "상세보기 →" 링크 (UFR-ANAL-020으로 이동) - - [ ] 채널별 참여자 수 막대 그래프 - - 📷 Instagram: N명 - - 📺 우리동네TV: N명 - - 📝 Naver 블로그: N명 - - 💬 KakaoTalk: N명 - - [최근 활동 섹션] ⭐ 신규 추가 - - [ ] "최근 활동" 제목 - - [ ] 활동 타임라인 (최대 5개) - - 🎉 새로운 당첨자 선정 알림 (시간 표시) - - 👤 새로운 참여자 알림 (채널별) - - 📊 조회수 돌파 알림 - - 💰 경품 지급 완료 알림 - - 📱 당첨 알림 발송 알림 - - [빠른 이동 버튼] ⭐ 신규 추가 - - [ ] 🎯 당첨자 관리 (UFR-PART-050) - - [ ] 📊 성과 분석 (UFR-ANAL-020) - - [ ] 💰 ROI 분석 (UFR-ANAL-030) - - [ ] 📄 리포트 (UFR-ANAL-040) - - [실시간 데이터 수집] - - [ ] 5분 간격 자동 업데이트 - - [ ] KT 채널 데이터 수집 API 연동 (우리동네TV, 지니TV) - - [ ] POS 시스템 연동 (매장 방문, 매출 데이터) - - [ ] SNS 플랫폼 데이터 수집 (Instagram, Naver Blog, Kakao Channel) - - [대시보드 UI] - - [ ] 그래프 시각화 (시간대별 추이) - - [ ] 숫자 대형 표시 (핵심 지표) - - [ ] 새로고침 버튼 - - [ ] 자동 새로고침 옵션 - -- M/21 - ---- - -UFR-ANAL-020: [채널별성과분석] 소상공인으로서 | 나는, 효과적인 채널을 파악하기 위해 | 우리동네TV, 지니TV, SNS 등 채널별 노출 수와 참여율을 비교하고 싶다. -- 시나리오: 채널별 성과 비교 분석 - 효과 측정 대시보드에서 | 채널별 분석 탭을 선택하면 | 각 채널의 노출 수, 참여율, 전환율이 비교되어 표시된다. - - [채널별 데이터 수집] - - [ ] 우리동네TV: 노출 수, 도달률 - - [ ] 지니TV: 노출 수, 도달 가구 수 - - [ ] Instagram: 조회 수, 좋아요, 저장 수, 공유 수 (Instagram Graph API 활용) - - [ ] Naver Blog: 방문자 수, 조회 수 - - [ ] Kakao Channel: 조회 수, 클릭 수 (Kakao API 활용) - - [ ] QR 코드: 스캔 횟수 (자체 QR 코드 추적 시스템) - - [성과 지표 계산] - - [ ] 노출 수 (Impression) - - [ ] 참여율 (Participation Rate = 참여 수 / 노출 수) - - [ ] 전환율 (Conversion Rate = 매장 방문 / 참여 수) - - [ ] 채널별 비용 대비 효과 (Cost per Acquisition) - - [비교 분석 시각화] - - [ ] 채널별 막대 그래프 - - [ ] 파이 차트 (참여 비율) - - [ ] 효율성 순위표 - - [ ] 가장 효과적인 채널 강조 표시 - -- M/13 - ---- - -UFR-ANAL-030: [광고수익률자동계산] 소상공인으로서 | 나는, 투자 대비 효과를 명확히 알기 위해 | 총비용 대비 수익(광고 수익률)이 자동으로 계산되기를 원한다. -- 시나리오: 광고 수익률 자동 계산 및 분석 - 이벤트 진행 중 또는 종료 후 | 효과 측정 대시보드에서 | 투자 비용 대비 수익이 자동으로 계산되어 표시된다. - - [비용 데이터 수집] - - [ ] 이벤트상품 비용 (기획안에서 자동 조회) - - [ ] 플랫폼 이용 비용 - - 우리동네TV 광고비 - - 지니TV 광고비 - - SNS 광고비 (있는 경우) - - [ ] 총 투자 비용 계산 - - [수익 데이터 수집] - - [ ] 매출 증가액 (이벤트 기간 매출 - 평균 매출) - - [ ] 신규 고객 수 × 예상 LTV (Lifetime Value) - - [ ] 총 수익 계산 - - [ROI 계산] - - [ ] ROI = (수익 - 비용) / 비용 × 100 - - [ ] 손익분기점 계산 - - [ ] 회수 기간 예상 - - [결과 표시] - - [ ] ROI 퍼센트 대형 표시 - - [ ] 손익 분기 달성 여부 - - [ ] 비용/수익 상세 내역 - - [ ] 그래프 시각화 - -- M/13 - ---- - -UFR-ANAL-040: [분석리포트생성] 소상공인으로서 | 나는, 이벤트 결과를 정리하기 위해 | 종합 분석 리포트를 PDF로 다운로드하고 싶다. -- 시나리오: 종합 분석 리포트 생성 및 다운로드 - 이벤트 종료 후 | 리포트 생성 버튼을 클릭하면 | 전체 성과를 요약한 PDF 리포트가 생성되어 다운로드된다. - - [리포트 포함 내용] - - [ ] 이벤트 개요 (목적, 기간, 이벤트상품) - - [ ] 참여 통계 (총 참여자 수, 채널별 참여 분포) - - [ ] 노출 통계 (채널별 노출 수, 도달률) - - [ ] 매출 분석 (매출 증가율, 객단가 변화) - - [ ] 광고 수익률 분석 (투자 대비 수익) - - [ ] 채널별 성과 비교 - - [ ] 업종 평균 대비 벤치마킹 - - [ ] 그래프 및 차트 시각화 - - [리포트 생성] - - [ ] 데이터 수집 및 집계 - - [ ] 그래프 이미지 생성 - - [ ] PDF 레이아웃 생성 - - [ ] PDF 파일 생성 - - [다운로드] - - [ ] PDF 다운로드 링크 제공 - - [ ] 파일명: "이벤트명_분석리포트_YYYYMMDD.pdf" - - [ ] 이메일 발송 옵션 + [액션] + - 개별 참여자 상세 정보 보기 - S/8 --- -7. AI Learning 서비스 -1) AI 학습 및 개선 -UFR-AIMPR-010: [AI개선안생성] 소상공인으로서 | 나는, 더 나은 이벤트를 운영하기 위해 | AI가 분석 결과를 바탕으로 구체적인 개선안을 제안해주기를 원한다. -- 시나리오: AI 기반 이벤트 개선안 생성 - 이벤트 종료 후 | 시스템이 결과 데이터를 자동 분석하면 | AI가 성공 요인과 실패 요인을 파악하여 3가지 개선안을 제시한다. +UFR-PART-030: [당첨자추첨] 소상공인으로서 | 나는 공정한 당첨자 선정을 위해 | 자동 추첨 기능을 사용하고 싶다. +- 시나리오: 당첨자 자동 추첨 + 이벤트 종료일이 도래한 상황에서 | 소상공인이 "당첨자 추첨" 버튼을 클릭하면 | 시스템이 자동으로 당첨자를 추첨한다. - [결과 데이터 분석] - - [ ] 빅데이터 분석 시스템 API 호출 - - [ ] 참여율 vs 목표 비교 - - [ ] 광고 수익률 vs 업종 평균 비교 - - [ ] 채널별 효율성 분석 - - [ ] 시간대별 참여 패턴 분석 - - [ ] 이벤트상품 매력도 평가 + [추첨 방식] + - 난수 기반 무작위 추첨 + - 매장 방문 고객 가산점 옵션 (선택 가능) + - 추첨 과정 로그 자동 기록 - [성공/실패 요인 도출] - - [ ] 성공 요인 식별 (목표 달성 항목) - - [ ] 실패 요인 식별 (목표 미달 항목) - - [ ] 개선 포인트 도출 + [당첨 인원 설정] + - 경품 수량 기반 자동 설정 + - 수동 조정 가능 - [AI 개선안 생성] - - [ ] AI 머신러닝 엔진 API 호출 - - [ ] 성공 패턴 학습 및 재활용 - - [ ] 실패 패턴 회피 로직 적용 - - [ ] 최적화 알고리즘 적용 - - [ ] 3가지 개선안 생성 - - 개선안 1: 이벤트상품 변경 (더 매력적인 이벤트상품) - - 개선안 2: 참여 방법 단순화 (참여율 향상) - - 개선안 3: 배포 채널 조정 (효율적 채널 집중) + [추첨 결과] + - 당첨자 목록 표시 + - 당첨자 정보: 이름, 전화번호, 응모번호 - [개선안 제시] - - [ ] 각 개선안별 우선순위 표시 - - [ ] 예상 효과 제공 (참여율 증가 예상치 등) - - [ ] 소상공인이 개선안 선택 또는 피드백 제공 + [재추첨] + - "재추첨" 버튼: 당첨자 재선정 (추첨 전 확인) + - 이전 추첨 이력 보관 -- M/21 +- M/13 --- -UFR-AIMPR-020: [다음이벤트아이디어제안] 소상공인으로서 | 나는, 계절과 트렌드에 맞는 이벤트를 기획하기 위해 | AI가 시즌별 성공 이벤트 아이디어를 제안해주기를 원한다. -- 시나리오: AI 기반 다음 이벤트 아이디어 제안 - 이벤트 종료 및 개선안 검토 후 | 다음 이벤트 아이디어 요청 버튼을 클릭하면 | AI가 시즌, 학습 결과, 트렌드를 반영한 이벤트 아이디어 5가지를 제안한다. +7. Analytics 서비스 +1) 효과 측정 +UFR-ANAL-010: [실시간통합대시보드] 소상공인으로서 | 나는 이벤트 성과를 한눈에 파악하기 위해 | 모든 지표가 통합된 실시간 대시보드를 보고 싶다. +- 시나리오: 통합 대시보드 조회 + 이벤트 상세 화면에서 "효과 측정 대시보드" 버튼을 클릭한 상황에서 | 통합 대시보드 화면에 접근하면 | 모든 핵심 지표가 하나의 화면에 실시간으로 표시된다. - [입력 데이터] - - [ ] 현재 시즌 (봄/여름/가을/겨울, 명절) - - [ ] 이벤트 목표 (신규고객/재방문/매출증대/인지도향상) - - [ ] 이전 이벤트 학습 결과 + [대시보드 구성] - [트렌드 데이터베이스 조회] - - [ ] 트렌드 DB API 호출 - - [ ] 계절별 성공 이벤트 조회 - - [ ] 지역 특성 반영 - - [ ] 트렌드 예측 적용 (최근 인기 이벤트 유형) + 1. 상단 요약 카드 (4개) + - 총 참여자 수 + - 현재 참여자 수 + - 목표 대비 달성률 (%) + - 총 노출 수 + - 채널별 노출 합계 + - 전일 대비 증감률 + - 예상 ROI + - 실시간 ROI 계산 + - 업종 평균 대비 비교 + - 매출 증가율 + - POS 연동 데이터 기반 + - 이벤트 전후 비교 (%) - [이벤트 아이디어 생성] - - [ ] 추천 이벤트 5가지 생성 - - [ ] 각 아이디어별 상세 설명 - - [ ] 예상 성과 제공 (참여율, ROI 예상) - - [ ] 적합한 시기 제안 + 2. 채널별 성과 분석 (차트) + - 막대 그래프: 채널별 참여자 수 + - 원 그래프: 채널별 참여 비율 + - 채널 목록: + - 우리동네TV + - 링고비즈 + - 지니TV + - Instagram + - Naver Blog + - Kakao Channel + - 각 채널별 세부 지표: + - 노출 수 + - 참여자 수 + - 전환율 (%) + - 비용 대비 효율 (CPA) - [아이디어 제시] - - [ ] 아이디어 목록 표시 - - [ ] 각 아이디어 선택 시 상세 설명 확장 - - [ ] "이 아이디어로 기획 시작" 버튼 - - [ ] 선택 시 이벤트 기획 화면(PLAN-010)으로 이동 + 3. 시간대별 참여 추이 (라인 차트) + - X축: 시간 (일별/시간별 전환 가능) + - Y축: 참여자 수 + - 실시간 업데이트 (5분 간격) + - 피크 시간대 하이라이트 -- S/13 + 4. ROI 상세 분석 (표) + - 총 비용 산출 + - 경품 비용 + - 채널별 플랫폼 비용 + - 기타 비용 + - 예상 수익 산출 + - 매출 증가액 + - 신규 고객 LTV + - ROI 계산식 표시 + - ROI = (수익 - 비용) / 비용 × 100 + - 손익분기점 표시 ---- + 5. 참여자 프로필 분석 (차트) + - 연령대별 분포 + - 성별 분포 + - 지역별 분포 + - 참여 시간대 분석 -UFR-AIMPR-030: [성공패턴학습] AI시스템으로서 | 나는, 추천 정확도를 높이기 위해 | 이벤트 결과 데이터를 학습하여 성공 패턴을 축적하고 싶다. -- 시나리오: AI 학습 데이터 자동 업데이트 - 이벤트 종료 및 분석 완료 후 | 시스템이 자동으로 학습 데이터를 저장하면 | AI 모델이 성공 패턴을 학습하여 다음 추천 정확도가 향상된다. + 6. 비교 분석 (표) + - 업종 평균과 비교 + - 참여율 + - ROI + - 전환율 + - 내 이전 이벤트와 비교 + - 성과 개선도 + - 최고/최저 기록 대비 - [학습 데이터 수집] - - [ ] 이벤트 결과 데이터 (참여율, ROI, 채널 효율성 등) - - [ ] 성공 패턴 (목표 달성 항목) - - [ ] 실패 패턴 (목표 미달 항목) - - [ ] 업종, 지역, 시즌 정보 - - [학습 데이터 저장] - - [ ] 학습 데이터 DB에 저장 - - [ ] 성공 사례 태깅 - - [ ] 실패 사례 태깅 - - [ ] 메타데이터 저장 (업종, 지역, 시즌) - - [AI 모델 학습] - - [ ] 이벤트 결과 누적 데이터 기반 학습 - - [ ] 성공률 향상 학습 - - [ ] 이벤트상품 추천 알고리즘 개선 - - [ ] 참여 방법 설계 알고리즘 개선 - - [ ] 채널 효율성 예측 모델 업데이트 - - [ ] 개인화 추천 강화 - - [학습 결과 적용] - - [ ] 다음 이벤트 기획 시 학습된 패턴 적용 - - [ ] 추천 정확도 모니터링 - - [ ] 지속적인 성능 개선 - -- M/34 - ---- - -8. 비기능 요구사항 -1) 성능 -NFR-PERF-010: [AI기획속도] 시스템으로서 | 나는, 사용자 대기 시간을 최소화하기 위해 | AI 이벤트 기획을 10초 이내에 완료하고 싶다. -- 시나리오: AI 이벤트 기획 성능 보장 - 소상공인이 이벤트 기획 시작 후 | 모든 AI 분석 및 추천 단계를 거쳐 | 10초 이내에 완성된 기획안이 제시된다. - - [성능 요구사항] - - [ ] 업종 트렌드 분석: 3초 이내 - - [ ] 경품 추천: 3초 이내 - - [ ] 참여 방법 설계: 2초 이내 - - [ ] 홍보 문구 생성: 2초 이내 - - [ ] 총 처리 시간: 10초 이내 - - [최적화 방안] - - [ ] AI API 병렬 호출 - - [ ] 응답 캐싱 (동일 조건 재사용) - - [ ] 프롬프트 최적화 - - [ ] 네트워크 지연 최소화 - -- M/21 - ---- - -NFR-PERF-020: [콘텐츠생성속도] 시스템으로서 | 나는, 효율적인 서비스를 제공하기 위해 | 이미지와 영상 콘텐츠 생성을 현실적인 시간 내에 완료하고 싶다. -- 시나리오: 콘텐츠 생성 성능 보장 - 소상공인이 콘텐츠 생성 시작 후 | 이미지 3종, 영상 1개, SNS 콘텐츠, QR 포스터까지 | 현실적인 처리 시간 내에 모든 콘텐츠가 생성된다. - - [성능 요구사항] - - [ ] 이미지 생성 (3종): 2-3분 이내 (AI 이미지 생성 특성 고려) - - [ ] 영상 제작 (15초): 3-5분 이내 (AI 영상 제작 특성 고려) ⭐ 신규 추가 - - [ ] SNS 콘텐츠 생성: 30초 이내 - - [ ] QR 포스터 생성: 20초 이내 - - [ ] 총 처리 시간: 5-8분 이내 (단계별 병렬 처리 시) ⭐ 업데이트 - - [최적화 방안] - - [ ] 이미지와 영상 병렬 생성 ⭐ 업데이트 - - [ ] GPU 가속 활용 - - [ ] 콘텐츠 캐싱 - - [ ] 진행 상황 실시간 표시 (사용자 경험 개선) - - [ ] 백그라운드 처리로 다른 작업 가능 - - [Policy] - - AI 생성 모델의 현실적인 처리 시간 반영 - - 품질과 속도의 균형 유지 - - 사용자에게 명확한 진행 상황 피드백 제공 - -- M/34 - ---- - -NFR-PERF-030: [배포속도] 시스템으로서 | 나는, 신속한 배포를 위해 | 다중 채널 배포를 1분 이내에 완료하고 싶다. -- 시나리오: 배포 성능 보장 - 소상공인이 배포 시작 버튼 클릭 후 | 모든 선택 채널에 콘텐츠가 배포되기까지 | 1분 이내에 완료된다. - - [성능 요구사항] - - [ ] 우리동네TV: 15초 - - [ ] 링고비즈: 10초 - - [ ] 지니TV: 20초 - - [ ] SNS (3개 플랫폼 병렬): 20초 - - [ ] 총 처리 시간: 1분 이내 - - [최적화 방안] - - [ ] 채널별 병렬 배포 - - [ ] 비동기 API 호출 - - [ ] 배포 상태 실시간 업데이트 - -- M/21 - ---- - -NFR-PERF-040: [실시간데이터수집] 시스템으로서 | 나는, 정확한 효과 측정을 위해 | 5분 간격으로 실시간 데이터를 수집하고 업데이트하고 싶다. -- 시나리오: 실시간 데이터 수집 주기 보장 - 이벤트 배포 후 | 효과 측정 대시보드가 | 5분 간격으로 자동 업데이트된다. - - [데이터 수집 주기] - - [ ] 5분마다 자동 데이터 수집 - - [ ] 스케줄러 기반 자동 실행 - - [ ] 실패 시 재시도 (3회) + [실시간 업데이트] + - 모든 지표 5분 간격 자동 갱신 + - 새로운 참여자 알림 (선택 옵션) + - 수동 새로고침 버튼 [데이터 소스] - - [ ] KT 채널 API (우리동네TV, 지니TV) - - [ ] POS 시스템 - - [ ] SNS 플랫폼 API (Instagram, Naver Blog, Kakao Channel) - - [ ] 참여자 DB + - Participation 서비스: 참여자 데이터 + - Distribution 서비스: 채널별 노출 수 + - POS 시스템: 매출 데이터 (연동 시) + - 외부 API: 우리동네TV, 지니TV, SNS 통계 -- M/13 + [모바일 최적화] + - 반응형 디자인 + - 스크롤 가능한 레이아웃 + - 핵심 지표 우선 표시 + +- M/34 + +- 기술 태스크 + - 실시간 데이터 수집 + - 5분 간격 데이터 폴링 + - WebSocket 또는 SSE를 통한 실시간 업데이트 + - 데이터 캐싱 (Redis) + - 다중 API 통합 + - 우리동네TV API + - 링고비즈 API + - 지니TV API + - Instagram API + - Naver API + - Kakao API + - POS 시스템 연동 + - 매출 데이터 수집 + - 이벤트 전후 비교 로직 + - 차트 라이브러리 활용 + - Chart.js / Recharts 등 + - 반응형 차트 구현 + - 성능 최적화 + - 차트 데이터 메모이제이션 + - 무한 스크롤 대신 페이지네이션 + - 이미지/데이터 lazy loading --- -2) 보안 -NFR-SECU-010: [개인정보보호] 시스템으로서 | 나는, 고객 신뢰를 확보하기 위해 | 개인정보 보호 규정을 준수하고 암호화를 적용하고 싶다. -- 시나리오: 개인정보 보호 및 암호화 - 고객의 개인정보(이름, 전화번호)가 수집될 때 | 암호화되어 저장되고 | GDPR, 개인정보보호법을 준수한다. +## 기술 검토 결과 +**[마이크로서비스별 검토]** - [개인정보 암호화] - - [ ] 전화번호 암호화 (AES-256) - - [ ] 이름 암호화 (필요 시) - - [ ] 전송 시 HTTPS/TLS 적용 +1) User 서비스 +모든 유저스토리 **✅ 실현 가능** +- 표준적인 인증/인가 패턴 +- JWT 토큰, Redis 캐싱 등 검증된 기술 활용 +- 사업자번호 검증 API (국세청) 연동 - [개인정보 보호 규정 준수] - - [ ] 개인정보 수집 동의 획득 (필수) - - [ ] 수집 목적 명시 - - [ ] 보유 기간 설정 (이벤트 종료 후 3개월) - - [ ] 파기 절차 자동화 +2) Event 서비스 +대부분 **✅ 실현 가능** +- 이벤트 CRUD 기능 +- AI 서비스와의 연동 +- LocalStorage 자동 저장 구현 - [접근 제어] - - [ ] 역할 기반 접근 제어 (RBAC) - - [ ] 소상공인은 자신의 이벤트 데이터만 접근 - - [ ] 관리자 감사 로그 기록 +3) AI 서비스 +**⚠️ 높은 기술적 복잡도** -- M/13 +- UFR-AI-010: **주요 리스크 포인트** + - Claude API 또는 GPT-4 API 연동 + - 트렌드 분석 + 이벤트 추천 병렬 처리 + - 응답 시간 관리 (10초 목표) + - 프롬프트 엔지니어링 최적화 + - **해결방안**: 캐싱, 병렬 처리, 비동기 처리 ---- +4) Content 서비스 +**⚠️ 중간 복잡도** -3) 안정성 -NFR-RELI-010: [배포실패자동재시도] 시스템으로서 | 나는, 서비스 안정성을 위해 | 배포 실패 시 자동으로 3회까지 재시도하고 싶다. -- 시나리오: 배포 실패 시 자동 재시도 - 채널 배포 중 API 오류로 실패 시 | 시스템이 자동으로 재시도하여 | 최대 3회까지 재시도 후 성공 또는 최종 실패 처리한다. +- UFR-CONT-010: **이미지 생성 API 연동** + - Stable Diffusion 또는 DALL-E API + - 플랫폼별 이미지 크기 최적화 + - **해결방안**: 이미지 캐싱, CDN 활용 - [재시도 로직] - - [ ] 배포 실패 감지 - - [ ] 1차 재시도 (5초 후) - - [ ] 2차 재시도 (10초 후) - - [ ] 3차 재시도 (20초 후) - - [ ] 3회 실패 시 최종 실패 처리 +5) Distribution 서비스 +**⚠️ 다중 API 통합 복잡도** - [실패 알림] - - [ ] 소상공인에게 실패 알림 - - [ ] 실패 사유 제공 - - [ ] 수동 재시도 옵션 제공 +- UFR-DIST-010: **외부 API 다중 연동** + - 우리동네TV API + - 링고비즈 API + - 지니TV API + - SNS API (Instagram, Naver, Kakao) + - **해결방안**: 채널별 독립 처리, 실패 시 재시도, 써킷 브레이커 패턴 -- M/8 +6) Participation 서비스 +대부분 **✅ 실현 가능** +- 표준적인 CRUD 기능 +- 추첨 알고리즘 구현 ---- +7) Analytics 서비스 +**⚠️ 높은 통합 복잡도** -4) 확장성 -NFR-SCAL-010: [동시이벤트처리] 시스템으로서 | 나는, 다수의 소상공인을 지원하기 위해 | 최소 100개의 이벤트를 동시에 처리할 수 있어야 한다. -- 시나리오: 동시 다발적 이벤트 처리 - 100명의 소상공인이 동시에 이벤트를 기획/배포하는 상황에서 | 시스템이 정상적으로 모든 요청을 처리한다. +- UFR-ANAL-010: **통합 대시보드 구현** + - 다중 데이터 소스 통합 + - 실시간 데이터 수집 및 표시 + - 복잡한 차트 및 그래프 + - **해결방안**: 데이터 캐싱 (Redis), WebSocket/SSE, 차트 라이브러리 활용 - [확장성 요구사항] - - [ ] 동시 이벤트 처리: 최소 100개 - - [ ] AI API 동시 호출: 최소 50개 - - [ ] 배포 API 동시 호출: 최소 100개 +**[주요 기술 스택 권장사항]** - [확장 전략] - - [ ] 마이크로서비스 수평 확장 (Auto Scaling) - - [ ] 로드 밸런싱 - - [ ] 메시지 큐 활용 (비동기 처리) - - [ ] 캐싱 전략 (Redis) +**백엔드:** +- Node.js/Spring Boot (마이크로서비스) +- Redis (캐싱, 세션, 실시간 데이터) +- PostgreSQL/MongoDB +- RabbitMQ/Kafka (비동기 처리) -- S/21 +**프론트엔드:** +- React/Next.js +- TypeScript +- Zustand/Redux (상태관리) +- React Query (API 상태관리) +- Chart.js/Recharts (차트 라이브러리) + +**인프라:** +- Docker/Kubernetes +- API Gateway +- Circuit Breaker +- 로드 밸런서 + +**외부 API:** +- AI: Claude API / GPT-4 API +- 이미지 생성: Stable Diffusion / DALL-E +- 사업자 검증: 국세청 API +- 배포 채널: 우리동네TV, 링고비즈, 지니TV, SNS APIs + +**[주요 기술적 리스크 및 해결방안]** + +**1. AI 응답 시간 (10초 목표)** +- 리스크: AI API 응답이 목표 시간을 초과할 수 있음 +- 해결방안: + - 프롬프트 최적화로 응답 시간 단축 + - 트렌드 분석과 이벤트 추천 병렬 처리 + - 비동기 처리 + 폴링 방식 + - 부분 응답 스트리밍 + +**2. 다중 외부 API 의존성** +- 리스크: API 장애 시 서비스 중단 +- 해결방안: + - 각 API별 폴백 전략 수립 + - 캐싱 적극 활용 + - 써킷 브레이커 패턴 적용 + - 채널별 독립 처리 + +**3. 실시간 대시보드 성능** +- 리스크: 다중 데이터 소스 통합으로 인한 성능 저하 +- 해결방안: + - Redis 캐싱 + - 5분 간격 데이터 폴링 + - WebSocket/SSE를 통한 효율적인 업데이트 + - 차트 데이터 메모이제이션 + +**4. 이미지 생성 비용 및 시간** +- 리스크: 이미지 생성 API 비용 및 생성 시간 +- 해결방안: + - 생성된 이미지 캐싱 + - CDN 활용 + - 비동기 생성 + 진행 상황 표시 + +**[간소화된 플로우 검증]** + +✅ **요청사항 반영 확인** +1. ✅ KT인증시스템연동 제외됨 +2. ✅ 신규가입 시 무료체험 기능 삭제됨 +3. ✅ 5회연속실패시 계정잠금기능 삭제됨 +4. ✅ 이벤트커스텀 화면 통합됨 (이벤트추천조회 화면에서 간단히 제목/경품 수정 가능) +5. ✅ UFR-AI-010과 UFR-AI-020 통합됨 (트렌드 분석 + 이벤트 추천 한 번에 처리) +6. ✅ UFR-PART-040 삭제됨 (당첨알림발송) +7. ✅ UFR-ANAL-020 삭제됨 (분석리포트생성) +8. ✅ PDF / Excel 내보내기/다운로드 기능 삭제됨 + +**[이벤트 생성 플로우 (최종)]** +1. 이벤트 목적 선택 +2. AI 트렌드 분석 및 이벤트 추천 (3가지, 제목/경품 간단 수정 가능) +3. 콘텐츠 생성 +4. 배포채널 선택 +5. 최종승인 + +**[서비스 간 의존성]** +- User → Event: 사용자 인증 정보 제공 +- Event → AI: 트렌드 분석 및 이벤트 추천 요청 +- Event → Content: 콘텐츠 생성 요청 +- Event → Distribution: 배포 요청 +- Distribution → Content: 생성된 콘텐츠 사용 +- Participation → Analytics: 참여자 데이터 제공 +- Distribution → Analytics: 노출 데이터 제공 + +**[유저스토리 통계]** +- User 서비스: 4개 +- Event 서비스: 7개 +- AI 서비스: 1개 (통합) +- Content 서비스: 2개 +- Distribution 서비스: 2개 +- Participation 서비스: 3개 +- Analytics 서비스: 1개 + +**총 20개 유저스토리** + +**[예상 개발 기간]** +- User 서비스: 2주 +- Event 서비스: 3주 +- AI 서비스: 4주 (프롬프트 엔지니어링 포함) +- Content 서비스: 3주 +- Distribution 서비스: 4주 (다중 API 연동) +- Participation 서비스: 2주 +- Analytics 서비스: 4주 (통합 대시보드) + +**총 예상 기간**: 12-16주 (병렬 개발 시) ``` - ---- - -## 📈 프로토타입 반영 통계 - -| 구분 | 기존 | 추가/수정 | 합계 | -|------|------|-----------|------| -| User 서비스 | 3개 | 2개 | 5개 | -| Event Planning 서비스 | 6개 | 1개 | 7개 | -| Content Generation 서비스 | 5개 | 1개 (영상제작 신규) | 6개 | -| Distribution 서비스 | 6개 | - | 6개 | -| Participation 서비스 | 5개 | - | 5개 | -| Analytics 서비스 | 4개 | - | 4개 | -| AI Learning 서비스 | 3개 | - | 3개 | -| 비기능 요구사항 | 5개 | - | 5개 | -| **총계** | **37개** | **4개** | **41개** | - ---- - -## 🔧 기술 검토 업데이트 - -### **신규 추가 항목** - -**UFR-CONT-020: AI영상제작** -- ⚠️ 높은 기술적 복잡도 -- AI 영상 제작 엔진 연동 필요 -- 예상 처리 시간: 3-5분 -- GPU 가속 활용 권장 -- 진행 상황 실시간 표시 필수 - -**UFR-USER-030: 이벤트목록** -- ✅ 실현 가능 -- 표준적인 CRUD 패턴 -- 필터링 및 페이지네이션 구현 - -**UFR-USER-040: 마이페이지** -- ✅ 실현 가능 -- 사용자 정보 관리 표준 패턴 - -### **주요 기술 스택 업데이트** - -**AI/ML 추가:** -- AI 영상 제작 엔진 (15초 영상 자동 생성) -- 예상 소요 시간: 3-5분 -- GPU 가속 필수 - -**성능 요구사항 업데이트:** -- 콘텐츠 생성 전체 시간: 5-8분 이내 (영상 포함) -- 이미지와 영상 병렬 생성 필수 - ---- - -## ✅ 다음 단계 - -1. **UI/UX 설계 업데이트**: 프로토타입 기준으로 설계서 재작성 -2. **API 설계 업데이트**: 영상 제작 API 명세 추가 -3. **백엔드 설계 업데이트**: 영상 제작 서비스 추가 -4. **프론트엔드 설계 업데이트**: 하단 네비게이션 구조 반영 diff --git a/design/userstory_ver2.0.md b/design/userstory_ver2.0.md deleted file mode 100644 index be9b864..0000000 --- a/design/userstory_ver2.0.md +++ /dev/null @@ -1,1066 +0,0 @@ -# KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 ver2.0 - -- [KT AI 기반 소상공인 이벤트 자동 생성 서비스 - 유저스토리 ver2.0](#kt-ai-기반-소상공인-이벤트-자동-생성-서비스---유저스토리-ver20) - - [마이크로서비스 구성](#마이크로서비스-구성) - - [유저스토리](#유저스토리) - - [기술 검토 결과](#기술-검토-결과) - ---- - -## 마이크로서비스 구성 -1. **User** - 사용자 인증 및 매장정보 관리 -2. **Event** - 이벤트 기획 및 관리 -3. **AI** - AI 기반 트렌드 분석 및 이벤트 추천 -4. **Content** - SNS 콘텐츠 생성 -5. **Distribution** - 다중 채널 배포 관리 -6. **Participation** - 이벤트 참여 및 당첨자 관리 -7. **Analytics** - 실시간 효과 측정 및 통합 대시보드 - ---- - -## 유저스토리 -``` -1. User 서비스 -1) 사용자 인증 및 매장정보 관리 -UFR-USER-010: [회원가입] 소상공인으로서 | 나는 이벤트 마케팅 서비스를 이용하기 위해 | 간편하게 회원가입하고 싶다. -- 시나리오: 신규 회원가입 - 미로그인 상태에서 회원가입 화면에 접근한 상황에서 | 필수 정보를 모두 입력하고 회원가입 버튼을 클릭하면 | 본인인증과 사업자번호 검증을 거쳐 회원가입이 완료된다. - - [입력 요구사항] - - 기본 정보 - - 이름: 2자 이상 (한글/영문) - - 전화번호: 휴대폰 번호 형식 (본인인증 필수) - - 이메일: 이메일 형식 준수 - - [본인 인증] - - KT 인증 시스템 연동 - - 전화번호 기반 인증 - - 인증 완료 시 다음 단계 진행 - - [매장 정보 입력] - - 매장명: 필수 - - 업종: 선택 (예: 음식점, 카페, 소매점 등) - - 주소: 필수 - - 영업시간: 선택 - - 사업자번호: 필수 - - 국세청 DB 조회를 통한 검증 - - 휴폐업 여부 확인 - - 검증 실패 시 재입력 요청 - - [처리 결과] - - 성공: "회원가입이 완료되었습니다" 메시지 → 대시보드 화면 - - 무료 체험 혜택 안내 (첫 1회 이벤트 무료) - - 실패: 구체적인 오류 메시지 표시 - -- M/21 - ---- - -UFR-USER-020: [로그인] 소상공인으로서 | 나는 이벤트를 관리하기 위해 | 간편하게 로그인하고 싶다. -- 시나리오: 사용자 로그인 - 미로그인 상태에서 로그인 화면에 접근한 상황에서 | 전화번호와 비밀번호를 입력하고 로그인 버튼을 클릭하면 | 인증이 완료되고 대시보드로 이동한다. - - [입력 요구사항] - - 전화번호: 등록된 전화번호 입력 - - 비밀번호: 해당 계정의 비밀번호 입력 - - 로그인 유지: 선택 옵션 제공 - - [인증 처리] - - 성공: 대시보드로 즉시 이동 - - 실패: "전화번호 또는 비밀번호를 확인해주세요" 메시지 - - 5회 연속 실패: 30분간 계정 잠금 안내 - -- M/8 - ---- - -UFR-USER-030: [프로필관리] 소상공인으로서 | 나는 내 정보를 최신 상태로 유지하기 위해 | 프로필 정보를 편집하고 싶다. -- 시나리오: 프로필 정보 수정 - 로그인한 상태에서 프로필 편집 화면에 접근한 상황에서 | 변경할 정보를 수정하고 저장 버튼을 클릭하면 | 변경사항이 저장되고 확인 메시지가 표시된다. - - [수정 가능 항목] - - 기본 정보 - - 이름: 실명 변경 가능 - - 전화번호: 변경 시 재인증 필요 - - 이메일: 이메일 변경 가능 - - 매장 정보 - - 매장명 - - 업종 - - 주소 - - 영업시간 - - 비밀번호 - - 현재 비밀번호 확인 필수 - - 새 비밀번호 규칙: 8자 이상 (영문/숫자/특수문자 포함) - - [저장 처리] - - 저장 전 확인: "변경사항을 저장하시겠습니까?" - - 저장 완료: "프로필이 성공적으로 업데이트되었습니다" - - 취소 선택: "변경사항이 저장되지 않습니다. 계속하시겠습니까?" - -- C/8 - ---- - -UFR-USER-040: [로그아웃] 소상공인으로서 | 나는 보안을 위해 | 서비스 사용 후 안전하게 로그아웃하고 싶다. -- 시나리오: 안전한 로그아웃 - 로그인된 상태에서 프로필 메뉴의 로그아웃을 선택한 상황에서 | 로그아웃 확인 다이얼로그에서 확인을 클릭하면 | 세션이 종료되고 로그인 화면으로 이동한다. - - [로그아웃 요구사항] - - 확인 다이얼로그 - - 메시지: "로그아웃 하시겠습니까?" - - 버튼: 취소/확인 - - [처리 결과] - - 확인 선택: "안전하게 로그아웃되었습니다" 메시지 → 로그인 화면 - - 취소 선택: 다이얼로그 닫힘, 현재 화면 유지 - -- S/3 - ---- - -2. Event 서비스 -1) 이벤트 관리 -UFR-EVENT-010: [대시보드] 소상공인으로서 | 나는 내 이벤트를 효율적으로 관리하기 위해 | 대시보드에서 진행중/예정/종료된 이벤트를 한눈에 확인하고 싶다. -- 시나리오: 대시보드에서 이벤트 목록 확인 - 로그인한 상태에서 대시보드에 접근한 상황에서 | 이벤트 목록 영역을 확인하면 | 내 이벤트들이 상태별로 구분되어 표시된다. - - [표시 요구사항] - - 이벤트 상태별 섹션 구성 - - "진행중": 현재 진행 중인 이벤트 - - "예정": 배포 대기 중인 이벤트 - - "종료": 완료된 이벤트 - - 이벤트 카드 정보 - - 이벤트명 - - 이벤트 기간 - - 진행 상태 뱃지 - - 간단한 통계 (참여자 수, 조회수 등) - - [상호작용 요구사항] - - 이벤트 카드 클릭: 해당 이벤트 상세 화면으로 이동 - - 섹션당 최대 5개 카드 표시 (최신 순) - - "전체보기" 링크: 전체 이벤트 목록 화면으로 이동 - - "새 이벤트 만들기" 버튼: 이벤트 생성 프로세스 시작 - - [빈 상태 처리] - - 이벤트가 없을 경우: "첫 이벤트를 만들어보세요" 안내 및 생성 버튼 - -- S/13 - ---- - -UFR-EVENT-020: [이벤트목적선택] 소상공인으로서 | 나는 효과적인 이벤트를 기획하기 위해 | 이벤트 목적을 먼저 선택하고 싶다. -- 시나리오: 이벤트 목적 선택 - 대시보드에서 "새 이벤트 만들기" 버튼을 클릭한 상황에서 | 이벤트 목적 선택 화면에서 하나의 목적을 선택하면 | AI 트렌드 분석이 시작된다. - - [목적 옵션] - - 신규 고객 유치: 새로운 고객 확보 - - 재방문 유도: 기존 고객 재방문 촉진 - - 매출 증대: 단기 매출 향상 - - 인지도 향상: 브랜드/매장 인지도 제고 - - [목적별 설명 제공] - - 각 목적에 대한 간단한 설명 - - 예상 효과 예시 - - [다음 단계] - - 목적 선택 완료 시 자동으로 AI 트렌드 분석 화면으로 이동 - -- M/5 - ---- - -UFR-EVENT-030: [AI트렌드분석] 소상공인으로서 | 나는 최신 트렌드를 반영한 이벤트를 기획하기 위해 | AI 기반 업종 트렌드 분석 결과를 확인하고 싶다. -- 시나리오: AI 트렌드 분석 확인 - 이벤트 목적을 선택한 상황에서 | AI 트렌드 분석 화면에 접근하면 | 내 업종과 지역, 시즌에 맞춤화된 트렌드 분석 결과가 표시된다. - - [분석 결과 구성] - - 업종 트렌드 - - 최근 성공한 이벤트 유형 - - 고객 선호 경품 분석 - - 효과적인 참여 방법 - - 지역 특성 - - 지역별 이벤트 성공률 - - 지역 고객 특성 - - 시즌 특성 - - 계절/시기별 추천 이벤트 - - 특별 이벤트 시즌 (명절, 기념일 등) - - [분석 시간] - - 분석 진행 표시 (로딩 인디케이터) - - 예상 소요 시간: 5초 이내 - - [다음 단계] - - 분석 완료 후 자동으로 이벤트 추천 화면으로 이동 - -- M/8 - ---- - -UFR-EVENT-040: [이벤트추천조회] 소상공인으로서 | 나는 선택지를 비교하여 최적의 이벤트를 선택하기 위해 | AI가 추천한 3가지 이벤트 기획안을 확인하고 싶다. -- 시나리오: AI 추천 이벤트 3가지 확인 - AI 트렌드 분석이 완료된 상황에서 | 이벤트 추천 화면에 접근하면 | 3가지 이벤트 기획안이 카드 형태로 표시된다. - - [추천 이벤트 카드 구성] - 각 카드에 다음 정보 포함: - - 이벤트 제목 - - 추천 경품 - - 참여 방법 - - 예상 참여자 수 - - 예상 비용 - - 예상 ROI - - [추천 기준] - - 이벤트 목적 기반 최적화 - - 업종 트렌드 반영 - - 예산 대비 효과 극대화 - - [이벤트 선택] - - 3가지 중 1개 선택 (라디오 버튼) - - 선택 완료 후 "다음" 버튼 활성화 - - [다음 단계] - - 이벤트 선택 후 커스텀 화면으로 이동 - -- M/13 - ---- - -UFR-EVENT-050: [이벤트커스텀] 소상공인으로서 | 나는 추천받은 이벤트를 내 상황에 맞게 조정하기 위해 | 경품, 참여방법, 홍보문구 등을 커스텀하고 싶다. -- 시나리오: 이벤트 세부사항 커스텀 - 추천 이벤트를 선택한 상황에서 | 이벤트 커스텀 화면에서 세부사항을 수정하면 | 실시간으로 미리보기가 업데이트된다. - - [커스텀 가능 항목] - 1. 기본 정보 - - 이벤트명: 최대 50자 - - 이벤트 기간: 시작일/종료일 선택 - - 2. 경품 정보 - - 경품명: 수정 가능 - - 경품 수량: 숫자 입력 - - 경품 이미지: 업로드 가능 (선택) - - 3. 참여 방법 - - 참여 조건: 텍스트 수정 - - 참여 난이도: 쉬움/보통/어려움 - - 4. 홍보 문구 - - 메인 홍보 문구: AI 생성 5가지 중 선택 또는 직접 수정 - - SNS 해시태그: 자동 생성 또는 추가/삭제 - - [실시간 미리보기] - - 우측에 미리보기 패널 - - 수정사항 즉시 반영 - - SNS 포스트 형태로 표시 - - [자동 저장] - - 3초 debounce 자동 저장 - - 브라우저 종료 시에도 데이터 보존 - - [다음 단계] - - "다음" 버튼: 콘텐츠 생성 화면으로 이동 - - "이전" 버튼: 이벤트 추천 화면으로 돌아가기 - -- M/21 - ---- - -UFR-EVENT-060: [배포채널선택] 소상공인으로서 | 나는 효과적인 이벤트 홍보를 위해 | 다중 배포 채널을 선택하고 싶다. -- 시나리오: 배포 채널 선택 - 이벤트 커스텀과 콘텐츠 생성이 완료된 상황에서 | 배포 채널 선택 화면에서 원하는 채널을 선택하면 | 각 채널의 예상 노출 수가 표시된다. - - [배포 채널 옵션] - 1. 우리동네TV - - 반경 선택: 500m / 1km - - 송출 시간대: 평일 저녁 / 주말 점심 등 - - 예상 노출 수 표시 - - 2. 링고비즈 (연결음) - - 매장 전화번호 자동 연동 - - 연결음 업데이트 안내 - - 3. 지니TV 광고 - - 타겟 지역 선택 - - 노출 시간대 선택 - - 예산 입력 - - 예상 노출량 표시 - - 4. SNS - - Instagram (체크박스) - - Naver Blog (체크박스) - - Kakao Channel (체크박스) - - 예약 시간 설정 - - [채널별 비용 안내] - - 각 채널별 예상 비용 표시 - - 총 예상 비용 합계 - - [다음 단계] - - 최소 1개 이상 채널 선택 필수 - - "다음" 버튼: 최종 승인 화면으로 이동 - -- M/13 - ---- - -UFR-EVENT-070: [최종승인] 소상공인으로서 | 나는 이벤트를 배포하기 전에 | 모든 설정을 최종 확인하고 승인하고 싶다. -- 시나리오: 이벤트 최종 승인 - 배포 채널을 선택한 상황에서 | 최종 승인 화면에서 모든 정보를 확인하고 승인 버튼을 클릭하면 | 이벤트가 생성되고 배포가 시작된다. - - [최종 확인 정보] - 1. 이벤트 정보 - - 이벤트명 - - 이벤트 기간 - - 이벤트 목적 - - 2. 경품 정보 - - 경품명 - - 경품 수량 - - 3. 참여 방법 - - 참여 조건 요약 - - 4. 배포 채널 - - 선택한 채널 목록 - - 채널별 예상 노출 수 - - 5. 예상 비용 및 효과 - - 총 예상 비용 - - 예상 참여자 수 - - 예상 ROI - - [승인 프로세스] - - "승인 및 배포" 버튼 클릭 - - 확인 다이얼로그: "이벤트를 승인하고 배포하시겠습니까?" - - 승인 시 이벤트 생성 및 콘텐츠 생성 시작 - - [처리 결과] - - 성공: "이벤트가 생성되었습니다. 배포를 시작합니다." 메시지 - - 자동으로 대시보드로 이동 - - 배포 진행 상황 알림 - -- M/13 - ---- - -UFR-EVENT-080: [이벤트상세조회] 소상공인으로서 | 나는 진행 중인 이벤트의 현황을 파악하기 위해 | 이벤트 상세 정보를 조회하고 싶다. -- 시나리오: 이벤트 상세 정보 조회 - 대시보드에서 이벤트 카드를 클릭한 상황에서 | 이벤트 상세 화면에 접근하면 | 이벤트의 모든 정보와 실시간 통계가 표시된다. - - [상세 정보 구성] - 1. 기본 정보 - - 이벤트명 - - 이벤트 기간 - - 진행 상태 - - 경품 정보 - - 참여 방법 - - 2. 실시간 통계 (Analytics 서비스 연동) - - 참여자 수 - - 노출 수 - - 조회 수 - - 공유 수 - - 3. 배포 채널 현황 - - 채널별 배포 상태 - - 채널별 성과 요약 - - 4. 참여자 목록 - - 최근 참여자 10명 - - "전체 참여자 보기" 링크 - - [액션 버튼] - - "효과 측정 대시보드": Analytics 대시보드로 이동 - - "이벤트 수정": 진행 중인 이벤트 수정 (제한적) - - "이벤트 종료": 예정보다 빨리 종료 - -- S/13 - ---- - -UFR-EVENT-090: [이벤트목록관리] 소상공인으로서 | 나는 모든 이벤트를 관리하기 위해 | 전체 이벤트 목록을 조회하고 필터링/검색하고 싶다. -- 시나리오: 전체 이벤트 목록 조회 - 대시보드에서 "전체보기" 링크를 클릭한 상황에서 | 이벤트 목록 화면에 접근하면 | 모든 이벤트가 테이블 형태로 표시된다. - - [목록 표시 요구사항] - - 테이블 컬럼 - - 이벤트명 - - 이벤트 기간 - - 상태 (진행중/예정/종료) - - 참여자 수 - - ROI - - 생성일 - - 페이지네이션 (페이지당 20개) - - [필터 옵션] - - 상태별 필터: 전체/진행중/예정/종료 - - 기간별 필터: 최근 1개월/3개월/6개월/1년/전체 - - [검색 기능] - - 검색창: 이벤트명 검색 - - 실시간 검색 결과 - - [정렬 옵션] - - 최신순 (기본값) - - 참여자 많은 순 - - ROI 높은 순 - - [이벤트 관리] - - 행 클릭: 이벤트 상세 화면 - - 다중 선택: 일괄 삭제 기능 - -- S/13 - ---- - -3. AI 서비스 -1) AI 분석 및 추천 -UFR-AI-010: [트렌드분석] AI 시스템으로서 | 나는 소상공인에게 최적의 이벤트를 추천하기 위해 | 업종, 지역, 시즌 기반 트렌드를 분석하고 싶다. -- 시나리오: 트렌드 분석 수행 - 소상공인이 이벤트 목적을 선택한 상황에서 | AI 시스템이 트렌드 분석 요청을 받으면 | 빅데이터를 분석하여 트렌드 리포트를 생성한다. - - [분석 데이터 소스] - - 과거 성공 이벤트 데이터 - - 업종별 이벤트 성공률 - - 지역별 고객 특성 - - 시즌별 트렌드 패턴 - - [분석 항목] - 1. 업종 트렌드 - - 최근 3개월 성공 이벤트 유형 - - 고객 선호 경품 Top 5 - - 효과적인 참여 방법 분석 - - 2. 지역 특성 - - 해당 지역 이벤트 성공률 - - 지역 고객 연령대/성별 분포 - - 3. 시즌 특성 - - 계절별 추천 이벤트 - - 특별 시즌 (명절, 기념일) 반영 - - [분석 결과 출력] - - 트렌드 리포트 JSON 형태 반환 - - 분석 완료 시간: 5초 이내 - -- M/21 - ---- - -UFR-AI-020: [이벤트추천] AI 시스템으로서 | 나는 소상공인에게 성공 가능성이 높은 이벤트를 제안하기 위해 | 3가지 최적화된 이벤트 기획안을 생성하고 싶다. -- 시나리오: 이벤트 기획안 3가지 생성 - 트렌드 분석이 완료된 상황에서 | AI 시스템이 이벤트 추천 요청을 받으면 | 이벤트 목적과 트렌드 분석 결과를 기반으로 3가지 기획안을 생성한다. - - [기획안 생성 로직] - 1. 경품 추천 - - 예산 대비 매력도 최대화 - - 타겟 고객 선호도 반영 - - KT 멤버십 포인트 활용 가능 여부 - - 2. 참여 방법 설계 - - 간단한 참여 방법 (저 난이도) - - 재방문 유도 요소 (중 난이도) - - 바이럴 확산 장치 (고 난이도) - - 3. 홍보 문구 생성 - - 이벤트 개요 기반 문구 5개 생성 - - SNS 해시태그 자동 생성 - - [3가지 옵션 차별화] - - 옵션 1: 저비용, 높은 참여율 중심 - - 옵션 2: 중비용, 균형잡힌 ROI - - 옵션 3: 고비용, 높은 매출 증대 효과 - - [예상 성과 계산] - - 예상 참여자 수 - - 예상 비용 - - 예상 ROI - - [결과 출력] - - 3가지 기획안 JSON 배열 반환 - - 생성 완료 시간: 10초 이내 - -- M/34 - ---- - -4. Content 서비스 -1) 콘텐츠 생성 -UFR-CONT-010: [SNS이미지생성] 소상공인으로서 | 나는 SNS에 게시할 이벤트 이미지를 쉽게 만들기 위해 | AI가 자동으로 3가지 스타일의 이미지를 생성하기를 원한다. -- 시나리오: SNS 이미지 자동 생성 - 이벤트 커스텀을 완료한 상황에서 | 콘텐츠 생성 화면에 접근하면 | AI가 3가지 스타일의 SNS 이미지를 자동 생성한다. - - [이미지 생성 입력] - - 이벤트 제목 - - 경품 정보 - - 브랜드 컬러 (프로필에서 가져옴) - - 로고 이미지 (업로드된 경우) - - [3가지 스타일] - 1. 심플 스타일 - - 깔끔한 디자인 - - 텍스트 중심 - - 읽기 쉬운 구성 - - 2. 화려한 스타일 - - 눈에 띄는 디자인 - - 이미지 강조 - - 풍부한 색상 - - 3. 트렌디 스타일 - - 최신 트렌드 반영 - - SNS 최적화 - - MZ세대 타겟 - - [플랫폼별 최적화] - - Instagram: 1080x1080 - - Naver Blog: 800x600 - - Kakao Channel: 800x800 - - [생성 프로세스] - - 생성 진행 표시 (로딩 인디케이터) - - 예상 소요 시간: 30초 이내 - - 생성 완료 시 미리보기 제공 - - [이미지 선택] - - 3가지 중 1개 선택 가능 - - 또는 "다시 생성" 옵션 (최대 3회) - -- M/21 - ---- - -UFR-CONT-020: [콘텐츠편집] 소상공인으로서 | 나는 생성된 이미지를 내 스타일에 맞게 조정하기 위해 | 간단한 편집 기능을 사용하고 싶다. -- 시나리오: 생성된 콘텐츠 편집 - SNS 이미지가 생성된 상황에서 | 편집 화면에서 텍스트나 색상을 수정하면 | 실시간으로 미리보기가 업데이트된다. - - [편집 가능 항목] - - 텍스트 수정 - - 제목 텍스트 - - 경품 정보 텍스트 - - 참여 안내 텍스트 - - 색상 조정 - - 배경색 - - 텍스트 색상 - - 강조 색상 - - 로고 위치 - - 위치 이동 - - 크기 조절 - - [편집 제약사항] - - 레이아웃 변경 불가 - - 이미지 교체 불가 (다시 생성으로만 가능) - - [실시간 미리보기] - - 수정사항 즉시 반영 - - 플랫폼별 미리보기 전환 가능 - - [저장 및 완료] - - "저장" 버튼: 편집 내용 저장 - - "완료" 버튼: 배포 채널 선택 화면으로 이동 - -- S/13 - ---- - -5. Distribution 서비스 -1) 배포 관리 -UFR-DIST-010: [다중채널배포] 소상공인으로서 | 나는 여러 채널에 동시에 이벤트를 홍보하기 위해 | 원클릭으로 다중 채널 배포를 실행하고 싶다. -- 시나리오: 다중 채널 동시 배포 - 최종 승인이 완료된 상황에서 | Distribution 서비스가 배포 요청을 받으면 | 선택된 모든 채널에 동시 배포를 시작한다. - - [배포 채널 처리] - 1. 우리동네TV - - 우리동네TV API 연동 - - 15초 영상 업로드 (Content 서비스에서 생성된 이미지 활용) - - 송출 시간대 및 반경 설정 전달 - - 배포 완료 시 배포 ID 수신 - - 2. 링고비즈 (연결음) - - 링고비즈 API 연동 - - 매장 전화번호로 연결음 업데이트 - - 업데이트 완료 시각 수신 - - 3. 지니TV 광고 - - 지니TV 광고 API 연동 - - 타겟 지역, 노출 시간대, 예산 정보 전달 - - 광고 ID 및 노출 스케줄 수신 - - 4. SNS 자동 포스팅 - - Instagram, Naver Blog, Kakao Channel 병렬 처리 - - 플랫폼별 최적화된 이미지 사용 - - 예약 시간 설정 반영 - - 각 플랫폼 포스팅 완료 확인 - - [배포 진행 상황] - - 실시간 진행 상황 알림 - - 채널별 배포 상태 표시 - - 예상 완료 시간: 1분 이내 - - [배포 실패 처리] - - 채널별 독립적 처리 (하나 실패해도 다른 채널 계속 진행) - - 실패 시 자동 재시도 (최대 3회) - - 최종 실패 시 소상공인에게 알림 - - [배포 완료 처리] - - 배포 이력 DB 저장 - - 배포 채널 목록 및 예상 도달 수 반환 - - 소상공인에게 배포 완료 알림 (앱 푸시/이메일) - -- M/21 - ---- - -UFR-DIST-020: [배포상태모니터링] 소상공인으로서 | 나는 배포 진행 상황을 실시간으로 파악하기 위해 | 배포 상태를 모니터링하고 싶다. -- 시나리오: 배포 상태 실시간 확인 - 배포가 시작된 상황에서 | 이벤트 상세 화면의 배포 상태 섹션을 확인하면 | 채널별 배포 진행 상황이 실시간으로 표시된다. - - [배포 상태 표시] - - 채널별 상태 - - 대기중: 회색 - - 진행중: 파란색 (진행률 표시) - - 완료: 초록색 (체크 표시) - - 실패: 빨간색 (오류 메시지) - - [배포 정보] - - 우리동네TV: 배포 ID, 예상 노출 수 - - 링고비즈: 업데이트 완료 시각 - - 지니TV: 광고 ID, 노출 스케줄 - - SNS: 포스팅 URL 링크 - - [재시도/취소] - - 실패한 채널: "재시도" 버튼 - - 진행중인 배포: "취소" 버튼 (일부 채널만 가능) - -- S/13 - ---- - -6. Participation 서비스 -1) 참여자 관리 -UFR-PART-010: [이벤트참여] 고객으로서 | 나는 간편하게 이벤트에 참여하기 위해 | 최소한의 정보만 입력하고 싶다. -- 시나리오: 고객 이벤트 참여 - 고객이 이벤트를 발견한 상황에서 | 이벤트 참여 화면에서 필수 정보를 입력하고 참여 버튼을 클릭하면 | 참여 접수가 완료된다. - - [이벤트 발견 경로] - - 우리동네TV - - SNS (Instagram, Blog, Kakao) - - 매장 방문 (링고비즈 연결음 안내) - - [참여 정보 입력] - - 이름: 필수 (2자 이상) - - 전화번호: 필수 (휴대폰 번호) - - 참여 경로: 자동 감지 또는 선택 - - [중복 참여 체크] - - 전화번호 기반 중복 확인 - - 1인 1회 참여 제한 - - 중복 시: "이미 참여하신 이벤트입니다" 안내 - - [참여 접수 완료] - - 응모 번호 발급 - - 당첨 발표일 안내 - - 참여 완료 화면 표시 - - [개인정보 처리] - - 개인정보 수집/이용 동의 필수 - - 마케팅 활용 동의 선택 - -- M/13 - ---- - -UFR-PART-020: [참여자목록조회] 소상공인으로서 | 나는 누가 참여했는지 파악하기 위해 | 참여자 목록을 조회하고 싶다. -- 시나리오: 참여자 목록 확인 - 이벤트 상세 화면에서 "참여자 목록" 탭을 클릭한 상황에서 | 참여자 목록 화면에 접근하면 | 모든 참여자 정보가 테이블로 표시된다. - - [목록 표시] - - 테이블 컬럼 - - 번호 (응모 번호) - - 이름 - - 전화번호 (일부 마스킹) - - 참여 경로 - - 참여 일시 - - 당첨 여부 - - 페이지네이션 - - [필터 옵션] - - 참여 경로별 필터 - - 당첨 여부 필터 (전체/당첨/미당첨) - - [검색 기능] - - 이름 또는 전화번호로 검색 - - [액션] - - Excel 다운로드 - - 개별 참여자 상세 정보 보기 - -- S/8 - ---- - -UFR-PART-030: [당첨자추첨] 소상공인으로서 | 나는 공정한 당첨자 선정을 위해 | 자동 추첨 기능을 사용하고 싶다. -- 시나리오: 당첨자 자동 추첨 - 이벤트 종료일이 도래한 상황에서 | 소상공인이 "당첨자 추첨" 버튼을 클릭하면 | 시스템이 자동으로 당첨자를 추첨한다. - - [추첨 방식] - - 난수 기반 무작위 추첨 - - 매장 방문 고객 가산점 옵션 (선택 가능) - - 추첨 과정 로그 자동 기록 - - [당첨 인원 설정] - - 경품 수량 기반 자동 설정 - - 수동 조정 가능 - - [추첨 결과] - - 당첨자 목록 표시 - - 당첨자 정보: 이름, 전화번호, 응모번호 - - "당첨 알림 발송" 버튼 - - [재추첨] - - "재추첨" 버튼: 당첨자 재선정 (추첨 전 확인) - - 이전 추첨 이력 보관 - -- M/13 - ---- - -UFR-PART-040: [당첨알림발송] 소상공인으로서 | 나는 당첨자에게 즉시 알리기 위해 | 자동으로 당첨 알림을 발송하고 싶다. -- 시나리오: 당첨 알림 자동 발송 - 당첨자 추첨이 완료된 상황에서 | "당첨 알림 발송" 버튼을 클릭하면 | 모든 당첨자에게 SMS 또는 카카오 알림톡이 발송된다. - - [알림 방식 선택] - - SMS (기본) - - 카카오 알림톡 (KT 채널 연동 시) - - [알림 메시지 구성] - - 축하 메시지 - - 경품 정보 - - 경품 수령 방법 안내 - - 매장 위치 및 연락처 - - [발송 결과] - - 발송 성공/실패 건수 표시 - - 실패 건: 수동 재발송 옵션 - - [비당첨자 처리] - - 비당첨자 알림 발송 여부 선택 - - "다음 이벤트에서 뵙겠습니다" 안내 메시지 - -- M/8 - ---- - -7. Analytics 서비스 -1) 효과 측정 -UFR-ANAL-010: [실시간통합대시보드] 소상공인으로서 | 나는 이벤트 성과를 한눈에 파악하기 위해 | 모든 지표가 통합된 실시간 대시보드를 보고 싶다. -- 시나리오: 통합 대시보드 조회 - 이벤트 상세 화면에서 "효과 측정 대시보드" 버튼을 클릭한 상황에서 | 통합 대시보드 화면에 접근하면 | 모든 핵심 지표가 하나의 화면에 실시간으로 표시된다. - - [대시보드 구성] - - 1. 상단 요약 카드 (4개) - - 총 참여자 수 - - 현재 참여자 수 - - 목표 대비 달성률 (%) - - 총 노출 수 - - 채널별 노출 합계 - - 전일 대비 증감률 - - 예상 ROI - - 실시간 ROI 계산 - - 업종 평균 대비 비교 - - 매출 증가율 - - POS 연동 데이터 기반 - - 이벤트 전후 비교 (%) - - 2. 채널별 성과 분석 (차트) - - 막대 그래프: 채널별 참여자 수 - - 원 그래프: 채널별 참여 비율 - - 채널 목록: - - 우리동네TV - - 링고비즈 - - 지니TV - - Instagram - - Naver Blog - - Kakao Channel - - 각 채널별 세부 지표: - - 노출 수 - - 참여자 수 - - 전환율 (%) - - 비용 대비 효율 (CPA) - - 3. 시간대별 참여 추이 (라인 차트) - - X축: 시간 (일별/시간별 전환 가능) - - Y축: 참여자 수 - - 실시간 업데이트 (5분 간격) - - 피크 시간대 하이라이트 - - 4. ROI 상세 분석 (표) - - 총 비용 산출 - - 경품 비용 - - 채널별 플랫폼 비용 - - 기타 비용 - - 예상 수익 산출 - - 매출 증가액 - - 신규 고객 LTV - - ROI 계산식 표시 - - ROI = (수익 - 비용) / 비용 × 100 - - 손익분기점 표시 - - 5. 참여자 프로필 분석 (차트) - - 연령대별 분포 - - 성별 분포 - - 지역별 분포 - - 참여 시간대 분석 - - 6. 비교 분석 (표) - - 업종 평균과 비교 - - 참여율 - - ROI - - 전환율 - - 내 이전 이벤트와 비교 - - 성과 개선도 - - 최고/최저 기록 대비 - - [실시간 업데이트] - - 모든 지표 5분 간격 자동 갱신 - - 새로운 참여자 알림 (선택 옵션) - - 수동 새로고침 버튼 - - [데이터 소스] - - Participation 서비스: 참여자 데이터 - - Distribution 서비스: 채널별 노출 수 - - POS 시스템: 매출 데이터 (연동 시) - - 외부 API: 우리동네TV, 지니TV, SNS 통계 - - [액션 버튼] - - "리포트 다운로드": PDF 형태로 다운로드 - - "데이터 내보내기": Excel 형태로 내보내기 - - "공유하기": 대시보드 링크 공유 - - [모바일 최적화] - - 반응형 디자인 - - 스크롤 가능한 레이아웃 - - 핵심 지표 우선 표시 - -- M/34 - -- 기술 태스크 - - 실시간 데이터 수집 - - 5분 간격 데이터 폴링 - - WebSocket 또는 SSE를 통한 실시간 업데이트 - - 데이터 캐싱 (Redis) - - 다중 API 통합 - - 우리동네TV API - - 링고비즈 API - - 지니TV API - - Instagram API - - Naver API - - Kakao API - - POS 시스템 연동 - - 매출 데이터 수집 - - 이벤트 전후 비교 로직 - - 차트 라이브러리 활용 - - Chart.js / Recharts 등 - - 반응형 차트 구현 - - 성능 최적화 - - 차트 데이터 메모이제이션 - - 무한 스크롤 대신 페이지네이션 - - 이미지/데이터 lazy loading - ---- - -UFR-ANAL-020: [분석리포트생성] 소상공인으로서 | 나는 이벤트 결과를 보고하거나 보관하기 위해 | 종합 분석 리포트를 PDF로 다운로드하고 싶다. -- 시나리오: 분석 리포트 PDF 다운로드 - 통합 대시보드 화면에서 | "리포트 다운로드" 버튼을 클릭하면 | 모든 분석 결과가 포함된 PDF 리포트가 생성되어 다운로드된다. - - [리포트 구성] - 1. 표지 - - 이벤트명 - - 이벤트 기간 - - 리포트 생성일 - - 매장 정보 - - 2. 요약 - - 핵심 지표 요약 - - 성과 하이라이트 - - 3. 상세 분석 - - 채널별 성과 - - 시간대별 추이 - - ROI 분석 - - 참여자 프로필 - - 4. 차트 및 그래프 - - 대시보드의 모든 차트 포함 - - 정적 이미지 형태 - - 5. 인사이트 및 제안 - - AI 기반 개선 제안 - - 다음 이벤트 권장사항 - - [파일명 규칙] - - 이벤트명_분석리포트_YYYYMMDD.pdf - - [리포트 생성 시간] - - 예상 소요 시간: 10초 이내 - - 진행 상황 표시 - -- S/13 - ---- - -## 기술 검토 결과 -**[마이크로서비스별 검토]** - -1) User 서비스 -모든 유저스토리 **✅ 실현 가능** -- 표준적인 인증/인가 패턴 -- JWT 토큰, Redis 캐싱 등 검증된 기술 활용 -- KT 인증 시스템 API 연동 -- 사업자번호 검증 API (국세청) 연동 - -2) Event 서비스 -대부분 **✅ 실현 가능** -- 이벤트 CRUD 기능 -- AI 서비스와의 연동 -- LocalStorage 자동 저장 구현 - -3) AI 서비스 -**⚠️ 높은 기술적 복잡도** - -- UFR-AI-010, UFR-AI-020: **주요 리스크 포인트** - - Claude API 또는 GPT-4 API 연동 - - 응답 시간 관리 (5-10초 목표) - - 프롬프트 엔지니어링 최적화 - - **해결방안**: 캐싱, 병렬 처리, 비동기 처리 - -4) Content 서비스 -**⚠️ 중간 복잡도** - -- UFR-CONT-010: **이미지 생성 API 연동** - - Stable Diffusion 또는 DALL-E API - - 플랫폼별 이미지 크기 최적화 - - **해결방안**: 이미지 캐싱, CDN 활용 - -5) Distribution 서비스 -**⚠️ 다중 API 통합 복잡도** - -- UFR-DIST-010: **외부 API 다중 연동** - - 우리동네TV API - - 링고비즈 API - - 지니TV API - - SNS API (Instagram, Naver, Kakao) - - **해결방안**: 채널별 독립 처리, 실패 시 재시도, 써킷 브레이커 패턴 - -6) Participation 서비스 -대부분 **✅ 실현 가능** -- 표준적인 CRUD 기능 -- 추첨 알고리즘 구현 -- SMS/알림톡 발송 API 연동 - -7) Analytics 서비스 -**⚠️ 높은 통합 복잡도** - -- UFR-ANAL-010: **통합 대시보드 구현** - - 다중 데이터 소스 통합 - - 실시간 데이터 수집 및 표시 - - 복잡한 차트 및 그래프 - - **해결방안**: 데이터 캐싱 (Redis), WebSocket/SSE, 차트 라이브러리 활용 - -**[주요 기술 스택 권장사항]** - -**백엔드:** -- Node.js/Spring Boot (마이크로서비스) -- Redis (캐싱, 세션, 실시간 데이터) -- PostgreSQL/MongoDB -- RabbitMQ/Kafka (비동기 처리) - -**프론트엔드:** -- React/Next.js -- TypeScript -- Zustand/Redux (상태관리) -- React Query (API 상태관리) -- Chart.js/Recharts (차트 라이브러리) - -**인프라:** -- Docker/Kubernetes -- API Gateway -- Circuit Breaker -- 로드 밸런서 - -**외부 API:** -- AI: Claude API / GPT-4 API -- 이미지 생성: Stable Diffusion / DALL-E -- 인증: KT 인증 시스템 -- 사업자 검증: 국세청 API -- 배포 채널: 우리동네TV, 링고비즈, 지니TV, SNS APIs -- 알림: SMS/카카오 알림톡 API - -**[주요 기술적 리스크 및 해결방안]** - -**1. AI 응답 시간 (5-10초 목표)** -- 리스크: AI API 응답이 목표 시간을 초과할 수 있음 -- 해결방안: - - 프롬프트 최적화로 응답 시간 단축 - - 비동기 처리 + 폴링 방식 - - 부분 응답 스트리밍 - -**2. 다중 외부 API 의존성** -- 리스크: API 장애 시 서비스 중단 -- 해결방안: - - 각 API별 폴백 전략 수립 - - 캐싱 적극 활용 - - 써킷 브레이커 패턴 적용 - - 채널별 독립 처리 - -**3. 실시간 대시보드 성능** -- 리스크: 다중 데이터 소스 통합으로 인한 성능 저하 -- 해결방안: - - Redis 캐싱 - - 5분 간격 데이터 폴링 - - WebSocket/SSE를 통한 효율적인 업데이트 - - 차트 데이터 메모이제이션 - -**4. 이미지 생성 비용 및 시간** -- 리스크: 이미지 생성 API 비용 및 생성 시간 -- 해결방안: - - 생성된 이미지 캐싱 - - CDN 활용 - - 비동기 생성 + 진행 상황 표시 - -**[간소화된 플로우 검증]** - -✅ **요청사항 반영 확인** -1. ✅ QR포스터 생성 삭제됨 -2. ✅ AI영상제작 삭제됨 -3. ✅ 오프라인자료다운로드 삭제됨 -4. ✅ AI 이벤트 flow 축소됨 - - 1. AI 트렌드 분석 - - 2. 이벤트 추천 (3가지) - - 3. 이벤트 커스텀 (사용자가 상품 등 수정) - - 4. 배포채널 선택 - - 5. 최종승인 -5. ✅ 분석 화면 통합됨 - - 실시간 통합 대시보드에 모든 지표 표시 - - 채널별 성과, ROI, 참여자 프로필 등 한 화면에 통합 - -**[서비스 간 의존성]** -- User → Event: 사용자 인증 정보 제공 -- Event → AI: 트렌드 분석 및 이벤트 추천 요청 -- Event → Content: 콘텐츠 생성 요청 -- Event → Distribution: 배포 요청 -- Distribution → Content: 생성된 콘텐츠 사용 -- Participation → Analytics: 참여자 데이터 제공 -- Distribution → Analytics: 노출 데이터 제공 - -**[예상 개발 기간]** -- User 서비스: 2주 -- Event 서비스: 3주 -- AI 서비스: 4주 (프롬프트 엔지니어링 포함) -- Content 서비스: 3주 -- Distribution 서비스: 4주 (다중 API 연동) -- Participation 서비스: 2주 -- Analytics 서비스: 4주 (통합 대시보드) - -**총 예상 기간**: 12-16주 (병렬 개발 시) -```