# 논리아키텍처설계가이드

[요청사항]
- <작성원칙>을 준용하여 설계
- <작성순서>에 따라 설계
- [결과파일] 안내에 따라 파일 작성 
- 완료 후 mermaid 스크립트 테스트 방법 안내 
  - https://mermaid.live/edit 에 접근 
  - 스크립트 내용을 붙여넣어 확인 

[가이드]  
<작성원칙>
- **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지**
- UI/UX설계서의 '사용자 플로우'참조하여 설계 
- '아키텍처패턴'에 선정된 클라우드 디자인 패턴을 적용하여 설계 
- 사용자 관점의 컴포넌트 다이어그램 작성
- Context Map 스타일로 서비스 내부 구조는 생략하고 서비스 간 관계에 집중
- 클라이언트에서 API Gateway로는 단일 연결선으로 표현
<작성순서>
- 준비: 
  - 유저스토리, UI/UX설계서, 아키텍처패턴 분석 및 이해 
  - "@analyze --play" 프로토타입이 있는 경우 웹브라우저에서 실행하여 서비스 이해 
- 실행: 
  - 논리아키텍처 설계서(logical-architecture.md) 작성: 아래 항목은 필수 포함하고 필요 시 항목 추가 
    - 개요: 설계 원칙, 핵심 컴포넌트 정의 
    - 서비스 아키텍처 
      - 서비스별 책임 
      - 서비스 간 통신 전략 
    - 주요 사용자 플로우
    - 데이터 흐름 및 캐싱 전략
    - 확장성 및 성능 고려사항 
    - 보안 고려사항
    - 논리아키텍처 다이어그램  
      - Mermaid 형식으로 작성하며 별도 파일로 작성: logical-architecture.mmd 
      - <통신전략>과 <의존성 표현 방법>을 준수
      - **Mermaid 스크립트 파일 검사 실행**: 'Mermaid문법검사가이드' 준용
- 검토:
  - <작성원칙> 준수 검토
  - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토
  - 수정 사항 선택 및 반영  
<통신 전략>
- **동기 통신**: 즉시 응답이 필요한 단순 조회
- **캐시 우선**: 자주 사용되는 데이터는 캐시에서 직접 읽기
- **비동기 처리**: 외부 API 다중 호출 등 장시간 작업
<의존성 표현 방법>
- 실선 화살표(→): 동기적 의존성 (필수)
- 비동기 화살표(->>): 비동기 의존성 (fire-and-forget)
- 점선 화살표(-->): 선택적 의존성 또는 느슨한 결합
- 양방향 화살표(↔): 상호 의존성
- 의존성 레이블에 목적 명시 (예: "멤버 정보 조회")
- 플로우 라벨 형식: [요청서비스약어]액션 (예: [Trip]AI 일정 생성 요청)

[참고자료]
- 유저스토리
- UI/UX설계서
- 프로토타입
- 아키텍처패턴  

[예시]
- 논리아키텍처 다이어그램: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-논리아키텍처.mmd

[결과파일]
- design/backend/logical/logical-architecture.md
- design/backend/logical/logical-architecture.mmd
