# 외부시퀀스설계가이드 

[요청사항]
- <작성원칙>을 준용하여 설계
- <작성순서>에 따라 설계
- [결과파일] 안내에 따라 파일 작성 

[가이드]  
<작성원칙>
- **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지**
- **논리아키텍처에 정의한 참여자와 일치**해야 함 
- 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
