# 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: [프로필관리] 소상공인으로서 | 나는 내 정보를 최신 상태로 유지하기 위해 | 프로필 정보를 편집하고 싶다.
- 시나리오: 프로필 정보 수정
  Bottom Navigation의 "프로필" 탭을 클릭하여 프로필 편집 화면에 접근한 상황에서 | 변경할 정보를 수정하고 저장 버튼을 클릭하면 | 변경사항이 저장되고 확인 메시지가 표시된다.

  [수정 가능 항목]
  - 기본 정보
    - 이름: 실명 변경 가능
    - 전화번호: 변경 시 재인증 필요
    - 이메일: 이메일 변경 가능
  - 매장 정보
    - 매장명
    - 업종
    - 주소
    - 영업시간
  - 비밀번호
    - 현재 비밀번호 확인 필수
    - 새 비밀번호 규칙: 8자 이상 (영문/숫자/특수문자 포함)

  [저장 처리]
  - 저장 전 확인: "변경사항을 저장하시겠습니까?"
  - 저장 완료: "프로필이 성공적으로 업데이트되었습니다"
  - 취소 선택: "변경사항이 저장되지 않습니다. 계속하시겠습니까?"

- C/8

---

UFR-USER-040: [로그아웃] 소상공인으로서 | 나는 보안을 위해 | 서비스 사용 후 안전하게 로그아웃하고 싶다.
- 시나리오: 안전한 로그아웃
  Bottom Navigation의 "프로필" 탭에서 로그아웃 버튼을 선택한 상황에서 | 로그아웃 확인 다이얼로그에서 확인을 클릭하면 | 세션이 종료되고 로그인 화면으로 이동한다.

  [로그아웃 요구사항]
  - 확인 다이얼로그
    - 메시지: "로그아웃 하시겠습니까?"
    - 버튼: 취소/확인

  [처리 결과]
  - 확인 선택: "안전하게 로그아웃되었습니다" 메시지 → 로그인 화면
  - 취소 선택: 다이얼로그 닫힘, 현재 화면 유지

- S/3

---

2. Event 서비스
1) 이벤트 관리
UFR-EVENT-010: [대시보드] 소상공인으로서 | 나는 내 이벤트를 효율적으로 관리하기 위해 | 대시보드에서 진행중/예정/종료된 이벤트를 한눈에 확인하고 싶다.
- 시나리오: 대시보드에서 이벤트 목록 확인
  로그인한 상태에서 Bottom Navigation의 "홈" 탭을 클릭하거나, 최초 로그인 시 대시보드에 접근한 상황에서 | 이벤트 목록 영역을 확인하면 | 내 이벤트들이 상태별로 구분되어 표시된다.

  [표시 요구사항]
  - 이벤트 상태별 섹션 구성
    - "진행중": 현재 진행 중인 이벤트
    - "예정": 배포 대기 중인 이벤트
    - "종료": 완료된 이벤트
  - 이벤트 카드 정보
    - 이벤트명
    - 이벤트 기간
    - 진행 상태 뱃지
    - 간단한 통계 (참여자 수, 조회수 등)

  [상호작용 요구사항]
  - 이벤트 카드 클릭: 해당 이벤트 상세 화면으로 이동
  - 섹션당 최대 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: [이벤트목록관리] 소상공인으로서 | 나는 모든 이벤트를 관리하기 위해 | 전체 이벤트 목록을 조회하고 필터링/검색하고 싶다.
