UML์˜ ์ดํ•ด: ํ†ตํ•ฉ ๋ชจ๋ธ๋ง ์–ธ์–ด ์™„๋ฒฝ ๊ฐ€์ด๋“œ

UML ๊ฐœ์š”

UML(Unified Modeling Language)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค:

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

UML ๊ตฌ์„ฑ์š”์†Œ

์‚ฌ๋ฌผ

  • ๋Œ€์ƒ์„ ์˜๋ฏธ
  • ์‚ฌ๋ฌผ์˜ ์ข…๋ฅ˜:
    • ๊ตฌ์กฐ(๋ฌผ๋ฆฌ์ ์ธ ์š”์†Œ)
    • ํ–‰๋™(ํ–‰์œ„)
    • ๊ทธ๋ฃน(๊ทธ๋ฃนํ™”)
    • ์ฃผํ•ด(์„ค๋ช…, ์ฃผ์„)

๊ด€๊ณ„

  • ์‚ฌ๋ฌผ๊ณผ ์‚ฌ๋ฌผ์˜ ์—ฐ๊ด€์„ฑ
  • ์ฃผ์š” ๊ด€๊ณ„:
    • ์—ฐ๊ด€
    • ์ง‘ํ•ฉ
    • ํฌํ•จ
    • ์ผ๋ฐ˜ํ™”
    • ์˜์กด
    • ์‹ค์ฒดํ™” ๊ด€๊ณ„
  • 6๊ฐœ์˜ ์ •์  ๋‹ค์ด์–ด๊ทธ๋žจ, 7๊ฐœ์˜ ๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ตฌ์„ฑ

์Šคํ…Œ๋ ˆ์˜ค ํƒ€์ž…

  • ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ํ™•์žฅ ๊ตฌ์กฐ
  • <<>> ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉ
  • ์ฃผ์š” ์ข…๋ฅ˜:
    • <<include>>: ํฌํ•จ๊ด€๊ณ„
    • <<extend>>: ํ™•์žฅ๊ด€๊ณ„

๊ด€๊ณ„์˜ ์ข…๋ฅ˜

์—ฐ๊ด€๊ด€๊ณ„

  • ์ง€์†์ ์ธ ์ฐธ์กฐ ๊ด€๊ณ„
  • ํ‘œํ˜„:
    • ์‹ค์„  ํ™”์‚ดํ‘œ (๋‹จ๋ฐฉํ–ฅ)
    • ์‹ค์„  (์–‘๋ฐฉํ–ฅ)
  • ๋‹ค์ค‘๋„ ํ‘œ๊ธฐ:
    • *: ์—†๊ฑฐ๋‚˜ ๋‹ค์ˆ˜
    • n: n๊ฐœ
    • n,m: ์ตœ์†Œ n๊ฐœ, ์ตœ๋Œ€ m๊ฐœ
    • n..*: n๊ฐœ ์ด์ƒ

์ง‘ํ•ฉ ๊ด€๊ณ„

  • ์‚ฌ๋ฌผ(Part)์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ(Whole)์— ํฌํ•จ๋˜๋Š” ๊ด€๊ณ„
  • ํŠน์ง•: ์„œ๋กœ ๋…๋ฆฝ์ 
    • ์˜ˆ์‹œ: ์ปดํ“จํ„ฐ๊ฐ€ ์—†์–ด์ ธ๋„ ๋งˆ์šฐ์Šค๋Š” ์กด์žฌ ๊ฐ€๋Šฅ
  • ํ‘œํ˜„: ์ „์ฒด ์‚ฌ๋ฌผ ์ชฝ์— ์†์ด ๋นˆ ๋งˆ๋ฆ„๋ชจ๋ฅผ ๋ถ™์ธ ์‹ค์„ 

ํฌํ•จ๊ด€๊ณ„

  • ์ข…์†์ ์ธ ํฌํ•จ ๊ด€๊ณ„
    • ์˜ˆ์‹œ: ๋งˆ์šฐ์Šค ๊ณ ์žฅ ์‹œ ๋งˆ์šฐ์Šค ๋ฆฌ์‹œ๋ฒ„ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • ํ‘œํ˜„: ์†์ด ์ฐฌ ๋งˆ๋ฆ„๋ชจ๋ฅผ ๋ถ™์ธ ์‹ค์„ 

์ผ๋ฐ˜ํ™” ๊ด€๊ณ„

  • ์ƒ์œ„/ํ•˜์œ„ ๊ด€๊ณ„
  • ํŠน์ง•:
    • ์ƒ์œ„ ์‚ฌ๋ฌผ: ์ผ๋ฐ˜์ ์ธ ์†์„ฑ
    • ํ•˜์œ„ ์‚ฌ๋ฌผ: ๊ตฌ์ฒด์ ์ธ ์†์„ฑ
  • ํ‘œํ˜„: ์†์ด ๋นˆ ์‚ผ๊ฐ ์‹ค์„  ํ™”์‚ดํ‘œ
  • โ€œํ•˜์œ„์‚ฌ๋ฌผ is kind of ์ƒ์œ„ ์‚ฌ๋ฌผโ€
    • ์˜ˆ์‹œ: ๋งˆ์šฐ์Šค๋Š” ์ž…๋ ฅ์žฅ์น˜์˜ ํ•œ ์ข…๋ฅ˜

