출처: https://zoosso.tistory.com/1272
Sequence Diagram(시퀀스 다이어그램) 이란
객체 간 상호작용을 시간의 흐름에 따라 표현
• 객체 간 메시지 전달 순서 표현
• 프로세스 흐름을 시각적으로 표현
@startuml
actor User
participant Server
participant Database
User -> Server: Login Request
Server -> Database: Check Credentials
Database --> Server: Credentials Valid
Server --> User: Login Success
@enduml

Order of Messages
one Life Line에서는 a → c 순으로 실행
의존관계가 없을 때는 어떤 것을 먼저 해도 상관 없다. (a→c 혹은 c→a)

[예시]

위에 있는 것부터 해석하면
a → b → c → d → e 로 해석 가능하다.
a와 b는 c와 의존성이 없기에 다른 해석도 가능하다.
c → a → b → d → e 혹은 a → c → b → d → e
[e → d], [b → a]와 같은 의존성이 있는 곳에서 Order를 잘 지키면 된다.
참고로 [seq]는 '다른 경우가 있다' 라는 의미이기도 하다.
Synchronous message
- Response message 올때까지 기다린다.

Response message
- Synchronous messsage와 쌍으로 표현
- 생략 가능

Asynchronous message
- response 기다리지 않는다.

주요 Fragment
• alt Fragment (switch 문)
• opt Fragment (else 없는 if문)
• loop Fragment
• break Fragment
[예시] loop Fragment
최소 1회, 최대 무한하게 실행
a < 1 조건을 만족하지 않으면 종료

[예시] break Fragment
조건문을 만족하면 b,c를 실행하고 d는 실행하지 않는다.
박스 밖으로 나가서 e 실행
조건문을 만족하지 않으면 break문 실행 X

[예시]
중첩되게 표현되는 것을 볼 수 있다.

학생 | 수강 신청 시도 (시스템 내부에서 DB 처리)
• status == ok) 등록 성공
• status == waiting list free) 수강 대기
• else) Error
[예시] 비행기 예약 시스템
Customer는 [비행기 검색], [예약], [탑승권 구매], [좌석 구매] 순차적 수행
탑승권 구매는 은행을 통해 검증되어야 한다.

Time-consuming Message
메세지가 도달하는데 시간이 소요되는 경우가 있다.
이런 경우에는 기울어지게 선을 긋는다.

'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
[친절한 SQL 튜닝] 1장. SQL 처리 과정과 I/O (0) | 2025.02.10 |
---|---|
[친절한 SQL 튜닝] 3장. 인덱스 튜닝 (0) | 2025.02.10 |
[UML] 시퀀스 다이어그램 이해하기 (0) | 2025.02.10 |
[ UML ] 시퀀스 다이어그램(Sequence Diagram) 이론 (0) | 2025.02.10 |
UML - 시퀀스 다이어그램 - loop, if (0) | 2025.02.10 |