mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 17:26:23 +00:00
- 4개 주요 비즈니스 플로우 외부 시퀀스 다이어그램 작성 * 사용자인증플로우: 회원가입, 로그인, 로그아웃 * 이벤트생성플로우: AI 추천, 이미지 생성, 다중 채널 배포 * 고객참여플로우: 이벤트 참여, 당첨자 추첨 * 성과분석플로우: 실시간 대시보드 조회 - Event-Driven 아키텍처 반영 (Kafka Event Topics + Job Topics) - Resilience 패턴 전면 적용 (Circuit Breaker, Retry, Timeout, Fallback) - Cache-Aside 패턴 적용 (Redis 캐싱) - 논리 아키텍처 및 유저스토리 기반 설계 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
# 외부시퀀스설계가이드
|
|
|
|
[요청사항]
|
|
- <작성원칙>을 준용하여 설계
|
|
- <작성순서>에 따라 설계
|
|
- [결과파일] 안내에 따라 파일 작성
|
|
|
|
[가이드]
|
|
<작성원칙>
|
|
- **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지**
|
|
- **논리아키텍처에 정의한 참여자와 일치**해야 함
|
|
- UI/UX설계서의 '사용자 플로우'참조하여 설계
|
|
- **해당 플로우에 참여하는** 프론트엔드, 모든 서비스, 인프라 컴포넌트(예: Gateway, Message Queue, Database), 외부시스템을 참여자로 추가
|
|
- 플로우에 참여자들의 역할과 책임을 명확히 표시
|
|
- 플로우 수행에 필요한 프론트엔드부터 End-to-End 호출을 순서대로 표시하고 한글 설명 추가
|
|
- 마이크로서비스 내부의 처리 흐름은 표시하지 않음
|
|
- 동기/비동기 통신 구분 (실선/점선)
|
|
- 캐시, 큐 등 인프라 컴포넌트와의 상호작용 포함
|
|
<작성순서>
|
|
- 준비:
|
|
- 유저스토리, UI/UX설계서, 논리아키텍처 분석 및 이해
|
|
- "@analyze --play" 프로토타입이 있는 경우 웹브라우저에서 실행하여 서비스 이해
|
|
- 실행:
|
|
- <플로우 분류기준>에 따라 최적의 플로우를 결정함
|
|
- 외부시퀀스설계서 작성
|
|
- <병렬수행>가이드에 따라 병렬 수행
|
|
- **PlantUML 스크립트 파일 생성 즉시 검사 실행**: 'PlantUML 문법 검사 가이드' 준용
|
|
- 검토:
|
|
- <작성원칙> 준수 검토
|
|
- 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토
|
|
- 수정 사항 선택 및 반영
|
|
<플로우 분류기준>
|
|
- **핵심 비즈니스 플로우별**: 사용자가 목표를 달성하기 위한 주요 업무 흐름
|
|
- **통합 패턴별**: 동기/비동기, 캐시 활용, 외부 연동 등 기술적 통합 방식
|
|
- **사용자 시나리오별**: 엔드투엔드 사용자 경험 기준
|
|
- **데이터 흐름별**: 데이터의 생성, 변환, 저장 과정
|
|
<병렬수행>
|
|
- **서브 에이전트를 활용한 병렬 작성 필수**
|
|
- 서비스별 독립적인 에이전트가 각 외부시퀀스설계를 동시에 작업
|
|
- 모든 설계 완료 후 전체 검증
|
|
|
|
[참고자료]
|
|
- 유저스토리
|
|
- UI/UX설계서
|
|
- 논리아키텍처
|
|
- 프로토타입
|
|
|
|
[예시]
|
|
- 링크: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-시퀀스설계서(외부).puml
|
|
|
|
[결과파일]
|
|
- **주요 비즈니스 플로우별로 파일을 분리하여 작성**
|
|
- 플로우명은 한글로 네이밍
|
|
- 위치: design/backend/sequence/outer/{플로우명}.puml
|