์˜์กด ๊ด€๊ณ„

  • ์ผ์‹œ์ ์ธ ๊ด€๊ณ„
  • ํŠน์ง•: ์‚ฌ๋ฌผ์˜ ๋ณ€ํ™”๊ฐ€ ๊ด€๊ณ„๋œ ์‚ฌ๋ฌผ์— ์˜ํ–ฅ
  • ํ‘œํ˜„: ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์‚ฌ๋ฌผ ์ชฝ์œผ๋กœ ์ ์„  ํ™”์‚ดํ‘œ
  • ์˜ˆ์‹œ: ๊ณ ๊ฐ ํŠน์„ฑ์— ๋”ฐ๋ฅธ ์‚ฌ์€ํ’ˆ ์ง€๊ธ‰ ์—ฌ๋ถ€

์‹ค์ฒดํ™” ๊ด€๊ณ„

  • ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ์ƒ์œ„ ์‚ฌ๋ฌผ๋กœ ๊ทธ๋ฃนํ™”
  • ํ‘œํ˜„: ์ƒ์œ„ ์‚ฌ๋ฌผ ์ชฝ์— ์†์ด ๋นˆ ์‚ผ๊ฐ ์ ์„  ํ™”์‚ดํ‘œ
  • โ€œํ•˜์œ„ ์‚ฌ๋ฌผ can do ์ƒ์œ„ ์‚ฌ๋ฌผโ€
    • ์˜ˆ์‹œ: ์ปดํ“จํ„ฐ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ตฌ๋ถ„:
    • ์ผ๋ฐ˜ํ™” = ๊ณตํ†ต ์†์„ฑ์„ ๋ฌถ์€ ๊ฒƒ
    • ์‹ค์ฒดํ™” = ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ๋ฌถ์€ ๊ฒƒ

๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

๊ตฌ์„ฑ์š”์†Œ:

  • ํด๋ž˜์Šค๋ช…
  • ์†์„ฑ
  • ์—ฐ์‚ฐ
  • ์ ‘๊ทผ ์ œ์–ด์ž:
    • -: private
    • +: public
    • #: protected
    • ~: default

๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ

  • ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„ ํ‘œํ˜„
  • ํŠน์ • ์‹œ์ ์˜ ์‹œ์Šคํ…œ ๊ตฌ์กฐ ํŒŒ์•…

์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ

  • ๊ตฌํ˜„๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ
  • ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊ตฌ์„ฑ ํ‘œํ˜„

๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ

  • ๊ตฌํ˜„๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ
  • ๋…ธ๋“œ, ์ปดํฌ๋„ŒํŠธ ๋“ฑ ๋ฌผ๋ฆฌ์  ์•„ํ‚คํ…์ฒ˜ ํ‘œํ˜„

๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ

  • ๋ณตํ•ฉ์ฒด์˜ ๋ณตํ•ฉ์ ์ธ ๋‚ด๋ถ€ ๊ตฌ์กฐ ํ‘œํ˜„

ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ

  • ํŒจํ‚ค์ง€๊ฐ„์˜ ๊ตฌ์กฐ ์˜์กด๊ด€๊ณ„ ํ‘œํ˜„

ํ–‰์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ

๋™์ ์ธ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

  • ๊ธฐ๋Šฅ ์ค‘์‹ฌ์˜ ๋ชจ๋ธ๋ง

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

  • ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ, ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œํ˜„
  • ๊ตฌ์„ฑ์š”์†Œ:
    • ์ƒ๋ช…์„ 
    • ์‹คํ–‰
    • ๋ฉ”์‹œ์ง€
    • ๊ฐ์ฒด
  • ์‹œ๊ฐ„ ํ๋ฆ„์„ ์œ„์—์„œ ์•„๋ž˜๋กœ ํ‘œํ˜„

ํ†ต์‹  ๋‹ค์ด์–ด๊ทธ๋žจ

  • ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ + ๊ฐ์ฒด๋“ค์˜ ์—ฐ๊ด€ ๋‹จ๊ณ„

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

  • ๊ฐ์ฒด์˜ ์ด๋ฒคํŠธ ํ™œ์„ฑ์— ๋”ฐ๋ฅธ ์ƒํƒœ ๋ณ€ํ™” ํ‘œํ˜„
  • ํŠน์ • ๊ธฐ๊ฐ„ ํŠน์ • ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ‘œํ˜„
  • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํŠน์ • ๊ธฐ๊ฐ„ ํ‘œํ˜„

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

  • ํ๋ฆ„๋„์™€ ์œ ์‚ฌ
  • ๊ฐ์ฒด์˜ ํ”„๋กœ์„ธ์Šค๋‚˜ ๋กœ์ง์˜ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์ˆœ์„œ๋Œ€๋กœ ํ‘œํ˜„

์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ

  • ๋‹ค์ด์–ด๊ทธ๋žจ ์‚ฌ์ด์˜ ์ œ์–ด ํ๋ฆ„ ํ‘œํ˜„
  • ํฌํ•จ ๋‹ค์ด์–ด๊ทธ๋žจ:
    • ์‹œํ€€์Šค
    • ํ†ต์‹ 
    • ํƒ€์ด๋ฐ
    • ์ƒํ˜ธ์ž‘์šฉ
    • ๊ฐœ์š” ๋‹ค์ด์–ด๊ทธ๋žจ

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

  • ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€ํ™”์™€ ์‹œ๊ฐ„ ์ œ์•ฝ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„