๐ŸŽซ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ part02. UP์˜ ๋ฐ˜๋ณต์  ๊ฐœ๋ฐœ

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

๐Ÿ”„ Software engineering

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

โ–  SDLC (Software Development Life Cycle)

  • ์†Œํ”„ํŠธ ์›จ์–ด์˜ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ

โ–  ๋‹จ๊ณ„๋ณ„ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ๋ฌผ

  • ๊ฐœ๋ฐœ ๋‹จ๊ณ„์˜ ์ž…๋ ฅ๋ฌผ : use case, Domain model
  • ์„ค๊ณ„ ๋‹จ๊ณ„์˜ ์ถœ๋ ฅ๋ฌผ : Interaction diagram Design class diagram

โ–  ์ค‘์š”๋ชจ๋ธ

  • ํญํฌ์ˆ˜ ๋ชจํ˜• : ์ „ํ†ต์  ๋ฐฉ๋ฒ•
  • ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ชจํ˜• : ์‚ฌ์šฉ์ž์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ค‘์‹œ
  • ์ ์ฆ์  ๋ชจํ˜• : ์œ„๊ธฐ ๊ด€๋ฆฌ ์ค‘์‹ฌ

โ–  Waterfall Model

์ตœ์ดˆ์˜ ์ฒด๊ณ„์ ์œผ๋กœ ์„ค์ •๋œ ๋‹จ๊ณ„
1970๋…„๋Œ€ ํ•ญ๊ณต ๋ฐฉ์œ„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ฒฝํ—˜์œผ๋กœ ์Šต๋“ ๋จ
๊ฐ ๋‹จ๊ณ„๊ฐ€ ๋‹ค์Œ ๋‹จ๊ณ„ ์‹œ์ž‘ ์ „์— ๋๋‚˜์•ผ ํ•จ
์‚ฐ์ถœ๋ฌผ์„ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ๋…๋ฆฝ์ ์ธ ์กฐ์ง์œผ๋กœ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ.
๋‹จ์ˆœํ•˜๊ฑฐ๋‚˜ ์‘์šฉ๋ถ„์•ผ๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ์ ํ•ฉํ•จ.

๊ณ„ํš -> ๋ถ„์„ -> ์„ค๊ณ„ -> ๊ฐœ๋ฐœ

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

Q. 1000๋ผ์ธ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๋•Œ, 10000๋ผ์ธ ๊ธธ์ด์˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด๊นŒ?

A. 20M/M -> ํ”„๋กœ์ ํŠธ์˜ ํฌ๊ธฐ(๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ ๋ฐ ์ฝ”๋“œ)๊ฐ€ ์ปค์งˆ์ˆ˜๋ก, ์š”๊ตฌ๋˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋˜ํ•œ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ.

[ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•]

  1. ๋ถ„์„์„ ์ž˜ํ•ด์„œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ™•์‹คํ•˜๊ฒŒ ๋„์ถœํ•˜๊ฑฐ๋‚˜,
  2. ๋ถ„์„,์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ์š”๊ตฌ๋˜๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋Œ€๋น„ํ•œ๋‹ค.

โ–  ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ชจํ˜•

ํ”„๋กœํ† ํƒ€์ž…์„ ์„  ๊ฐœ๋ฐœํ•˜๋Š” ํ˜•์‹์œผ๋กœ ํ•˜์—ฌ, ํญํฌ์ˆ˜ ๋ชจ๋ธ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ.
์ด๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ฐธ๊ฐ€. But, ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋งค์šฐ ๋ถˆํ™•์‹คํ•˜๋ฏ€๋กœ, ์žฌ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ์ผ์ •์„ ๋งž์ถ”๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.

โ–  ๋‚˜์„ ํ˜• ๋ชจ๋ธ(Spiral Model)

๋ฐฐ๊ฒฝ : ํ”„๋กœํ† ํƒ€์ž… ๋ชจ๋ธ์€ ๋Œ€๊ทœ๋ชจ์ด๊ฑฐ๋‚˜, ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํฌํ•จํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ. (๊ณ„์† ํ”„๋กœํ† ํƒ€์ž…์„ ์ˆ˜์ •ํ•˜๊ณ  ๋˜ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ)

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

[๋ฐ˜๋ณต ๋‹จ๊ณ„]

  1. ๊ณ„ํš์ˆ˜๋ฆฝ : ๋ชฉํ‘œ, ๊ธฐ๋Šฅ์„ ํƒ, ์ œ์•ฝ์‚ฌํ•ญ์„ ์ˆ˜๋ฆฝ
  2. ์œ„ํ—˜ ๋ถ„์„ : ๊ธฐ๋Šฅ ์„ ํƒ์—์„œ์˜ ์šฐ์„ ์ˆœ์œ„ ๋ฐ ์œ„ํ—˜์š”์†Œ๋ฅผ ๋ถ„์„.
  3. ๊ฐœ๋ฐœ : ์„ ํƒ๋œ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœ.
  4. ํ‰๊ฐ€ : ๊ฐœ๋ฐœ๋œ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€.

