[UML] ์ํ์ค ๋ค์ด์ด๊ทธ๋จ (with Mermaid)
์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ํตํด ๋ณต์กํ ์์คํ ์ด ์๊ฐ๊ณผ ์ฐ๊ณ๋์ด ์ํธ์์ฉ๋๋ ๊ฒ์ ์ดํดํ ์ ์๋ค.
์์๊ฐ ์ค์ํ ๋น์ฆ๋์ค ๋ก์ง์์ ์์ธ ์ํฉ๊ณผ ๋ถ๊ธฐ ๋ก์ง ๋ช ํํ, ๋์์ฑ ๋ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ตฌ๊ฐ ์๋ณ์ ์ํด ํ์ํ๋ค.
์ด ๋ค์ด์ด๊ทธ๋จ์ด ๋ค๋ฅธ ํ ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ๋๊ตฌ๋ก์ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ฐ๋ฐํ๊ณผ ๊ธฐํํ ์ฌ์ด์์๋ ๋น์ฆ๋์ค ๋ก์ง์ด ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง์ ๋ํ ์๊ฐํ๋ฅผ ํ ์ ์๋ค. ๊ฐ๋ฐํ๊ณผ ์ด์ํ ์ฌ์ด์์๋ ์์คํ ๊ตฌ์กฐ์ ๋ก๊ทธ๋ฅผ ๋น๊ตํ๋ฉฐ ๋น ๋ฅด๊ฒ ๋ชจ๋ํฐ๋ง ํฌ์ธํธ๋ฅผ ์๋ณํ ์ ์๋ค๊ณ ์๊ฐํ๋ค. ๋ฌผ๋ก ๊ฐ๋ฐํ ๋ด๋ถ์์๋ ์ฝ๋๋ฅผ ๋ชจ๋ ์ฝ๊ณ ๋๋ฒ๊น ์ ํตํด ๋ก์ง์ ํ์ธํ ์ ์๊ณ ํด์ผ๋ง ํ์ง๋ง ์ถ์ํ๋ ๋์๋๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ค๋ ์ ์ด ์ฅ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๋ํ, ์ฑ๋ฅ์ ๊ฐ์ ํ์ ๋ ๋ก์ง์ ์ ๊ณผ ํ๋ฅผ ํ ๋์ ๋น๊ตํจ์ผ๋ก์ ์ ๋ก๋ฅผ ๋จ๊ธธ ์ ์๋ค๊ณ ์๊ฐํ๋ค.
์ ๊ทธ๋ ค๋์ผ๋ฉด ๊ฐ๋ฐ ์ค์ ํท๊ฐ๋ฆฌ๊ฑฐ๋ 1๋
ํ์ ๋ด๊ฐ ํท๊ฐ๋ คํ๋๋ฐ;;
- UML ํ์ค ๋ฌธ๋ฒ์ Object Management Group(OMG)์์ ๊ด๋ฆฌํ๋ค๊ณ ํ๋ค.
๋งํฌ : https://www.omg.org/spec/UML (17.8 Sequence Diagrams)
About the Unified Modeling Language Specification Version 2.5.1
UML® Unified Modeling Language A specification defining a graphical language for visualizing, specifying, constructing, and documenting the artifacts of distributed object systems. Title: Unified Modeling Language Acronym: UML® Version: 2.5.1 Document St
www.omg.org

