Learning
레슨 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 형태로 작성하면 해당 구간에 배경색이 적용됩니다.