kt-event-marketing/think/es/06-당첨자선정및알림.puml
merrycoral 59625f59dd 이벤트스토밍 유저플로우 설계 완료
- 유저플로우 연결도 작성 (userflow.puml)
- 6개 상세 유저플로우 시퀀스 다이어그램 작성
  - 01-회원가입및매장등록
  - 02-AI이벤트기획생성
  - 03-이벤트채널배포
  - 04-이벤트참여및관리
  - 05-효과측정및분석
  - 06-당첨자선정및알림
- 이벤트스토밍 요소 포함 (Event, Command, Actor, Policy, External System, Data)
- PlantUML 문법 검증 완료 (전체 통과)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 13:07:01 +09:00

163 lines
4.8 KiB
Plaintext

@startuml 06-당첨자선정및알림
!theme mono
title 유저플로우 06: 당첨자 선정 및 알림
actor "소상공인" as Owner
actor "당첨자" as Winner
participant "당첨자 선정 시스템" as LotterySystem
participant "알림 발송 시스템" as NotificationSystem
participant "KT 멤버십 시스템" as KTMembership
participant "경품 지급 시스템" as RewardSystem
database "참여자 DB" as ParticipantDB
database "당첨 이력 DB" as WinnerDB
== 이벤트스토밍 요소 ==
note over Owner, WinnerDB
**Command**: 당첨자 선정, 알림 발송, 경품 지급 확인
**Event**: 이벤트 종료됨, 당첨자 자동선정됨,
당첨자 알림발송됨, 경품지급 완료됨
**Actor**: 소상공인, 당첨자
**External System**: 알림톡 시스템, KT 멤버십 포인트 시스템
**Policy**: 공정한 자동 추첨, 즉시 알림 발송
end note
== 이벤트 종료 및 당첨자 선정 ==
Owner -> LotterySystem : **Command**: 당첨자 선정 요청\n(데이터: 이벤트ID, 당첨자 수)
activate LotterySystem
LotterySystem --> Owner : **Event**: 이벤트 종료됨
LotterySystem -> ParticipantDB : 전체 참여자 목록 조회
activate ParticipantDB
ParticipantDB --> LotterySystem : 참여자 목록\n(데이터: 1,250명)
deactivate ParticipantDB
note right of LotterySystem
**Policy**: 공정한 자동 추첨
- 난수 생성기 사용
- 중복 당첨 방지
- 투명한 선정 기준
- 블록체인 기록 (선택)
end note
LotterySystem -> LotterySystem : 무작위 추첨 실행\n(알고리즘: Cryptographically Secure Random)
LotterySystem -> WinnerDB : 당첨자 정보 저장\n(데이터: 당첨자 목록, 추첨 시간, 추첨 알고리즘)
activate WinnerDB
WinnerDB --> LotterySystem : 저장 완료
deactivate WinnerDB
LotterySystem --> Owner : **Event**: 당첨자 자동선정됨\n(데이터: 당첨자 목록[10명], 추첨 로그)
note over Owner
**당첨자 선정 완료**
✓ 총 참여: 1,250명
✓ 당첨자: 10명
✓ 당첨 확률: 0.8%
✓ 추첨 방식: 무작위
✓ 추첨 시간: 2025-10-24 18:00
end note
== 당첨자 알림 발송 ==
LotterySystem -> NotificationSystem : 알림 발송 요청\n(데이터: 당첨자 목록, 경품 정보)
activate NotificationSystem
par 병렬 알림 발송
loop 각 당첨자에게
NotificationSystem -> Winner : **Event**: 당첨자 알림발송됨\n(알림톡: 당첨 축하, 경품 수령 안내)
note over Winner
**당첨 알림**
🎉 축하합니다!
✓ 경품: KT 멤버십 5,000P
✓ 수령 방법: 자동 지급
✓ 유효 기간: 30일
end note
end
NotificationSystem -> Owner : 알림 발송 현황 보고\n(데이터: 발송 완료 건수)
end
NotificationSystem --> LotterySystem : 알림 발송 완료
deactivate NotificationSystem
== 경품 자동 지급 ==
alt 경품 유형: KT 멤버십 포인트
LotterySystem -> KTMembership : 포인트 지급 요청\n(데이터: 당첨자 전화번호, 포인트 금액)
activate KTMembership
note right of KTMembership
**자동 포인트 지급**
- 즉시 지급 처리
- 30일 유효 기간
- 사용 내역 추적
end note
loop 각 당첨자
KTMembership -> Winner : 포인트 자동 적립\n(데이터: 5,000P)
KTMembership --> Winner : 포인트 적립 완료 알림
end
KTMembership --> LotterySystem : **Event**: 경품지급 완료됨\n(데이터: 지급 완료 목록)
deactivate KTMembership
else 경품 유형: 실물 경품
LotterySystem -> RewardSystem : 경품 배송 요청\n(데이터: 당첨자 정보, 배송 주소)
activate RewardSystem
RewardSystem -> Winner : 배송지 정보 수집\n(알림톡: 배송지 입력 요청)
Winner --> RewardSystem : 배송지 정보 제공
RewardSystem --> LotterySystem : 배송 처리 완료
deactivate RewardSystem
RewardSystem -> Winner : 배송 시작 알림\n(데이터: 송장 번호)
end
== 경품 지급 확인 및 완료 ==
LotterySystem -> WinnerDB : 경품 지급 이력 업데이트
activate WinnerDB
WinnerDB --> LotterySystem : 업데이트 완료
deactivate WinnerDB
LotterySystem --> Owner : 경품 지급 완료 보고\n(데이터: 지급 완료 목록, 지급 방식)
note over Owner
**경품 지급 완료**
✓ 포인트 지급: 10명 완료
✓ 총 지급액: 50,000P
✓ 즉시 지급 처리
✓ 수령 확인: 100%
end note
deactivate LotterySystem
== 이벤트 종료 후 피드백 ==
NotificationSystem -> Winner : 이벤트 참여 감사 메시지\n(내용: 재방문 유도, 다음 이벤트 안내)
activate NotificationSystem
note over Winner
**감사 메시지**
✓ 이벤트 참여 감사
✓ 매장 재방문 혜택 안내
✓ 다음 이벤트 예고
end note
deactivate NotificationSystem
Owner -> Owner : 이벤트 결과 검토 및\n다음 이벤트 기획
@enduml