| ———โถ (์ค์ + ์ฑ์์ง ํ์ดํ) |
๋๊ธฐ ํธ์ถ ๋ฉ์์ง (Sync Call) | ํธ์ถ์๊ฐ ์๋ต์ ๋ฐ์ ๋๊น์ง ๋๊ธฐ | REST API ํธ์ถ, DB์ฟผ๋ฆฌ, ์ผ๋ฐ์ ์ธ ๋ฉ์๋ ํธ์ถ |
| ———โท (์ค์ + ์ด๋ฆฐ ํ์ดํ) |
๋น๋๊ธฐ ํธ์ถ ๋ฉ์์ง (Async Call) | ํธ์ถ์๊ฐ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ฆ์ ๋ค์ ์์ ์ํ | ์ด๋ฒคํธ ๋ฐํ, ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์์, ์๋ฆผ ์ ์ก |
| โ - - - (์ ์ + ์ด๋ฆฐ ํ์ดํ) |
์๋ต ๋ฉ์์ง (Reply Message) | ๋๊ธฐ ํธ์ถ์ ๋ํ ๋ฐํ๊ฐ์ด๋ ์๋ฃ ์ ํธ | API์๋ต ๋ฐ์ดํฐ, ๋ฉ์๋ ๋ฆฌํด๊ฐ, ์ฒ๋ฆฌ ์๋ฃ ํ์ธ |
|
——lost—โ
|
๋ถ์ค ๋ฉ์์ง (LostMessage) | ๋ชฉ์ ์ง๊ฐ ๋ค์ด์ด๊ทธ๋จ ๋ฐ์ ์๋ ๋ฉ์์ง | ์ธ๋ถ ์์คํ ์ผ๋ก ๋ณด๋ด๋ ๋ฉ์ธ์ง, ๋คํธ์ํฌ ๋ฐ์ผ๋ก ๋๊ฐ๋ ๋ฉ์์ง |
| โ—found—โถ | FoundMessage | ๋ฐ์ ์๋ ์ ์ ์์ง๋ง ์์ ์๋ ์๋ ค์ง ๋ฉ์์ง | ์ธ๋ถ์์ ๋ค์ด์ค๋ ์ด๋ฒคํธ, ์ฌ์ฉ์ ์ ๋ ฅ, ์ธ๋ถ ์์คํ ์ฝ๋ฐฑ |

| Frame | opt (์กฐ๊ฑด์ด ์ฐธ์ผ ๋๋ง ์คํ๋๋ ์ ํ์ ํ๋ฆ) opt [์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ๋จ] ์ฌ์ฉ์ -> ์์คํ : ๋์๋ณด๋ ํ์ loop (ํน์ ์กฐ๊ฑด์ด ์ฐธ์ธ ๋์ ๋ฐ๋ณต ์คํ๋๋ ํ๋ฆ) loop [์์ดํ ์ด ๋จ์์๋ ๋์] ์์คํ → ๊ฒฐ์ ๋ชจ๋ : ์์ดํ ๊ฒฐ์ ์ฒ๋ฆฌ alt (์กฐ๊ฑด ๋ถ๊ธฐ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋์ ํ๋ฆ ์ค ํ๋๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ) alt [๋ก๊ทธ์ธ์ฑ๊ณต] ์ฌ์ฉ์ -> ์์คํ : ๋์๋ณด๋ ํ์ ---- else [๋ก๊ทธ์ธ ์คํจ] ์์คํ -> ์ฌ์ฉ์ : ์๋ฌ ๋ฉ์์ง ํ์ par (์ฌ๋ฌ ๋ฉ์์ง ํ๋ฆ์ด ๋์์ ์คํ๋๋ ๊ตฌ๊ฐ) par -------------------- [ํ๋ฆ A] ๊ฐ์ฒด1 -> ๊ฐ์ฒด2 : ๋ฉ์์ง A -------------------- [ํ๋ฆ B] ๊ฐ์ฒด1 -> ๊ฐ์ฒด3 : ๋ฉ์์ง B |
์์ ์๋ draw.io ๋ฅผ ์ฌ์ฉํ์๋๋ฐ, ๋๋๊ทธ์ค ๋๋์ผ๋ก ํ๋์ฉ ์์น์ ๋์์ผ ํ๋ ๋ฌธ์ ์ ์ด ์์๋ค.
Mermaid๋ ์ฝ๋๋ก UML์ ์์ฑํ ์ ์๊ฒ ํด์ค์ ์ข๋ค
Mermaid
Create diagrams and visualizations using text and code.
mermaid.js.org