โ–  UP(Unified Process)

๊ฐ์ฒด ์ง€ํ–ฅ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•๋ก 

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

โ–  ๋ฐ˜๋ณต์  ๊ฐœ๋ฐœ์˜ ์žฅ์ 

  • ํ”„๋กœ์ ํŠธ์—์„œ ๋ณ€๊ฒฝ์€ ํ•„์ˆ˜์ ์ธ๋ฐ, ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด์„œ ๋†’์€ ์ ์‘์„ฑ์„ ๊ฐ€์ง„๋‹ค.
  • (๊ฐœ๋ฐœ -> ํ”ผ๋“œ๋ฐฑ -> ์กฐ์ •)
    ๋†’์€ ์œ„ํ—˜ ์‚ฌํ•ญ๋“ค์— ๋Œ€ํ•ด์„œ ๋น ๋ฅธ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    ์ดˆ๋ฐ˜ ์ง„ํ–‰์ƒํ™ฉ์„ ๋ˆˆ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์–ด, ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ๊ณผ ์ ํ•ฉํ™”๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ์‹œ์Šคํ…œ์ด ๋œ๋‹ค.
    ์™„๋ฒฝํ•œ ๋ถ„์„์„ ํ•  ํ•„์š”๊ฐ€ ์—†์–ด, ๋ณต์žกํ•˜๊ณ  ๋งŽ์€ ์ผ์„ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    N๋ฒˆ์งธ ๋ฐ˜๋ณต์—์„œ ์–ป์€ ํ”ผ๋“œ๋ฐฑ N+1๋ฒˆ์งธ ๋ฐ˜๋ณต์— ๋ฐ˜์˜๋˜์–ด, ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

โ–  ๋ฐ˜๋ณต์˜ ๊ธฐ๊ฐ„

  • 4์ฃผ๊ฐ€ ์ ๋‹นํ•˜๋‹ค.
  • ๋ฐ˜๋ณต์€ ๋ฐ˜๋“œ์‹œ ํƒ€์Œ๋ฐ•์Šคํ™”(๊ณ ์ • ๊ธฐ๊ฐ„)ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ดˆ๊ธฐ ๋ฐ˜๋ณต์—์„œ ๋†’์€ ์œ„ํ—˜์‚ฌํ•ญ ๋ฐ ๊ฐ€์น˜๊ฐ€ ๋†’์€ ์‚ฌํ•ญ ๋ฐœ๊ฒฌํ•œ๋‹ค.
  • ํ‰๊ฐ€, ํ”ผ๋“œ๋ฐฑ, ์š”๊ตฌ ์‚ฌํ•ญ๋“ค์ด ์‚ฌ์šฉ์ž์™€ ์ง€์†์  ์—ฐ๊ด€๋œ๋‹ค.
  • ์ดˆ๊ธฐ ๋ฐ˜๋ณต ์‹œ ์‘์ง‘์ ์ด๊ณ  ํ•ต์‹ฌ์ ์ธ ์•„ํ‚คํ…์ณ๋ฅผ ๊ฐœ๋ฐœํ•œ๋‹ค.

โ–  UP์˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ๊ฐœ๋ฐœ ์ „์ฒด์—์„œ์˜ ์ฃผ์š” 4๋‹จ๊ณ„

Inception(๋„์ž…)

  • ์ „์ฒด์ ์ธ ๋น„์ „, ๋น„์ง€๋‹ˆ์Šค ์ผ€์ด์Šค, ๋ฒ”์œ„ ์ถ”์ •
  • ํƒ€๋‹น์„ฑ ๊ฒ€ํ† 

Elaboration(์ •๋ จ)

  • ์ •์ œ๋œ ๋น„์ „, ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜(๊ตฌ์กฐ)์˜ ๋ฐ˜๋ณต์ ์ธ ๊ตฌํ˜„.
  • ๋†’์€ ์œ„ํ—˜ ํ•ญ๋ชฉ์˜ ํ•ด๊ฒฐ, ๋Œ€๋ถ€๋ถ„์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ๋ฒ”์œ„๋ฅผ ์‹๋ณ„, ํ˜„์‹ค์ ์ธ ์ถ”์ •

Construction(๊ตฌ์ถ•)

  • ๋‚จ์•„์žˆ๋Š” ๋‚ฎ์€ ์œ„ํ—˜ ํ•ญ๋ชฉ๊ณผ ์ข€๋” ์‰ฌ์šด ๋ถ€๋ถ„์˜ ๋ฐ˜๋ณต์  ๊ตฌํ˜„, ๋ฐฐ์น˜ ์ค€๋น„
  • ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ชปํ•œ ๊ฒƒ์„ ๋งˆ๋ฌด๋ฆฌ

Transition(์ „์ด)

  • ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐ์น˜
profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

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