๋‚˜๋งŒ์˜ ์˜ค๋ž˜๋‹ฌ๋ฆฌ๊ธฐ๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ

Become a ghost

Computer Science/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ณต๋ถ€๊ธฐ๋ก

[240713] UML (Unified Modeling Language) ํ†ตํ•ฉ ๋ชจ๋ธ๋ง ์–ธ์–ด

jennnnna 2024. 7. 13. 10:23

 

UML (Unified Modeling Language) ํ†ตํ•ฉ ๋ชจ๋ธ๋ง ์–ธ์–ด๋ž€ ? 

์‹œ์Šคํ…œ ๋ถ„์„, ์„ค๊ณ„, ๊ตฌํ˜„ ๋“ฑ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž์™€ ๊ณ ๊ฐ ๋˜๋Š” ๊ฐœ๋ฐœ์ž ์ƒํ˜ธ๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ต์ด ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ‘œ์ค€ํ™”ํ•œ ๋Œ€ํ‘œ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ๋ชจ๋ธ๋ง ์–ธ์–ด. 

- UML ์€ Rumbaught(OMT), Booch, Jacobson ๋“ฑ์˜ ๊ฐ์ฒด์ง€ํ–ฅ ๋ฐฉ๋ฒ•๋ก ์˜ ์žฅ์ ์„ ํ†ตํ•ฉํ•˜์˜€์œผ๋ฉฐ, 
๊ฐ์ฒด ๊ธฐ์ˆ  ๊ตญ์ œ ํ‘œ์ค€ํ™”๊ธฐ๊ตฌ์ธ OMG์—์„œ ํ‘œ์ค€์œผ๋กœ ์ง€์ •๋จ 

- UML ์œผ๋กœ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” 6๊ฐœ์˜ ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ, ์‹œ์Šคํ…œ ๋™์ž‘์„ ํ‘œํ˜„ํ•˜๋Š” 7๊ฐœ ํ–‰์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ ์ž‘์„ฑ ๊ฐ€๋Šฅ. 
๋‹ค์ด์–ด๊ทธ๋žจ์„ ํ†ตํ•ด ์‚ฌ๋ฌผ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. 

๊ตฌ์„ฑ์š”์†Œ: ์‚ฌ๋ฌผ(things), ๊ด€๊ณ„(relationship), ๋‹ค์ด์–ด๊ทธ๋žจ (Diagram) ๋“ฑ๋“ฑ 

๋ชจ๋ธ๋ง ์–ธ์–ด๋ž€? ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ๊ธฐ๋ฒ•, ๋„๊ตฌ ๋“ฑ์„ ๋งํ•œ๋‹ค.
์ฃผ๋กœ ๋„ํ˜•, ๊ธฐํ˜ธ, ํ…์ŠคํŠธ ๋“ฑ์„ ์ด์šฉํ•ด ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„๋จ. 

 

์‚ฌ๋ฌผ (Things) 
๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์š”์†Œ. ๋‹ค์ด์–ด๊ทธ๋žจ ์•ˆ์—์„œ ๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ๋“ค์„ ๋งํ•œ๋‹ค. 

๊ตฌ์กฐ ์‚ฌ๋ฌผ
(Structual Things)
- ์‹œ์Šคํ…œ์˜ ๊ฐœ๋…์ , ๋ฌผ๋ฆฌ์  ์š”์†Œ๋ฅผ ํ‘œํ˜„
- class, use case, component, node ๋“ฑ *component: ๋ฌธ์„œ, ์†Œ์Šค์ฝ”๋“œ, ํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ๋ชจ๋“ˆํ™”๋œ ์ž์›
ํ–‰๋™ ์‚ฌ๋ฌผ
(Behavioral Things)
- ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์— ๋”ฐ๋ฅธ ์š”์†Œ๋“ค์˜ ํ–‰์œ„๋ฅผ ํ‘œํ˜„ 
- ์ƒํ˜ธ์ž‘์šฉ, ์ƒํƒœ๋จธ์‹  ๋“ฑ
๊ทธ๋ฃน ์‚ฌ๋ฌผ 
(Grouping Things)
- ์š”์†Œ๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„
- ํŒจํ‚ค์ง€ 
์ฃผํ•ด ์‚ฌ๋ฌผ
(Annotation Things)
- ๋ถ€๊ฐ€์ ์ธ ์„ค๋ช…์ด๋‚˜ ์ œ์•ฝ ์กฐ๊ฑด๋“ค์„ ํ‘œํ˜„
- ๋…ธํŠธ (note) 

์ถœ์ฒ˜: ์‹œ๋‚˜๊ณต ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ 2023 

 

๊ด€๊ณ„ (Relationships)
์‚ฌ๋ฌผ๊ณผ ์‚ฌ๋ฌผ ์‚ฌ์ด์˜ ์—ฐ๊ด€์„ฑ์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ.