- 시나리오: 전체 이벤트 목록 조회
  Bottom Navigation의 "이벤트" 탭을 클릭하거나, 대시보드에서 "전체보기" 링크를 클릭한 상황에서 | 이벤트 목록 화면에 접근하면 | 모든 이벤트가 테이블 형태로 표시된다.

  [목록 표시 요구사항]
  - 테이블 컬럼
    - 이벤트명
    - 이벤트 기간
    - 상태 (진행중/예정/종료)
    - 참여자 수
    - 투자 대비 수익률
    - 생성일
  - 페이지네이션 (페이지당 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 이미지 자동 생성
  이벤트 추천을 완료한 상황에서 | SNS 이미지 생성 화면에 접근하면 | AI가 3가지 스타일의 SNS 이미지를 자동 생성한다.

  [이미지 생성 입력]
  - 이벤트 제목
  - 경품 정보
  - 브랜드 컬러 (프로필에서 가져옴)
  - 로고 이미지 (업로드된 경우)

  [3가지 스타일 카드 선택]
  1. 심플 스타일
     - 깔끔한 디자인
     - 텍스트 중심
     - 읽기 쉬운 구성
     - 카드 형태로 제공 (선택 가능)

  2. 화려한 스타일
     - 눈에 띄는 디자인
     - 이미지 강조
     - 풍부한 색상
     - 카드 형태로 제공 (선택 가능)

  3. 트렌디 스타일
     - 최신 트렌드 반영
     - SNS 최적화
     - MZ세대 타겟
     - 카드 형태로 제공 (선택 가능)

  [플랫폼별 최적화]
  - Instagram: 1080x1080
  - Naver Blog: 800x600
  - Kakao Channel: 800x800

  [생성 프로세스]
  - 생성 진행 표시 (스피너 애니메이션)
  - "딥러닝 모델이 이벤트에 어울리는 이미지를 생성하고 있어요..." 안내
  - 예상 소요 시간: 5초 이내
  - 생성 완료 시 3가지 스타일 카드 표시

  [이미지 선택 및 미리보기]
  - 3가지 스타일 중 1개 선택 가능 (카드 선택 방식)
  - 각 카드 클릭 시 풀스크린 미리보기 제공
  - "다시 생성" 옵션 (최대 3회)
  - 선택 완료 시 "다음" 버튼 활성화

- M/21

---

UFR-CONT-020: [콘텐츠편집] 소상공인으로서 | 나는 생성된 이미지를 내 스타일에 맞게 조정하기 위해 | 간단한 편집 기능을 사용하고 싶다.
- 시나리오: 생성된 콘텐츠 편집
  SNS 이미지 스타일을 선택한 상황에서 | 콘텐츠 편집 화면에서 텍스트나 색상을 수정하면 | 실시간으로 미리보기가 업데이트된다.

  [편집 가능 항목]
  - 텍스트 수정
    - 제목 텍스트 (인라인 편집)
    - 경품 정보 텍스트 (인라인 편집)
    - 참여 안내 텍스트 (인라인 편집)
  - 색상 조정
    - 배경색 (컬러 피커)
    - 텍스트 색상 (컬러 피커)
    - 강조 색상 (컬러 피커)

  [편집 제약사항]
  - 레이아웃 변경 불가
  - 로고 위치/크기 조절 불가
  - 이미지 교체 불가 (이전 화면의 "다시 생성"으로만 가능)

  [실시간 미리보기]
  - 수정사항 즉시 반영
  - 플랫폼별 미리보기 전환 가능 (Instagram/Naver/Kakao)
  - 모바일 상단에 미리보기 영역 표시

  [저장 및 완료]
  - "저장" 버튼: 편집 내용 임시 저장
  - "다음" 버튼: 배포 채널 선택 화면으로 이동

- 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: [성과분석] 소상공인으로서 | 나는 이벤트 성과를 한눈에 파악하기 위해 | 모든 지표가 통합된 실시간 성과분석 대시보드를 보고 싶다.
- 시나리오: 성과분석 대시보드 조회
  Bottom Navigation의 "분석" 탭을 클릭하거나, 이벤트 상세 화면에서 "성과분석" 버튼을 클릭한 상황에서 | 성과분석 대시보드 화면에 접근하면 | 모든 핵심 지표가 하나의 화면에 실시간으로 표시된다.

  [대시보드 구성]

  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. 이벤트 목적 선택 (07-이벤트목적선택)
2. AI 트렌드 분석 및 이벤트 추천 (08-AI이벤트추천)
   - 3가지 추천, 제목/경품 간단 수정 가능
3. SNS 이미지 생성 (09-SNS이미지생성)
   - 3가지 스타일 카드 중 선택
4. 콘텐츠 편집 (10-콘텐츠편집)
   - 텍스트, 색상 편집
5. 배포채널 선택 (11-배포채널선택)
6. 최종승인 (12-최종승인)

**[서비스 간 의존성]**
- 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주 (병렬 개발 시)
```
