kt-event-marketing/design/userstory.md
2025-10-21 14:08:29 +09:00

990 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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자 이상 (한글/영문)
- 전화번호: 휴대폰 번호 형식
- 이메일: 이메일 형식 준수
- 비밀번호: 8자 이상 (영문/숫자/특수문자 포함)
[매장 정보 입력]
- 매장명: 필수
- 업종: 선택 (예: 음식점, 카페, 소매점 등)
- 주소: 필수
- 영업시간: 선택
- 사업자번호: 필수
- 국세청 DB 조회를 통한 검증
- 휴폐업 여부 확인
- 검증 실패 시 재입력 요청
[처리 결과]
- 성공: "회원가입이 완료되었습니다" 메시지 → 대시보드 화면
- 실패: 구체적인 오류 메시지 표시
- M/21
---
UFR-USER-020: [로그인] 소상공인으로서 | 나는 이벤트를 관리하기 위해 | 간편하게 로그인하고 싶다.
- 시나리오: 사용자 로그인
미로그인 상태에서 로그인 화면에 접근한 상황에서 | 전화번호와 비밀번호를 입력하고 로그인 버튼을 클릭하면 | 인증이 완료되고 대시보드로 이동한다.
[입력 요구사항]
- 전화번호: 등록된 전화번호 입력
- 비밀번호: 해당 계정의 비밀번호 입력
- 로그인 유지: 선택 옵션 제공
[인증 처리]
- 성공: 대시보드로 즉시 이동
- 실패: "전화번호 또는 비밀번호를 확인해주세요" 메시지
- 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 트렌드 분석 결과와 함께 3가지 이벤트 추천을 확인하고 싶다.
- 시나리오: AI 트렌드 분석 및 이벤트 추천 확인
이벤트 목적을 선택한 상황에서 | AI 이벤트 추천 화면에 접근하면 | 트렌드 분석 결과와 함께 3가지 이벤트 기획안이 표시된다.
[화면 구성]
1. 트렌드 분석 결과 (상단)
- 업종 트렌드
- 최근 성공한 이벤트 유형
- 고객 선호 경품 분석
- 효과적인 참여 방법
- 지역 특성
- 지역별 이벤트 성공률
- 지역 고객 특성
- 시즌 특성
- 계절/시기별 추천 이벤트
- 특별 이벤트 시즌 (명절, 기념일 등)
2. 추천 이벤트 3가지 (하단)
각 카드에 다음 정보 포함:
- 이벤트 제목 (수정 가능)
- 추천 경품 (수정 가능)
- 참여 방법
- 예상 참여자 수
- 예상 비용
- 예상 투자 대비 수익률
[추천 기준]
- 이벤트 목적 기반 최적화
- 업종 트렌드 반영
- 예산 대비 효과 극대화
- 3가지 옵션 차별화:
- 옵션 1: 저비용, 높은 참여율 중심
- 옵션 2: 중비용, 균형잡힌 투자 대비 수익률
- 옵션 3: 고비용, 높은 매출 증대 효과
[간단한 커스텀 기능]
- 이벤트 제목: 각 카드에서 직접 수정 가능 (최대 50자)
- 경품명: 각 카드에서 직접 수정 가능
[이벤트 선택]
- 3가지 중 1개 선택 (라디오 버튼)
- 선택한 카드의 커스텀된 정보가 저장됨
- 선택 완료 후 "다음" 버튼 활성화
[프로세스 시간]
- 트렌드 분석 + 추천 생성: 10초 이내
- 진행 상황 표시 (로딩 인디케이터)
[다음 단계]
- 이벤트 선택 후 콘텐츠 생성 화면으로 이동
- M/34
- 기술 태스크
- AI 트렌드 분석 API
- 빅데이터 분석: 과거 성공 이벤트, 업종별 성공률, 지역 특성, 시즌 패턴
- 트렌드 리포트 생성: JSON 형태 반환
- 분석 완료 시간: 5초 이내
- AI 이벤트 추천 API
- Claude API / GPT-4 API 연동
- 기획안 생성 로직:
- 경품 추천 (예산 대비 매력도, 고객 선호도)
- 참여 방법 설계 (난이도별 차별화)
- 홍보 문구 생성
- 3가지 옵션 차별화 생성
- 예상 성과 계산 (참여자 수, 비용, 투자 대비 수익률)
- 생성 완료 시간: 5초 이내
- 프론트엔드 통합
- 트렌드 분석 결과 표시
- 3가지 추천 카드 UI
- 실시간 제목/경품 편집 기능
- 선택 상태 관리
- 성능 최적화
- 트렌드 분석과 추천 생성 병렬 처리
- 캐싱 전략
- 비동기 처리
---
UFR-EVENT-040: [배포채널선택] 소상공인으로서 | 나는 효과적인 이벤트 홍보를 위해 | 다중 배포 채널을 선택하고 싶다.
- 시나리오: 배포 채널 선택
이벤트 추천을 완료하고 콘텐츠 생성이 완료된 상황에서 | 배포 채널 선택 화면에서 원하는 채널을 선택하면 | 각 채널의 예상 노출 수가 표시된다.
[배포 채널 옵션]
1. 우리동네TV
- 반경 선택: 500m / 1km
- 송출 시간대: 평일 저녁 / 주말 점심 등
- 예상 노출 수 표시
2. 링고비즈 (연결음)
- 매장 전화번호 자동 연동
- 연결음 업데이트 안내
3. 지니TV 광고
- 타겟 지역 선택
- 노출 시간대 선택
- 예산 입력
- 예상 노출량 표시
4. SNS
- Instagram (체크박스)
- Naver Blog (체크박스)
- Kakao Channel (체크박스)
- 예약 시간 설정
[채널별 비용 안내]
- 각 채널별 예상 비용 표시
- 총 예상 비용 합계
[다음 단계]
- 최소 1개 이상 채널 선택 필수
- "다음" 버튼: 최종 승인 화면으로 이동
- M/13
---
UFR-EVENT-050: [최종승인] 소상공인으로서 | 나는 이벤트를 배포하기 전에 | 모든 설정을 최종 확인하고 승인하고 싶다.
- 시나리오: 이벤트 최종 승인
배포 채널을 선택한 상황에서 | 최종 승인 화면에서 모든 정보를 확인하고 승인 버튼을 클릭하면 | 이벤트가 생성되고 배포가 시작된다.
[최종 확인 정보]
1. 이벤트 정보
- 이벤트명
- 이벤트 기간
- 이벤트 목적
2. 경품 정보
- 경품명
- 경품 수량
3. 참여 방법
- 참여 조건 요약
4. 배포 채널
- 선택한 채널 목록
- 채널별 예상 노출 수
5. 예상 비용 및 효과
- 총 예상 비용
- 예상 참여자 수
- 예상 투자 대비 수익률
[승인 프로세스]
- "승인 및 배포" 버튼 클릭
- 확인 다이얼로그: "이벤트를 승인하고 배포하시겠습니까?"
- 승인 시 이벤트 생성 및 콘텐츠 생성 시작
[처리 결과]
- 성공: "이벤트가 생성되었습니다. 배포를 시작합니다." 메시지
- 자동으로 대시보드로 이동
- 배포 진행 상황 알림
- M/13
---
UFR-EVENT-060: [이벤트상세조회] 소상공인으로서 | 나는 진행 중인 이벤트의 현황을 파악하기 위해 | 이벤트 상세 정보를 조회하고 싶다.
- 시나리오: 이벤트 상세 정보 조회
대시보드에서 이벤트 카드를 클릭한 상황에서 | 이벤트 상세 화면에 접근하면 | 이벤트의 모든 정보와 실시간 통계가 표시된다.
[상세 정보 구성]
1. 기본 정보
- 이벤트명
- 이벤트 기간
- 진행 상태
- 경품 정보
- 참여 방법
2. 실시간 통계 (Analytics 서비스 연동)
- 참여자 수
- 노출 수
- 조회 수
- 공유 수
3. 배포 채널 현황
- 채널별 배포 상태
- 채널별 성과 요약
4. 참여자 목록
- 최근 참여자 10명
- "전체 참여자 보기" 링크
[액션 버튼]
- "효과 측정 대시보드": Analytics 대시보드로 이동
- "이벤트 수정": 진행 중인 이벤트 수정 (제한적)
- "이벤트 종료": 예정보다 빨리 종료
- S/13
---
UFR-EVENT-070: [이벤트목록관리] 소상공인으로서 | 나는 모든 이벤트를 관리하기 위해 | 전체 이벤트 목록을 조회하고 필터링/검색하고 싶다.
- 시나리오: 전체 이벤트 목록 조회
대시보드에서 "전체보기" 링크를 클릭한 상황에서 | 이벤트 목록 화면에 접근하면 | 모든 이벤트가 테이블 형태로 표시된다.
[목록 표시 요구사항]
- 테이블 컬럼
- 이벤트명
- 이벤트 기간
- 상태 (진행중/예정/종료)
- 참여자 수
- 투자 대비 수익률
- 생성일
- 페이지네이션 (페이지당 20개)
[필터 옵션]
- 상태별 필터: 전체/진행중/예정/종료
- 기간별 필터: 최근 1개월/3개월/6개월/1년/전체
[검색 기능]
- 검색창: 이벤트명 검색
- 실시간 검색 결과
[정렬 옵션]
- 최신순 (기본값)
- 참여자 많은 순
- 투자 대비 수익률 높은 순
[이벤트 관리]
- 행 클릭: 이벤트 상세 화면
- 다중 선택: 일괄 삭제 기능
- 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: 중비용, 균형잡힌 투자 대비 수익률
- 옵션 3: 고비용, 높은 매출 증대 효과
[예상 성과 계산]
- 예상 참여자 수
- 예상 비용
- 예상 투자 대비 수익률
[결과 출력]
- 트렌드 분석 결과 JSON 형태 반환
- 3가지 이벤트 기획안 JSON 배열 반환
- 전체 완료 시간: 10초 이내 (병렬 처리)
- M/34
- 기술 태스크
- AI 트렌드 분석 엔진
- 빅데이터 분석 시스템 연동
- 업종/지역/시즌별 데이터 집계
- 트렌드 패턴 인식 알고리즘
- AI 이벤트 추천 엔진
- Claude API / GPT-4 API 연동
- 프롬프트 엔지니어링 최적화
- 응답 파싱 및 구조화
- 병렬 처리 아키텍처
- 트렌드 분석과 이벤트 추천 동시 실행
- 결과 통합 로직
- 성능 최적화
- 캐싱 전략 (Redis)
- 비동기 처리
- 응답 시간 모니터링
---
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: [참여자목록조회] 소상공인으로서 | 나는 누가 참여했는지 파악하기 위해 | 참여자 목록을 조회하고 싶다.
- 시나리오: 참여자 목록 확인
이벤트 상세 화면에서 "참여자 목록" 탭을 클릭한 상황에서 | 참여자 목록 화면에 접근하면 | 모든 참여자 정보가 테이블로 표시된다.
[목록 표시]
- 테이블 컬럼
- 번호 (응모 번호)
- 이름
- 전화번호 (일부 마스킹)
- 참여 경로
- 참여 일시
- 당첨 여부
- 페이지네이션
[필터 옵션]
- 참여 경로별 필터
- 당첨 여부 필터 (전체/당첨/미당첨)
[검색 기능]
- 이름 또는 전화번호로 검색
[액션]
- 개별 참여자 상세 정보 보기
- S/8
---
UFR-PART-030: [당첨자추첨] 소상공인으로서 | 나는 공정한 당첨자 선정을 위해 | 자동 추첨 기능을 사용하고 싶다.
- 시나리오: 당첨자 자동 추첨
이벤트 종료일이 도래한 상황에서 | 소상공인이 "당첨자 추첨" 버튼을 클릭하면 | 시스템이 자동으로 당첨자를 추첨한다.
[추첨 방식]
- 난수 기반 무작위 추첨
- 매장 방문 고객 가산점 옵션 (선택 가능)
- 추첨 과정 로그 자동 기록
[당첨 인원 설정]
- 경품 수량 기반 자동 설정
- 수동 조정 가능
[추첨 결과]
- 당첨자 목록 표시
- 당첨자 정보: 이름, 전화번호, 응모번호
[재추첨]
- "재추첨" 버튼: 당첨자 재선정 (추첨 전 확인)
- 이전 추첨 이력 보관
- M/13
---
7. Analytics 서비스
1) 효과 측정
UFR-ANAL-010: [실시간통합대시보드] 소상공인으로서 | 나는 이벤트 성과를 한눈에 파악하기 위해 | 모든 지표가 통합된 실시간 대시보드를 보고 싶다.
- 시나리오: 통합 대시보드 조회
이벤트 상세 화면에서 "효과 측정 대시보드" 버튼을 클릭한 상황에서 | 통합 대시보드 화면에 접근하면 | 모든 핵심 지표가 하나의 화면에 실시간으로 표시된다.
[대시보드 구성]
1. 상단 요약 카드 (4개)
- 총 참여자 수
- 현재 참여자 수
- 목표 대비 달성률 (%)
- 총 노출 수
- 채널별 노출 합계
- 전일 대비 증감률
- 예상 투자 대비 수익률
- 실시간 투자 대비 수익률 계산
- 업종 평균 대비 비교
- 매출 증가율
- POS 연동 데이터 기반
- 이벤트 전후 비교 (%)
2. 채널별 성과 분석 (차트)
- 막대 그래프: 채널별 참여자 수
- 원 그래프: 채널별 참여 비율
- 채널 목록:
- 우리동네TV
- 링고비즈
- 지니TV
- Instagram
- Naver Blog
- Kakao Channel
- 각 채널별 세부 지표:
- 노출 수
- 참여자 수
- 전환율 (%)
- 비용 대비 효율 (CPA)
3. 시간대별 참여 추이 (라인 차트)
- X축: 시간 (일별/시간별 전환 가능)
- Y축: 참여자 수
- 실시간 업데이트 (5분 간격)
- 피크 시간대 하이라이트
4. 투자 대비 수익률 상세 분석 (표)
- 총 비용 산출
- 경품 비용
- 채널별 플랫폼 비용
- 기타 비용
- 예상 수익 산출
- 매출 증가액
- 신규 고객 LTV
- 투자 대비 수익률 계산식 표시
- 투자 대비 수익률 = (수익 - 비용) / 비용 × 100
- 손익분기점 표시
5. 참여자 프로필 분석 (차트)
- 연령대별 분포
- 성별 분포
- 지역별 분포
- 참여 시간대 분석
6. 비교 분석 (표)
- 업종 평균과 비교
- 참여율
- 투자 대비 수익률
- 전환율
- 내 이전 이벤트와 비교
- 성과 개선도
- 최고/최저 기록 대비
[실시간 업데이트]
- 모든 지표 5분 간격 자동 갱신
- 새로운 참여자 알림 (선택 옵션)
- 수동 새로고침 버튼
[데이터 소스]
- Participation 서비스: 참여자 데이터
- Distribution 서비스: 채널별 노출 수
- POS 시스템: 매출 데이터 (연동 시)
- 외부 API: 우리동네TV, 지니TV, SNS 통계
[모바일 최적화]
- 반응형 디자인
- 스크롤 가능한 레이아웃
- 핵심 지표 우선 표시
- M/34
- 기술 태스크
- 실시간 데이터 수집
- 5분 간격 데이터 폴링
- WebSocket 또는 SSE를 통한 실시간 업데이트
- 데이터 캐싱 (Redis)
- 다중 API 통합
- 우리동네TV API
- 링고비즈 API
- 지니TV API
- Instagram API
- Naver API
- Kakao API
- POS 시스템 연동
- 매출 데이터 수집
- 이벤트 전후 비교 로직
- 차트 라이브러리 활용
- Chart.js / Recharts 등
- 반응형 차트 구현
- 성능 최적화
- 차트 데이터 메모이제이션
- 무한 스크롤 대신 페이지네이션
- 이미지/데이터 lazy loading
---
## 기술 검토 결과
**[마이크로서비스별 검토]**
1) User 서비스
모든 유저스토리 **✅ 실현 가능**
- 표준적인 인증/인가 패턴
- JWT 토큰, Redis 캐싱 등 검증된 기술 활용
- 사업자번호 검증 API (국세청) 연동
2) Event 서비스
대부분 **✅ 실현 가능**
- 이벤트 CRUD 기능
- AI 서비스와의 연동
- LocalStorage 자동 저장 구현
3) AI 서비스
**⚠️ 높은 기술적 복잡도**
- UFR-AI-010: **주요 리스크 포인트**
- Claude API 또는 GPT-4 API 연동
- 트렌드 분석 + 이벤트 추천 병렬 처리
- 응답 시간 관리 (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 기능
- 추첨 알고리즘 구현
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
- 사업자 검증: 국세청 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주 (병렬 개발 시)
```