๐ŸŽซ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ part12~14. ๋…ผ๋ฆฌ์  ์•„ํ‚คํ…์ฒ˜์™€ UML ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ / ๊ฐ์ฒด ์„ค๊ณ„ ๋ฐฉ๋ฒ•

vincaยท2023๋…„ 1์›” 2์ผ
0

๐Ÿ”„ Software engineering

๋ชฉ๋ก ๋ณด๊ธฐ
10/17

[12์žฅ] Introduction

  • ๊ฐ์ฒด ์„ค๊ณ„ ๊ธฐ์ˆ ๊ณผ UML ํ‘œ๊ธฐ๋ฒ• ์ง€์‹์„ ๋ฐฐ์šด๋‹ค.
  • UP์˜ ์ง€์นจ์— ๋”ฐ๋ผ ์š”๊ตฌ์‚ฌํ•ญ์˜ 10%๋Š” ์ดˆ๊ธฐ์— ์ •์˜๋˜์—ˆ๋‹ค.
  • ์ด์ œ ํ˜‘์—…์˜ ๊ด€์ ์—์„œ ๋ฐ˜๋ณต์„ ์œ„ํ•œ ์†”๋ฃจ์…˜์„ ์„ค๊ณ„ํ•ด๋ณด์ž.
  • ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ถ„์„์€ ์˜ฌ๋ฐ”๋ฅธ ์ผ์„ ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ˜ ๋ฐ˜๋ฉด,

    ์„ค๊ณ„๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค.
    ์ž ์‹œ์ž‘ํ•ด๋ณด์ž!

[13์žฅ] ๋…ผ๋ฆฌ์  ์•„ํ‚คํ…์ฒ˜์™€ UML ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ

๋…ผ๋ฆฌ์  ์•„ํ‚คํ…์ฒ˜ : ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํด๋ž˜์Šค, ์„œ๋ธŒ์‹œ์Šคํ…œ, ๊ณ„์ธต๊ณผ ๊ฐ™์€ ํฐ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
(๋ฌผ๋ฆฌ์ ์ธ ๋ฐฐ์น˜์™€๋Š” ๊ด€๊ณ„๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ์  ๊ณ„์ธต์ด๋ผ ๋ถ€๋ฅธ๋‹ค)
๊ณ„์ธต ๊ตฌ์กฐ : ์‹œ์Šคํ…œ์˜ ํด๋ž˜์Šค๋“ค์„ ๊ณ„์ธต์ด๋ผ๋Š” ์„œ๋ธŒ ์‹œ์Šคํ…œ์œผ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.
์ƒ์œ„ ๊ณ„์ธต์ด ํ•˜์œ„ ๊ณ„์ธต์„ ํ˜ธ์ถœํ•œ๋‹ค.
(ex. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ณ์˜ ๊ตฌ์กฐ)

๋Œ€ํ‘œ์ ์ธ ๊ณ„์ธต ๊ตฌ์กฐ : OSI 7๊ณ„์ธต, DB์˜ ๊ณ„์ธต๊ตฌ์กฐ

ํŒจํ‚ค์ง€

  • ๋…ผ๋ฆฌ์  ์•„ํ‚คํ…์ฒ˜๋Š” ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. (ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌํ•  ๋•Œ, ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์‚ฌ์šฉํ•œ๋‹ค.)
  • ํŒจํ‚ค์ง€๋Š” ํ•˜๋‚˜์˜ ๊ณ„์ธต์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
  • ํŒจํ‚ค์ง€๋Š” ํด๋ž˜์Šค, ๋‹ค๋ฅธ ํŒจํ‚ค์ง€, ์œ ์ฆˆ์ผ€์ด์Šค ๋“ฑ ๋ฌด์—‡์ด๋“ ์ง€ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.

์ค‘์ฒฉ๋œ ํŒจํ‚ค์ง€์˜ ์ข…์†๊ด€๊ณ„๋ฅผ ํ‘œํ˜„

ํŒจํ‚ค์ง€ ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋Š” dependency-line์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?
๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ํŒŒ๊ธ‰ํšจ๊ณผ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
1, 2๋ฒˆ์ด ๋ณ€๊ฒฝ๋œ๋‹ค๊ณ  ํ•ด์„œ, 7๋ฒˆ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋  ์ด์œ ๊ฐ€ ์—†๋‹ค. (OSI 7 ๊ณ„์ธต ๊ตฌ์กฐ)

DB์˜ ๊ณ„์ธต ์„ค๊ณ„ ๊ตฌ์กฐ

