๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Basics/Concepts

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊ฐœ๋…๊ณผ ์ข…๋ฅ˜ - UML ๋™์  ๋ชจ๋ธ

by IworldT 2022. 3. 17.
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š”! 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊ฐœ๋…๊ณผ ์ข…๋ฅ˜๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” UML(Unified Model Language)์˜ ์ •์  ๋ชจ๋ธ, ๋™์  ๋ชจ๋ธ, ๊ธฐ๋Šฅ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜๋กœ, ๋ณดํ†ต ๊ธฐ๋Šฅ ๋ชจ๋ธ๊ณผ ๋™์  ๋ชจ๋ธ์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ•ฉ์ณ์„œ ๋ถ„๋ฅ˜ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 


 

UML ๋ถ„๋ฅ˜ ์ •์  ๋ชจ๋ธ, ๋™์  ๋ชจ๋ธ, ๊ธฐ๋Šฅ ๋ชจ๋ธ

 

 

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ ๋œป ๊ฐœ๋…

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋ž€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง, ์ •์  ๋ชจ๋ธ๋ง์ด ๋๋‚œ ํ›„ ๋™์  ๋ชจ๋ธ๋ง ์‹œ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๋ณ€ํ™”๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

์ฃผ๋กœ ์ œ์–ด ํ๋ฆ„, ์ƒํ˜ธ ์ž‘์šฉ, ๋™์ž‘ ์ˆœ์„œ์— ๋”ฐ๋ฅธ ๋ณ€ํ™”๋ฅผ ํ‘œํ˜„ํ•˜๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด ์ƒํƒœ(State), ์‚ฌ๊ฑด(Event), ๋™์ž‘(Action) ๋“ฑ์˜ ๊ฐœ๋…๋“ค์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ ์ข…๋ฅ˜ ๋ถ„๋ฅ˜

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ข…๋ฅ˜์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์‹œํ€€์Šค(Sequence) ๋‹ค์ด์–ด๊ทธ๋žจ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜(Communication) ๋‹ค์ด์–ด๊ทธ๋žจ, ์Šคํ…Œ์ดํŠธ(State, State-Machine) ๋‹ค์ด์–ด๊ทธ๋žจ, ์ธํ„ฐ๋ž™์…˜ ์˜ค๋ฒ„๋ทฐ(Interaction Overview) ๋‹ค์ด์–ด๊ทธ๋žจ, ํƒ€์ด๋ฐ(Timing) ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์žˆ๋‹ค.

 

(1) ์‹œํ€€์Šค(Sequence) ๋‹ค์ด์–ด๊ทธ๋žจ

์‹œ๋‚˜๋ฆฌ์˜ค์˜ ํ๋ฆ„์„ ์ˆœ์ฐจ์ ์œผ๋กœ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ๊ฐ์ฒด์™€ ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋ฉ”์‹œ์ง€ ํ๋ฆ„์œผ๋กœ ํ‘œ๊ธฐํ•œ๋‹ค.

์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์œ ์Šค์ผ€์ด์Šค(Use Case)๋ณ„๋กœ ์ž‘์„ฑํ•œ๋‹ค.

๋ฌธ์žฅ์œผ๋กœ ์„œ์ˆ ํ•œ ๋ฉ”์‹œ์ง€๋Š” ํด๋ž˜์Šค ๊ฐ„ ์—ฐ์‚ฐ์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

2์ฐจ์›์œผ๋กœ ํ‘œํ˜„ ๋˜๋Š” ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ์ˆ˜์ง์˜ ์ถ•์€ ๋ฐœ์ƒ ์ˆœ์„œ๋กœ์„œ ํ˜ธ์ถœ ์ˆœ์„œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์ˆ˜ํ‰์˜ ์ถ•์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜๋Š” ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ํ๋ฆ„์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์ด๋‚˜ ๋ณต์žกํ•œ ๋ช…์„ธ๋ฅผ ๊ฐ€์ง€๋Š” ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•˜๋‹ค.

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋™์  ๋ชจ๋ธ๋ง ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋‹ค.

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

๋ฐ˜์‘ํ˜•

 

 

(2) ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜(Communication) ๋‹ค์ด์–ด๊ทธ๋žจ

๊ฐ์ฒด๋“ค ์‚ฌ์ด์˜ ํ–‰์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๊ฐ์ฒด ๊ฐ„ ์ •์ ์ธ ๊ตฌ์กฐ์— ์—ญ์ ์„ ๋‘๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

์œ ์Šค์ผ€์ด์Šค๋ณ„๋กœ ์ž‘์„ฑํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์œ ์Šค์ผ€์ด์Šค์—์„œ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ ํ๋ฆ„๋ณ„๋กœ ์ž‘์„ฑํ•œ๋‹ค.

๊ฐ์ฒด ๊ฐ„ ๋ฉ”์‹œ์ง€์— ๋” ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค.

