UML์ ์ข ๋ฅ ์ค ์ํ์ค ๋ค์ด์ด๊ทธ๋จ(Sequence Diagram)์ ๋ํด ์์ธํ ์์๋ณด์.
๊ทธ์ ์, UML(Unified Modeling Language) ์ด๋?
๐ฅ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ(Sequence Diagram)๋ ?
โ๏ธ ๊ฐ์ฒด๋ค ์ฌ์ด์์ ์๊ฐ์ ๋ฐ๋ผ ๋ฐ์ํ๋ ์ํธ์์ฉ์ ๋ณด์ฌ์ฃผ๋ ๋ค์ด์ด๊ทธ๋จ
โ๏ธ ๋ฌธ์ ํด๊ฒฐ์ ํ์ํ ๊ฐ์ฒด๋ฅผ ์ ์, ๊ฐ์ฒด๊ฐ์ ์ก/์์ ๋ฉ์์ง์ ์์๋ฅผ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ ํ์ํ๋ ๋ค์ด์ด๊ทธ๋จ
โ๏ธ ์ผ๋ฐ์ ์ผ๋ก ํ๋ฉด ์๊ตฌ์ฌํญ๊ณผ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ >> ์ํ์ค ๋ค์ด์ด๊ทธ๋จ๊ณผ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ํฌ๋ก์ค ์ฒดํฌ
๐ฅ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ(Sequence Diagram) ๊ตฌ์ฑ์์
1. ์กํฐ(Actor) : ์์คํ ์ผ๋ก๋ถํฐ ์๋น์ค๋ฅผ ์์ฒญํ๋ ์ธ๋ถ ์์๋ก ์ฌ๋์ด๋ ์ธ๋ถ์์คํ ์ ์๋ฏธ
2. ๊ฐ์ฒด(Object) : ํด๋์ค์ ๊ฐ์ฒด
3. ์๋ช ์ (Lifeline) : ๊ฐ์ฒด์ ์์ฑ, ์๋ฉธ, ํ์ฑํ๋ ๋๋ฅผ ๋ํ๋ด๋ ์ (์ -> ์๋, ์ ์ )
4. ํ์ฑ ๋ฐ์ค(Activation Box) : ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํธ์์ฉํ๋ฉฐ ํ์ฑํ ๋๊ณ ์์์ ํํ (์ง์ฌ๊ฐํ)
5. ๋ฉ์ธ์ง(Message) : ๊ฐ์ฒด๊ฐ ์ฃผ๊ณ ๋ฐ์ ๋ฐ์ดํฐ, ์ผ๋ฐ์ ์ผ๋ก ์์ฒญ(request)๊ณผ ์๋ต(response)๋ก ๊ตฌ์ฑ
๐ฅ ๋ฉ์์ง ํ๊ธฐ๋ฒ ๐ฅ
์ ํ | ์๋ฏธ |
๋๊ธฐ ๋ฉ์์ง(Synchronous message) | ๋ฉ์์ง ์ ์ก ๊ฐ์ฒด๊ฐ ๊ณ์ํ๊ธฐ ์ ๊น์ง ๋๊ธฐ ๋ฉ์์ง์ ๋ํ ์๋ต์ ๊ธฐ๋ค๋ฆผ. ํ๋ก๊ทธ๋จ ๋ด ์ผ๋ฐ์ ์ธ ํจ์ ํธ์ถ๊ณผ ๋์ผํ ๋์ ๋ฐฉ์์ ๋ฉ์์ง๋ฅผ ํํ |
๋น๋๊ธฐ ๋ฉ์์ง(Async message) | ๋ฉ์์ง ์ ์ก ๊ฐ์ฒด๊ฐ ๊ณ์ํ๊ธฐ ์ ๊น์ง ์๋ต์ ์๊ตฌํ๊ธฐ ์๋ ๋ฉ์์ง. ์ ์ก ๊ฐ์ฒด์ ํธ์ถ๋ง์ ํ์.๋ณดํต ๊ฐ๋ณ ์ฐ๋ ๋ ๊ฐ์ ํต์ ๋ฐ ์ ์ฐ๋ ๋์ ์์ฑ์ ์ฌ์ฉ |
์์ฒด ๋ฉ์์ง(Self message) | ์ธ์คํด์ค๊ฐ์ ์ํธ์์ฉ ๋ฟ๋ง ์๋๋ผ ํ๋์ ์ธ์คํด์ค์์ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ๋ ์ข
์ข
์์ต๋๋ค. ์ด๋ด๋๋ self ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. self message๋ ๋ณธ์ธ์ lifeline์ผ๋ก ์ฌ๊ท ํ๋ ํ์ดํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์์ ์๊ฒ ๋ณด๋ธ ๋ฉ์์ง์ ๋๋ค. ๊ฒฐ๊ณผ๋ก ์์ฑ๋ ์คํ ๋ฐ์์ด ์ ์ก ์คํ ์์ ๋ํ๋จ. |
๋ฐํ ๋ฉ์์ง(Reply/Return message) | ์ด์ ํธ์ถ์ ๋ฐํ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฐ์ฒด์๊ฒ ๋ค์ ๋ฐํ๋๋ ๋ฉ์์ง. |
โ๏ธ ๋๊ธฐ ๋ฉ์์ง (Synchronous message)
์ค์ + ๋ด๋ถ๊ฐ ์ฑ์์ง ํ์ดํ๋ก ํ๊ธฐ
๋ฆฌํด ๋ฐ์ ๋๊น์ง ๋ค๋ฅธ ๋์์์ด ๋๊ธฐ
โ๏ธ ๋น๋๊ธฐ ๋ฉ์์ง (Asynchronous message)
์ค์ + ๋ด๋ถ๊ฐ ์ฑ์์ง์ง ์์ ํ์ดํ๋ก ํ๊ธฐ
๋ฆฌํด์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค๋ฅธ ์์ ์ ์ํ
โ๏ธ ์์ฒด ๋ฉ์์ง (Self message)
๋ณธ์ธ์ Lifeline์ผ๋ก ํ๊ทํ๋ ํ์ดํ๋ฅผ ๊ทธ๋ฆผ
โ๏ธ ๋ฐํ ๋ฉ์์ง (Reply/Return message)
์ ์ ๊ณผ ์ ์ผ๋ก ์ด๋ค์ง ํ์ดํ๋ก ํํ
๐ฅ ๊ฐ๋(Guard) & ํ๋๊ทธ๋จผํธ(Combine Fragment) ๐ฅ
โ๏ธ ๊ฐ๋(Guard)
: guard๋ ๋จ์ผ ๋ฉ์์ง์ ๋ํด์ ์กฐ๊ฑด์ ๋ช ์ํ ์ ์๋ ๋ฐฉ๋ฒ
์กฐ๊ฑด์ ๋ช ์ -> [์กฐ๊ฑด] ์ฒ๋ฆฌ๋ฉ์์ง
โ๏ธ ํ๋๊ทธ๋จผํธ(Fragment)
guard๊ฐ ํ ๋ฉ์์ง์ ๋ํด์ ์กฐ๊ฑด์ ๋ช ์ํ๋ค๋ฉด, sequnce fragments๋ ๋ฒ์๋ก ์กฐ๊ฑด์ ๋ช ์ํ ์ ์๋ค.
์ฆ, ํน์ ๋ถ๋ถ์ ๋ํด์ ์ผ์ ๋ถ๋ถ์ ๋ฉ์์ง๋ฅผ ๋ฐ๋ณตํ๋์ง ์กฐ๊ฑด์ ๋ช ์ํ๋์ง ํ ๋๋ sequence fragments๊ฐ ๋ช ํํ ์ ์๋ค.
ํ๋๊ทธ๋จผํธ์๋ ๋์(alt), ์ต์ (opt), ๋ฐ๋ณต(loop),๋ณ๋ ฌ(Par), ์ฐธ์กฐ(Ref)๊ฐ ์๋ค.
โ๏ธ (1) ๋์(alt)
๋ค์ค ์กฐ๊ฑด๋ฌธ, else if ๊ฐ์ ๋์์ด ์๋ ์กฐ๊ฑด๋ฌธ
โ๏ธ (2) ์ต์ (opt)
๋จ์ผ ์กฐ๊ฑด๋ฌธ, if, switch
โ๏ธ (3) ๋ฐ๋ณต(loop)
๋ฐ๋ณต๋ฌธ, for, while
โ๏ธ(4) ๋ณ๋ ฌ(Par)
๋ณ๋ ฌ์ฒ๋ฆฌ, ๋ถ๋ฆฌ๋ ๋ช ๊ฐ์ ์ํธ์์ฉ์ด ๋์์
โ๏ธ (5) ์ฐธ์กฐ(Ref)
์ธ๋ถ์์ ์ ์๋ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ํฌํจ
โ๏ธ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ๊ณผ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ํฌ๋ก์ค ์ฒดํฌ ํ์!
์ผ๋ฐ์ ์ผ๋ก ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ์์ฑ ํ ํด๋์ค ๋ค์ด์ด ๊ทธ๋จ๊ณผ ํฌ๋ก์ค ์ฒดํฌ๊ฐ ํ์ํฉ๋๋ค.
ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ด๋?
'โ๏ธ Etc.' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] ์ ์ฅ์ repository ์ฎ๊ธฐ๊ธฐ, ์ด๋ (5) | 2021.11.11 |
---|---|
ํ๋ก๊ทธ๋จ ๋ค์ด๋ฐ ๊ท์น(Naming Convention) (0) | 2021.10.24 |
[UML] ํด๋์ค ๋ค์ด์ด๊ทธ๋จ(Class Diagram) (0) | 2021.10.19 |
[UML]UML(Unified Modeling Language) ์ด๋? (0) | 2021.10.17 |
[Web] URL ๊ตฌ์ฑ์์ (0) | 2021.10.05 |