DB๋Š” ๋ ˆ์ด์–ด ํŒจํ„ด์„ ํ†ตํ•ด ์ค‘๋ณต์ œ๊ฑฐ(์ •๊ทœํ™”)์™€ ๋…๋ฆฝ์„ฑ(๊ณ„์ธต ๊ฐ„ ํŒŒ๊ธ‰ํšจ๊ณผ ๋ฐฉ์ง€)๊ฐ€ ์ ์šฉ๋œ๋‹ค

๊ณ„์ธต ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ๋…๋ฆฝ์„ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด?

  • ์†Œ์Šค์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์ด ์ „์ฒด์— ํŒŒ๊ธ‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€
  • ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ณ€๊ฒฝ์ด ์‰ฌ์›Œ์ง
  • ๊ธฐ์ˆ  ์„œ๋น„์Šค๋ฅผ ์žฌํ™œ์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์ง
  • ๋†’์€ ๊ฒฐํ•ฉ๋„ ํ•ด์†Œ
  • ์‘์ง‘๋„ ํ–ฅ์ƒ
  • ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ํŒ€ ๋‹จ์œ„ ๊ฐœ๋ฐœ์ด ์šฉ์ดํ•ด์ง

์‘์ง‘๋ ฅ ์žˆ๋Š” ์ฑ…์ž„ ๊ตฌ์กฐ (๊ด€๋ จ์žˆ๋Š” ๊ฒƒ๋ผ๋ฆฌ ๋ชจ์Œ)

  • UI๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ •๋„๋งŒ ๊ตฌํ˜„ํ•˜๊ณ  ์ด์•ก ๊ณ„์‚ฐ์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๊ด€์‹ฌ ๋ถ„๋ฆฌ์™€ ๋†’์€ ์‘์ง‘๋„๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • ๋ชจ๋ธ ๋ทฐ ๋ถ„๋ฆฌ ์›์น™(model-view separation)์„ ์ ์šฉ

์†Œ์Šค์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆ ์•ผ ํ• ๊นŒ?

  • ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋‚˜๋ˆˆ๋‹ค.
    com.mycompany.nextgen.ui.swing
    com.mycompany.nextgen.domain.sale
    com.mycompany.nextgen.service.db

๋„๋ฉ”์ธ ๊ฐ์ฒด == ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ๊ณ„์ธต์ด๋‹ค.

  • ๋„๋ฉ”์ธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…๋“ค์„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์—…๋ฌด๋ฅผ ๋‚˜๋ˆ„์–ด ์ˆ˜ํ–‰ํ•œ๋‹ค (๋„๋ฉ”์ธ ๊ฐ์ฒด ์ƒ์„ฑ)
    ex.) โ€œSaleโ€ ๋„๋ฉ”์ธ ๊ฐ์ฒด โ†’ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐ

๋ชจ๋ธ ๋ทฐ ๋ถ„๋ฆฌ์˜ ์›์น™

  • logic์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ๋ถ€๋ถ„์€ UI๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค. (ex. ์ž˜๋ชป๋œ ๊ฐ’์˜ ์ž…๋ ฅ)
  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง(๋„๋ฉ”์ธ ๊ฐ์ฒด)๊ฐ€ ํ•ด์•ผํ•˜๋Š” ์ผ์„ UI์—์„œ ์‹œํ‚ค์ง€๋ง๊ณ , ๊ทธ ๋ฐ˜๋Œ€๋„ ์‹œ์ผœ์„œ๋Š” ์•ˆ๋œ๋‹ค. (์ž์‹ ์˜ ์ผ์ด ์•„๋‹Œ ๋ถ€๋ถ„์€ ์œ„์ž„์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค)
  • ์„œ๋กœ๊ฐ„์˜ ์กด์žฌ๋ฅผ ๋ชฐ๋ผ์•ผํ•œ๋‹ค.

[14์žฅ] ๊ฐ์ฒด ์„ค๊ณ„๋กœ์˜ ์ „์˜

์ด์ œ ๊ธฐ๋ณธ ์„ค๊ณ„๋ฅผ ํ–ˆ์œผ๋‹ˆ, ์ƒ์„ธ ์„ค๊ณ„๋ฅผ ํ•ด๋ณด์ž!
๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด Agile ๋ชจ๋ธ๋ง ๋˜๋Š” UML CASE tool๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋‹ค์–‘ํ•œ ๊ฐ์ฒด ์„ค๊ณ„๋ฐฉ๋ฒ•

    1. ์ฝ”๋”ฉํ•˜๋ฉด์„œ ๋™์‹œ ์„ค๊ณ„, ๋ฆฌํŒฉํ† ๋ง๊ณผ ๋ณ‘ํ–‰
    1. ๊ทธ๋ฆฌ๊ณ  ๋‚œ ํ›„ ์ฝ”๋”ฉํ•˜๊ธฐ (์น ํŒ โ†” CASE tool์„ ์ด์šฉ)
      ์น ํŒ๊ณผ CASE tool์€ ์ƒํ˜ธ ๋ณด์™„์ ์ธ ๊ด€๊ณ„์ด๋‹ค.
      โ†’ ๊ทธ๋ฆฌ๊ณ  ๋‚œ ํ›„ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์ด ํˆฌ์ž ๋Œ€๋น„ ํšจ์šฉ์„ฑ์ด ๊ฐ€์žฅ ๋†’๋‹ค.

