레슨 4 / 8·20분
시퀀스 다이어그램 심화
시퀀스 다이어그램 고급 문법
기본 시퀀스 다이어그램에서 한 단계 더 나아가, 실무에서 자주 사용하는 고급 패턴을 학습합니다. 병렬 처리(par), 크리티컬 섹션(critical), 반복/옵션 중첩 등 복잡한 시나리오를 표현하는 방법을 알아봅니다.
병렬 처리 (par)
par 블록을 사용하면 여러 메시지가 동시에 처리되는 병렬 흐름을 표현할 수 있습니다. and 키워드로 병렬 분기를 구분합니다.
mermaid
sequenceDiagram
participant U as 사용자
participant API as API 서버
participant Auth as 인증 서비스
participant DB as 데이터베이스
participant Cache as 캐시
U->>API: 대시보드 요청
par 병렬 데이터 로드
API->>DB: 사용자 정보 조회
DB-->>API: 사용자 데이터
and
API->>Cache: 최근 활동 조회
Cache-->>API: 활동 데이터
and
API->>Auth: 권한 확인
Auth-->>API: 권한 정보
end
API-->>U: 대시보드 데이터 응답크리티컬 섹션과 break
critical 블록은 반드시 실행되어야 하는 중요한 처리를, break는 흐름이 중단되는 예외 상황을 표현합니다.
mermaid
sequenceDiagram
participant Client as 클라이언트
participant Server as 서버
participant DB as 데이터베이스
Client->>Server: 결제 요청
critical 결제 처리
Server->>DB: 잔액 확인
DB-->>Server: 잔액 정보
break 잔액 부족 시
Server-->>Client: 결제 실패 (잔액 부족)
end
Server->>DB: 금액 차감
DB-->>Server: 차감 완료
end
Server-->>Client: 결제 성공참여자 스타일링과 별칭
mermaid
sequenceDiagram
actor User as 사용자
participant FE as 프론트엔드
participant BFF as BFF 서버
participant MS1 as 주문 서비스
participant MS2 as 결제 서비스
Note over FE,BFF: 마이크로서비스 아키텍처
User->>FE: 주문하기 클릭
FE->>BFF: POST /orders
BFF->>MS1: 주문 생성
MS1-->>BFF: 주문 ID 반환
BFF->>MS2: 결제 요청
MS2-->>BFF: 결제 완료
BFF-->>FE: 주문 완료 응답
FE-->>User: 주문 완료 화면
Note over MS1,MS2: 이벤트 기반 비동기 통신 가능자동 번호 매기기
autonumber 키워드를 추가하면 모든 메시지에 자동으로 순번이 부여되어 흐름을 추적하기 쉬워집니다.
mermaid
sequenceDiagram
autonumber
participant A as 클라이언트
participant B as 서버
participant C as DB
A->>B: 로그인 요청
B->>C: 사용자 검색
C-->>B: 사용자 정보
B-->>A: 토큰 발급
A->>B: 데이터 요청 (토큰 포함)
B->>C: 데이터 조회
C-->>B: 결과 반환
B-->>A: 200 OK- •par / and / end — 병렬 처리 흐름 표현
- •critical / end — 반드시 실행되어야 하는 구간
- •break — 흐름이 중단되는 예외 상황
- •actor — 사람 아이콘으로 참여자 표시
- •autonumber — 자동 순번 매기기
- •Note over A,B — 여러 참여자에 걸친 메모
💡
rect 키워드로 배경 색상이 있는 영역을 만들 수 있습니다. rect rgb(200, 220, 255) ... end 형태로 작성하면 해당 구간에 배경색이 적용됩니다.