๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป CS

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ (1) - ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 

by dev.py 2024. 3. 31.

์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช…์ฃผ๊ธฐ (SDLC - Software Development Life Cycle)

ํ”„๋กœ์„ธ์Šค

  • ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„  โ†’ ์„ค๊ณ„ โ†’ ๊ตฌํ˜„ โ†’ ํ…Œ์ŠคํŠธ โ†’ ์œ ์ง€๋ณด์ˆ˜

๋ชจ๋ธ ์ข…๋ฅ˜ (ํญํ”„๋‚˜๋ฐ˜)

  • ํญํฌ์ˆ˜ ๋ชจ๋ธ
    • ์ˆœ์ฐจ์  ์ ‘๊ทผ
    • ์ดํ•ด๊ฐ€ ์šฉ์ด, ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌ
    • ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ ์–ด๋ ค์›€
  • ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ชจ๋ธ
    • ํ”„๋กœํ† ํƒ€์ž… ๊ฐœ๋ฐœ
    • ์š”๊ตฌ ๋ถ„์„ ์šฉ์ด
    • ํ”„๋กœํ†  ํƒ€์ž… ํ๊ธฐ โ†’ ๋น„์šฉ ์ฆ๊ฐ€
  • ๋‚˜์„ ํ˜• ๋ชจ๋ธ
    • ์œ„ํ—˜์„ฑ ๊ฐ์†Œ์™€ ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•œ ๋Œ€์ฒ˜
  • ๋ฐ˜๋ณต์  ๋ชจ๋ธ
    • ์ฆ๋ถ„๋ฐฉ์‹์œผ๋กœ ๋ณ‘ํ–‰ ๊ฐœ๋ฐœ
    • ๋ณ‘ํ–‰ ๊ฐœ๋ฐœ๋กœ ์ผ์ • ๋‹จ์ถ•

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 

์ข…๋ฅ˜

  • ๊ตฌ์กฐ์  ๋ฐฉ๋ฒ•๋ก 
  • ์ •๋ณด๊ณตํ•™ ๋ฐฉ๋ฒ•๋ก 
  • ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐฉ๋ฒ•๋ก 
  • ์ปดํฌ๋„ŒํŠธ ๋ฐฉ๋ฒ•๋ก 
  • ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก 
  • ์ œํ’ˆ ๊ณ„์—ด ๋ฐฉ๋ฒ•๋ก 

 

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก 

ํŠน์ง•

  • ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์ด ์งง๊ณ  ์‹ ์†
  • ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„ ์œ ๋™์ ์œผ๋กœ ๊ฐœ๋ฐœ

์ข…๋ฅ˜

  1. XP (์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)
    • 5๊ฐœ์˜ ๊ฐ€์น˜์™€ 12๊ฐœ์˜ ์‹ค์ฒœํ•ญ๋ชฉ
    • 1~3์ฃผ์˜ ๋ฐ˜๋ณต
  2. ์Šคํฌ๋Ÿผ
    • ๋งค์ผ ์ •ํ•ด์ง„ ์‹œ๊ฐ„, ์žฅ์†Œ์—์„œ ์งง์€ ์‹œ๊ฐ„์˜ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ํŒ€์„ ์œ„ํ•œ ๊ด€๋ฆฌ
    • ์ฃผ์š” ๊ฐœ๋…
      • ๋ฐฑ๋กœ๊ทธ : ์ œํ’ˆ๊ณผ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ (=ํ• ์ผ)
      • ์Šคํ”„๋ฆฐํŠธ : 2~4์ฃผ ์งง์€ ๊ฐœ๋ฐœ๋กœ ๋ฐ˜๋ณต ์ˆ˜ํ–‰
      • ์Šคํฌ๋Ÿผ ๋ฏธํŒ… : ๋งค์ผ 15๋ถ„ ๋ฏธํŒ… = ๋ฐ์ผ๋ฆฌ ๋ฏธํŒ…
      • ์Šคํฌ๋Ÿผ ๋งˆ์Šคํ„ฐ : ํ”„๋กœ์ ํŠธ ๋ฆฌ๋”
      • ์Šคํ”„๋ฆฐํŠธ ํšŒ๊ณ  : ์Šคํ”„๋ฆฐํŠธ ์ฃผ๊ธฐ๋ฅผ ๋˜๋Œ์•„ ๋ณด๋ฉฐ ํšŒ๊ณ , ์Šคํ”„๋ฆฐํŠธ๊ฐ€ ๋๋‚œ ์‹œ์ ์ด๋‚˜, ์ผ์ • ์ฃผ๊ธฐ๋กœ ์‹œํ–‰
      • ๋ฒˆ ๋‹ค์šด ์ฐจํŠธ : ๋‚จ์•„์žˆ๋Š” ๋ฐฑ๋กœ๊ทธ ๋Œ€๋น„ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
  3. ๋ฆฐ
    • ๋„์š”ํƒ€์˜ ๋ฆฐ ์‹œ์Šคํ…œ ํ’€์งˆ ๊ธฐ๋ฒ•์„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์— ์ ์šฉ
    • JIT, ์นธ๋ฐ˜ ๋ณด๋“œ ์‚ฌ์šฉ