Agile ๋ชจ๋ธ๋ง๊ณผ ๊ฐ„๋‹จํ•˜๊ฒŒ UML ๊ทธ๋ฆฌ๊ธฐ

  • ๋ฌธ์„œ์ž‘์„ฑ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ณ , ๋ฌธ์„œํ™”๊ฐ€ ์•„๋‹Œ ์˜์‚ฌ์†Œํ†ต์ด ๋ชฉ์ ์ด๋‹ค.
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

UML CASE tool

  • ๋Œ€์ค‘์ ์ธ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ IDE์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑธ๋กœ ์„ ํƒ.
  • ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ์ธํ„ฐ๋ ‰์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ์—ญ๊ณตํ•™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒ
  • CASE tool์€ ์‹œ๋Œ€์˜ ๋ฐœ์ „์„ ๋ฐ˜์˜ํ•˜๊ธด ์–ด๋ ค์šฐ๋ฏ€๋กœ ๋„ˆ๋ฌด ์˜์กดํ•˜์ง€๋Š” ๋ง ๊ฒƒ.

์ˆœ๊ณตํ•™๊ณผ ์—ญ๊ณตํ•™

  • ์ˆœ๊ณตํ•™ : ๊ณ„ํš, ๋ถ„์„, ์„ค๊ณ„, ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜
  • ์—ญ๊ณตํ•™ : ๋ฐ˜๋Œ€๋กœ copy & paste ํ•˜๋Š” ๊ฒƒ. (ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๋‚ด๋ถ€๋ฅผ ๋œฏ์–ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค)

์ฝ”๋”ฉ ์ „ UML์„ ๊ทธ๋ฆฌ๋Š”๋ฐ ์†Œ์š”๋˜๋Š” ์ ์ ˆํ•œ ์‹œ๊ฐ„์€?

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

์ •์  ๋ชจ๋ธ๋ง๊ณผ ๋™์  ๋ชจ๋ธ๋ง์˜ ์ฐจ์ด

  • ๋™์  ๋ชจ๋ธ๋ง : ์ธํ„ฐ๋ ‰์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ๋กœ์ง ์ฝ”๋“œ์˜ ํ–‰์œ„ ๋ฉ”์†Œ๋“œ์˜ ๋ฐ”๋””๋ฅผ ์„ค๊ณ„ํ•œ๋‹ค.
  • ์ •์  ๋ชจ๋ธ๋ง : ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ฐ™์ด ํŒจํ‚ค์ง€, ํด๋ž˜์Šค ์ด๋ฆ„ ๋“ฑ์„ ์„ค๊ณ„ํ•œ๋‹ค.

๋™์  ๊ฐ์ฒด ๋ชจ๋ธ๋ง

  • ๋งŒ๋“ค๊ธฐ๊ฐ€ ์–ด๋ ค์šด ์ธํ„ฐ๋ ‰์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ ํ•œ๋‹ค.
  • ํฅ๋ฏธ๋กญ๊ณ  ์œ ์šฉํ•œ ์„ค๊ณ„ ์ž‘์—…์€ ์ธํ„ฐ๋ ‰์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ทธ๋ฆฌ๋Š” ๋™์•ˆ ๋ฐœ์ƒํ•œ๋‹ค.
    ์ •์  ๊ฐ์ฒด ๋ชจ๋ธ๋ง
  • ๋™์  ๊ฐ์ฒด ๋ชจ๋ธ๋ง๊ณผ ๋ณ‘ํ–‰ํ•˜์—ฌ ์ž‘์—…ํ•œ๋‹ค.
  • class diagram์„ ํฌํ•จํ•œ, ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ, deployment ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์‚ฌ์šฉํ•œ๋‹ค.

CRC(Class โ€“ Responsibility - Collaborator)

  • ์ง€๊ธˆ์€ UP์— ํฌํ•จ๋˜์–ด ์žˆ์–ด, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํ•œ๋งˆ๋””๋กœ ๋งํ•˜๋ฉด ์ฑ…์ž„์„ ์ค‘์‹ฌ์œผ๋กœ ์š”์†Œ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ!
profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€