์ด ๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ†ตํ•ด ๊ด€๊ณ„๋ฅผ ์ž˜ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒํ˜ธ ์ž‘์šฉ์˜ ํŒจํ„ด์„ ๊ด€์ฐฐํ•˜๊ธฐ๊ฐ€ ์šฉ์ดํ•˜๋‹ค.

ํŠน์ • ๊ฐ์ฒด์—์„œ ๋ณ€๊ฒฝ ๋ฐœ์ƒ ์‹œ์˜ ํŒŒ๊ธ‰ ํšจ๊ณผ๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ ์‰ฝ๋‹ค.

UML 2.0 ๋ฒ„์ „์—์„œ๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜(Communication) ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ถˆ๋ฆฌ๊ณ , ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” ์ฝœ๋ผ๋ณด๋ ˆ์ด์…˜(Collaboration) ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ถˆ๋ฆฐ๋‹ค.

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ

 

 

(3) ์Šคํ…Œ์ดํŠธ(State) ๋‹ค์ด์–ด๊ทธ๋žจ

ํŠน์ • ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ „์ฒด ์œ ์Šค์ผ€์ด์Šค์— ๊ฑธ์นœ ์ƒํƒœ์™€ ์ƒํƒœ ๊ฐ„์˜ ์ „์ด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋‹ค.

์Šคํ…Œ์ดํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ํŠน์ • ์‹œ์ ์— ๋ฐœ์ƒํ•˜๋ฉฐ, ์ƒํƒœ ์ „์ด์˜ ์›์ธ์ธ ์ด๋ฒคํŠธ์™€ ๊ฐ์ฒด๊ฐ€ ์ด๋ฒคํŠธ๋กœ ์ธํ•ด ์›๋ž˜ ์ƒํƒœ์—์„œ ๋‹ค์Œ ์ƒํƒœ๋กœ ๋ณ€ํ™”๋˜๋Š” ์ „์ด(Transition),

๊ทธ๋ฆฌ๊ณ  ์ƒํƒœ ์ „์ด ์‹œ์— ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๊ฒฝ์šฐ์—๋งŒ ์ „์ด๊ฐ€ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์ •๋˜๋Š” ์กฐ๊ฑด์ธ ๊ฐ€๋“œ ์ปจ๋””์…˜(Guard Condition) ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ด ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ํŠน์ • ๊ฐœ์ฒด์— ๋Œ€ํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ์ƒํƒœ ์ „์ด ๊ณผ์ •์„ ๋ฌ˜์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒํƒœ ๋จธ์‹ (State Machine) ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค.

๋™์ ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒํƒœ ๋จธ์‹  ๋‹ค์ด์–ด๊ทธ๋žจ

 

 

(4) ์ธํ„ฐ๋ž™์…˜ ์˜ค๋ฒ„๋ทฐ(Interaction Overview)

๋‹ค์ด์–ด๊ทธ๋žจ UML 2.0์—์„œ ์ถ”๊ฐ€๋œ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ฐ๊ฐ์˜ ์ธํ„ฐ์•ก์…˜์„ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋กœ ๋ณด๊ณ  ์ด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋‹ค.

๊ฐ ์ธํ„ฐ์•ก์…˜์€ ์‹œํ€€์Šค, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ์ƒ์„ธ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ƒ์œ„ ์ˆ˜์ค€ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ์„ ๋ณด์—ฌ์ค€๋‹ค.

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ ์ธํ„ฐ๋ ‰์…˜ ์˜ค๋ฒ„๋ทฐ

 

 

(5) ํƒ€์ด๋ฐ(Timing) ๋‹ค์ด์–ด๊ทธ๋žจ

์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์ด ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ œ์•ฝ์ด ์ค‘์š”ํ•˜๊ฒŒ ๋‹ค๋ฃจ์–ด์ ธ์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

๊ฐ€๋กœ์ถ•์— ์‹œ๊ฐ„์„ ํ‘œ๊ธฐํ•˜๊ณ  ์„ธ๋กœ์ถ•์— ์ƒํƒœ๋ฅผ ํ‘œ๊ธฐํ•˜์—ฌ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๊ตฌ์„ฑ ์š”์†Œ ์ƒํƒœ์˜ ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.

๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ ํƒ€์ด๋ฐ ๋‹ค์ด์–ด๊ทธ๋žจ

 


 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ทธ ์•ˆ์— ์†ํ•œ ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ ๋“ฑ ์—ฌ๋Ÿฌ ๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

UML์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ์ง€์†์ ์œผ๋กœ ์–ธ๊ธ‰๋˜๊ณ  ์•Œ์•„๋‘์–ด์•ผ ํ•  ๋ถ€๋ถ„์ด๋‹ˆ ํ•œ๋ฒˆ์”ฉ ์ž˜ ์ •๋ฆฌํ•ด๋‘์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

์œ„์˜ ๋ชจ๋“  ์ž๋ฃŒ์˜ ์ถœ์ฒ˜๋Š” NCS SW๊ฐœ๋ฐœ ๊ต์œก์ž๋ฃŒ - ๋™์ ๋ชจ๋ธ์„ค๊ณ„ ํ•™์Šต๋ชจ๋“ˆ ์— ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€