๊ฐ์ฒด ์ง€ํ–ฅ ๋ถ„์„

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

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

๊ฐ์ฒด ์ง€ํ–ฅ ๊ธฐ๋ฒ• (์บก์ƒ๋‹ค์ถ”์ •๊ด€)

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

 

๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ (SOLID)

  • ๋‹จ์ผ ์ฑ…์ž„์˜ ์›์น™ (Single Resonsibilty principle)
  • ๊ฐœ๋ฐฉ - ํ์‡„์˜ ์›์น™ (Open- close principle)
  • ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜์˜ ์›์น™ (Liskov substituion principle)
  • ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ์˜ ์›์น™ (Interface Segregation principle)
  • ์˜์กด ์—ญ์ „์˜ ์›์น™  (Dependeny Inversion principle)

 

๊ฐ์ฒด ์ง€ํ–ฅ ๋ถ„์„ ๋ฐฉ๋ฒ•๋ก 

  • OSSE - ์•ผ์ฝฅ์Šจ
    • ๋ถ„์„, ์„ค๊ณ„, ๊ตฌํ˜„์œผ๋กœ ๊ตฌ์„ฑ
  • OMT - ๋Ÿผ๋ฐ”์šฐ
    • ๊ฐ์ฒด ๋ชจ๋ธ๋ง - ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„
    • ๋™์  ๋ชจ๋ธ๋ง - ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„
    • ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง - ์ž๋ฃŒ ํ๋ฆ„๋„(DFD) ๋กœ ํ‘œํ˜„
  • OOD - ๋ถ€์น˜
    • ๋ถ„์„๊ณผ ์„ค๊ณ„์˜ ๋ถ„๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ
  • ์ฝ”๋“œ - ์š”๋“  ๋ฐฉ๋ฒ•๋ก 
    • E-R ๋‹ค์ด์–ด๊ทธ๋žจ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ
  • ์›Œํ”„ -๋ธŒ๋ก ๋ฐฉ๋ฒ•๋ก 
    • ๋ถ„์„๊ณผ ์„ค๊ณ„๊ฐ„์˜ ๊ตฌ๋ถ„x

 


ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ 3์š”์†Œ

  • ์‚ฌ๋žŒ
  • ๋ฌธ์ œ
  • ํ”„๋กœ์„ธ์Šค

 

๋น„์šฉ ์‚ฐ์ • ๋ชจํ˜•

  • ํ•˜ํ–ฅ์‹ ์‚ฐ์ • ๋ฐฉ๋ฒ• = ์ „๋ฌธ๊ฐ€ ํŒ๋‹จ = ๋ธํŒŒ์ด ๊ธฐ๋ฒ•
  • ์ƒํ–ฅ์‹ ์‚ฐ์ • ๋ฐฉ๋ฒ•
    • LoC (Line of Code) : (๋‚™๊ด€์น˜ + ์ค‘๊ฐ„์น˜*4 + ๋น„๊ด€์น˜ ) /6 
    • Man Month : LoC / (์›”๊ฐ„ ์ƒ์‚ฐ์„ฑ)
    • COCOMO 
      • ๋ณดํ—ด์ด ๋งŒ๋“ฌ
      • Man-Month ํ™œ์šฉ
      • ์กฐ์งํ˜•, ๋ฐ˜๋ถ„๋ฆฌํ˜•, ์ž„๋ฒ ๋””๋“œ ํ˜•์ด ์žˆ์Œ ( ์˜ค์„ธ์ž„ - ์˜ค๊ฐ€๋‹‰, ์„ธ๋ฏธ ๋””ํ…์น˜, ์ž„๋ฒ ๋””๋“œ)
    • ํ‘ธํŠธ๋‚จ
    • ๊ธฐ๋Šฅ์ ์ˆ˜ ๋ชจํ˜• : ์ด ๊ธฐ๋Šฅ ์ ์ˆ˜ * [0.65 + (0.1  X ์ด ์˜ํ–ฅ๋„)]

 

์ผ์ •๊ด€๋ฆฌ ๋ชจ๋ธ ์ข…๋ฅ˜

  • ์ฃผ ๊ณต์ • ๋ฒ• (๊ทธ๋ƒฅ ๊ฐ€์žฅ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฑฐ ๊ธฐ์ค€)
  • PERT
  • ์ค‘์š” ์—ฐ์‡„ ํ”„๋กœ์ ํŠธ

 

์œ„ํ—˜๊ด€๋ฆฌ

์œ„ํ—˜ ์ข…๋ฅ˜

  • ์•Œ๋ ค์ง„ ์œ„ํ—˜ - ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„œ, ๊ธฐ์ˆ ์  ํ™˜๊ฒฝ, ์ •๋ณด ๋“ฑ์— ์˜ํ•ด ๋ฐœ๊ฒฌ๋˜๋Š” ์œ„ํ—˜
  • ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์œ„ํ—˜ - ๊ฒฝํ—˜์—์„œ ๋‚˜์˜ค๋Š” ์œ„ํ—˜
  • ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์œ„ํ—˜ - ์˜ˆ์ธก ์–ด๋ ค์›€

๋Œ€์‘

  • ํšŒํ”ผ
  • ์ „๊ฐ€
  • ์™„ํ•˜
  • ์ˆ˜์šฉ