์ข…๋ฅ˜: ์—ฐ๊ด€๊ด€๊ณ„, ์ง‘ํ•ฉ๊ด€๊ณ„, ํฌํ•จ๊ด€๊ณ„, ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„, ์˜์กด ๊ด€๊ณ„, ์‹ค์ฒดํ™” ๊ด€๊ณ„ ๋“ฑ 

1) ์—ฐ๊ด€๊ด€๊ณ„ (Association)
2๊ฐœ ์ด์ƒ์˜ ์‚ฌ๋ฌผ์ด ์„œ๋กœ ๊ด€๋ จ๋˜์–ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ„. 
- ์‚ฌ๋ฌผ ์‚ฌ์ด๋ฅผ ์‹ค์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋ฉฐ, ๋ฐฉํ–ฅ์„ฑ์€ ํ™”์‚ดํ‘œ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. 
- ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์–‘๋ฐฉํ–ฅ์˜ ๊ฒฝ์šฐ ์‹ค์„ ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. 
- ์—ฐ๊ด€์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐ์ฒด ๊ฐœ์ˆ˜๋ฅผ ์„  ์œ„์— ํ‘œํ˜„ํ•œ๋‹ค = ๋‹ค์ค‘๋„ (multiplicity) 

 

์‚ฌ๋žŒ์ด ์ง‘์„ ์†Œ์œ ํ•œ๋‹ค. ์ง‘์€ ๋ˆ„๊ตฌ์—๊ฒŒ ์ž์‹ ์ด ์†Œ์œ ๋˜๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค / ์„ ์ƒ๋‹˜์€ ์—ฌ๋Ÿฌ๋ช…์˜ ํ•™์ƒ์„ ๊ฐ€๋ฅด์น˜๊ณ  ํ•™์ƒ์€ ํ•œ๋ช… ์ด์ƒ์˜ ์„ ์ƒ๋‹˜์—๊ฒŒ ๊ฐ€๋ฅด์นจ์„ ๋ฐ›๋Š”๋‹ค.

 

2) ์ง‘ํ•ฉ ๊ด€๊ณ„ (Aggregation) 
ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์—๊ฒŒ ํฌํ•จ๋จ. 
- ํฌํ•จํ•˜๋Š” ์ชฝ(whole)๊ณผ ํฌํ•จ๋˜๋Š” ์ชฝ(part) ์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ด๋‹ค. 
- ํฌํ•จํ•˜๋Š” ์ชฝ์— ์†์ด ๋นˆ ๋งˆ๋ฆ„๋ชจ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ์„œ ํ‘œํ˜„ํ•œ๋‹ค. 

์ปดํ“จํ„ฐ๋Š” ์—ฌ๋Ÿฌ ์ฃผ๋ณ€ ์žฅ์น˜๋“ค์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ”„๋ฆฐํ„ฐ, ๋งˆ์šฐ์Šค, ๋ชจ๋‹ˆํ„ฐ ๋“ฑ) ์ด ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ง‘ํ•ฉ๊ด€๊ณ„์— ํฌํ•จ๋จ.

์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ด์ง ์• ๋งคํ•˜๊ฒŒ ๋Š๊ปด์กŒ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ”„๋ฆฐํ„ฐ๊ฐ€ ์ปดํ“จํ„ฐ๋Š” ๋‹จ์ˆœํžˆ ์—ฐ๊ด€ ๊ด€๊ณ„ (Association) ๋กœ๋„ ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 
๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ „์ฒด whole ์ด๊ณ , ํ”„๋ฆฐํ„ฐ๊ฐ€ ๋ถ€๋ถ„ part์ด๋‹ค. ํ”„๋ฆฐํ„ฐ๋Š” ์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์ž‘๋™ํ•˜์ง€๋งŒ ๋…๋ฆฝ์ ์œผ๋กœ๋„ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ํ”„๋ฆฐํ„ฐ๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

 

3) ํฌํ•จ ๊ด€๊ณ„ 
์ง‘ํ•ฉ ๊ด€๊ณ„์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ, ํฌํ•จํ•˜๋Š” ์‚ฌ๋ฌผ์˜ ๋ณ€ํ™”๊ฐ€ ํฌํ•จ๋˜๋Š” ์‚ฌ๋ฌผ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ด€๊ณ„
- whole๊ณผ part๋Š” ์„œ๋กœ ๋…๋ฆฝ๋  ์ˆ˜ ์—†๊ณ  ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ํ•จ๊ป˜ ํ•œ๋‹ค. 
- ํฌํ•จํ•˜๋Š” ์ชฝ์— ์†์ด ์ฑ„์›Œ์ง„ ๋งˆ๋ฆ„๋ชจ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ์„œ ํ‘œํ˜„ํ•œ๋‹ค. 

ํŠน์ • ๋ฌธ์„ ์—ด ์ˆ˜ ์žˆ๋Š” ํ‚ค๋Š” ํ•˜๋‚˜์ด๋ฉฐ, ํ•ด๋‹น ํ‚ค๋กœ ๋‹ค๋ฅธ ๋ฌธ์„ ์—ด ์ˆ˜ ์—†๊ณ , ๋ฌธ์ด ์—†์œผ๋ฉด ํ‚ค๋„ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

 

4) ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„ 
ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ๋น„ํ•ด ๋” ์ผ๋ฐ˜์ ์ธ์ง€, ๊ตฌ์ฒด์ ์ธ์ง€๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. 
ex) ๋‚จ์ž, ์—ฌ์ž, ์‚ฌ๋žŒ = ์‚ฌ๋žŒ์ด ๋”์šฑ ์ผ๋ฐ˜์ ์ด๊ณ , ๋‚จ์ž์™€ ์—ฌ์ž๋Š” ์‚ฌ๋žŒ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ด๋‹ค.
์ด๋•Œ ์‚ฌ๋žŒ์ด ์ƒ์œ„๊ฐœ๋… ์ฆ‰ ๋ถ€๋ชจ์ด๊ณ  ๋‚จ์ž, ์—ฌ์ž๋Š” ํ•˜์œ„ ๊ฐœ๋…, ์ž์‹์ด๋‹ค. 



5) ์˜์กด๊ด€๊ณ„ 
์—ฐ๊ด€๊ด€๊ณ„์™€ ๊ฐ™์ด ์‚ฌ๋ฌผ ์‚ฌ์ด์— ์„œ๋กœ ์—ฐ๊ด€์ด ์žˆ๋‹ค. 
๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”์— ์˜ํ•ด ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ์—ฐ๊ด€์„ ์œ ์ง€ํ•˜๋Š” ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. 
- ๊ด€๊ณ„์— ์žˆ๋Š” ์‚ฌ๋ฌผ๋“ค์ด ์†Œ์œ  ๊ด€๊ณ„๋Š” ์•„๋‹ˆ๋‚˜, ํ•œ ์‚ฌ๋ฌผ์˜ ๋ณ€ํ™”๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์—๋„ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ด€๊ณ„์ด๋‹ค. 
- ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์˜คํผ๋ ˆ์ด์…˜(๋ฉ”์†Œ๋“œ)์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ด€๊ณ„์ด๋‹ค. 
ex) ๋“ฑ๊ธ‰์ด ๋†’์„๋•Œ ํ• ์ธ์œจ์„ ์ ์šฉํ•˜๊ณ  ๋‚ฎ์œผ๋ฉด ํ• ์ธ ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋•Œ ๋“ฑ๊ธ‰์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ€์ ธ์•ผ ํ• ์ธ์œจ ๊ณ„์‚ฐ ๊ฐ€๋Šฅ. 
- ์˜ํ–ฅ์„ ์ฃผ๋Š” ์‚ฌ๋ฌผ์ด (์ด์šฉ์ž) ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์‚ฌ๋ฌผ (์ œ๊ณต์ž) ์ชฝ์œผ๋กœ ์ ์„  ํ™”์‚ดํ‘œ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํ‘œํ˜„ํ•œ๋‹ค. 

 

6) ์‹ค์ฒดํ™” ๊ด€๊ณ„ 
์‚ฌ๋ฌผ์ด ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ํ•ด์•ผํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์„œ๋กœ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„ 
- ํ•œ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์—๊ฒŒ ์˜คํผ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์ •ํ•˜๋Š” ์˜๋ฏธ์  ๊ด€๊ณ„์ด๋‹ค. 
- ์‚ฌ๋ฌผ์—์„œ ๊ธฐ๋Šฅ ์ชฝ์œผ๋กœ ์†์ด ๋นˆ ์ ์„  ํ™”์‚ดํ‘œ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํ‘œํ˜„ํ•œ๋‹ค. 

 

๋‹ค์ด์–ด๊ทธ๋žจ (Diagram)
์‚ฌ๋ฌผ๊ณผ ๊ด€๊ณ„๋ฅผ ๋„ํ˜•์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ.

- ์—ฌ๋Ÿฌ ๊ด€์ ์—์„œ ์‹œ์Šคํ…œ์„ ๊ฐ€์‹œํ™”ํ•œ ๋ทฐ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์˜์‚ฌ์†Œํ†ต์— ๋„์›€์„ ์ค€๋‹ค. 
- ์ •์  ๋ชจ๋ธ๋ง์—์„œ๋Š” ์ฃผ๋กœ ๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ, ๋™์  ๋ชจ๋ธ๋ง์—์„œ๋Š” ํ–‰์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ ์‚ฌ์šฉ. 

๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ข…๋ฅ˜ (Structual)
ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ, ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ, ๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ, ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ 

ํ–‰์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ข…๋ฅ˜ (Behavioral)
์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ์ˆœ์ฐจ ๋‹ค์ด์–ด๊ทธ๋žจ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ, ํ™œ๋™ ๋‹ค์ด์–ด๊ทธ๋žจ ๋“ฑ 

 

์ด ์ค‘ ์ฃผ์š” ๋‹ค์ด์–ด๊ทธ๋žจ๋“ค์€ ๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€์— ..