๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐Ÿ“œ ์ž๊ฒฉ์ฆ/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

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

by ๋ฐ”์ฟ„๋ฆฌ 2022. 8. 21.

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

  • ์‹œ์Šคํ…œ์ด ๊ฐœ๋ฐœ๋  ๋•Œ๋ถ€ํ„ฐ ์šด์šฉ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๊ฑฐ์ณ ์ƒ์• ๋ฅผ ๋งˆ์น  ๋•Œ๊นŒ์ง€ ์–ด๋– ํ•œ ์ˆœ์„œ๋ฅผ ๋ฐŸ๋Š”์ง€์— ๋Œ€ํ•œ ์ž‘์—… ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋ธํ™”ํ•œ ๊ฒƒ์ด๋‹ค.
  • SDLC ๋ชจ๋ธ ํ”„๋กœ์„ธ์Šค : ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ → ์„ค๊ณ„ → ๊ตฌํ˜„ → ํ…Œ์ŠคํŠธ → ์œ ์ง€๋ณด์ˆ˜
  • SDLC ๋ชจ๋ธ ์ข…๋ฅ˜
    • ํญํฌ์ˆ˜ ๋ชจ๋ธ
    • ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ชจ๋ธ
    • ๋‚˜์„ ํ˜• ๋ชจ๋ธ
    • ๋ฐ˜๋ณต์  ๋ชจ๋ธ

๐Ÿ“Ž ํญํฌ์ˆ˜ ๋ชจ๋ธ (Waterfall Model)

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

๐Ÿ“Ž ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ชจ๋ธ (Prototyping Model)

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

๐Ÿ“Ž ๋‚˜์„ ํ˜• ๋ชจ๋ธ (Spiral Model)

  • ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์‹œ ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ง„์ ์œผ๋กœ ์™„๋ฒฝํ•œ ์‹œ์Šคํ…œ์œผ๋กœ ๊ฐœ๋ฐœํ•ด ๋‚˜๊ฐ€๋Š” ๋ชจ๋ธ
  • ์œ„ํ—˜์„ฑ ๊ฐ์†Œ์™€ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์œ ์—ฐํ•œ ๋Œ€์ฒ˜ but ๋‹จ๊ณ„ ๋ฐ˜๋ณต์— ๋”ฐ๋ฅธ ๊ด€๋ฆฌ ์–ด๋ ค์›€

๐Ÿ“Ž  ๋ฐ˜๋ณต์  ๋ชจ๋ธ (Iteration Model)

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

 

2๏ธโƒฃ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  (Software Development Methodology)

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

๐Ÿ“Ž  ์• ์ž์ผ (Agile)

  • ์ ˆ์ฐจ๋ณด๋‹ค๋Š” ์‚ฌ๋žŒ์ด ์ค‘์‹ฌ์ด ๋˜์–ด ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ์ ์‘ํ•˜๋ฉด์„œ ํšจ์œจ์ ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์† ์ ์‘์  ๊ฒฝ๋Ÿ‰ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 
  • ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์ด ์งง๊ณ  ์‹ ์†ํ•˜๊ณ , ๊ฐœ๋ฐœ๊ณผ ํ•จ๊ป˜ ์ฆ‰์‹œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„์„œ ์œ ๋™์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • XP, ๋ฆฐ(Lean), ์Šคํฌ๋Ÿผ(SCRUM)

๐Ÿ–‡ XP (eXtreme Programming)

  • 5๊ฐ€์ง€ ๊ฐ€์น˜
    • ์šฉ๊ธฐ
    • ๋‹จ์ˆœ์„ฑ
    • ์˜์‚ฌ์†Œํ†ต
    • ํ”ผ๋“œ๋ฐฑ
    • ์กด์ค‘
  • 12๊ฐ€์ง€ ๊ธฐ๋ณธ์›๋ฆฌ
    • ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ๊ณต๋™ ์ฝ”๋“œ ์†Œ์œ 
    • ์ง€์†์ ์ธ ํ†ตํ•ฉ
    • ๊ณ„ํš ์„ธ์šฐ๊ธฐ
    • ์ž‘์€ ๋ฆด๋ฆฌ์ฆˆ
    • ๋ฉ”ํƒ€ํฌ์–ด
    • ๊ฐ„๋‹จํ•œ ๋””์ž์ธ
    • ํ…Œ์ŠคํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ
    • ๋ฆฌํŒฉํ† ๋ง
    • 40์‹œ๊ฐ„ ์ž‘์—…
    • ๊ณ ๊ฐ ์ƒ์ฃผ
    • ์ฝ”๋“œ ํ‘œ์ค€

๐Ÿ–‡ ์Šคํฌ๋Ÿผ (SCRUM)

  • ๋งค์ผ ์ •ํ•ด์ง„ ์‹œ๊ฐ„, ์žฅ์†Œ์—์„œ ์งง์€ ์‹œ๊ฐ„์˜ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ํŒ€์„ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์ค‘์‹ฌ ๋ฐฉ๋ฒ•๋ก 
  • ๋ฐฑ๋กœ๊ทธ : ์ œํ’ˆ๊ณผ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ
  • ์Šคํ”„๋ฆฐํŠธ : 2~4์ฃผ์˜ ์งง์€ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์œผ๋กœ ๋ฐ˜๋ณต์  ์ˆ˜ํ–‰์œผ๋กœ ๊ฐœ๋ฐœํ’ˆ์งˆ ํ–ฅ์ƒ
  • ์Šคํฌ๋Ÿผ ๋ฏธํ‹ด : ๋งค์ผ 15๋ถ„ ์ •๋„์˜ ๋ฏธํŒ…, ๋ฐ์ผ๋ฆฌ ๋ฏธํŒ…
  • ์Šคํฌ๋Ÿผ ๋งˆ์Šคํ„ฐ : ํ”„๋กœ์ ํŠธ ๋ฆฌ๋”
  • ์Šคํ”„๋ฆฐํŠธ ํšŒ๊ณ 
  • ๋ฒˆ ๋‹ค์šด ์ฐจํŠธ : ๋‚จ์•„์žˆ๋Š” ๋ฐฑ๋กœ๊ทธ ๋Œ€๋น„ ์‹œ๊ฐ„์„ ๊ทธ๋ž˜ํ”ฝ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ์ฐจํŠธ

๐Ÿ–‡ ๋ฆฐ (LEAN)

  • ๋„์š”ํƒ€์˜ ๋ฆฐ ์‹œ์Šคํ…œ ํ’ˆ์งˆ๊ธฐ๋ฒ•์„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์— ์ ์šฉํ•ด์„œ ๋‚ญ๋น„ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚จ ๋ฐฉ๋ฒ•๋ก 
  • JIT(Just In Time), ์นธ๋ฐ˜(Kanban) ๋ณด๋“œ

 

3๏ธโƒฃ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ถ„์„ ๋ฐฉ๋ฒ•๋ก  (OOA : Object Oriented Analysis)

  • ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜์—ฌ ์š”๊ตฌ๋œ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํด๋ž˜์Šค(๊ฐ์ฒด), ์†์„ฑ๊ณผ ์—ฐ์‚ฐ, ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ธฐ๋ฒ•
  • OOSE : Object Oriented Software Engineering
    • ์•ผ์ฝฅ์Šจ
    • ์œ ์Šค์ผ€์ด์Šค์— ์˜ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์œผ๋กœ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ๋ชจ๋“  ๋ชจ๋ธ์˜ ๊ทผ๊ฐ„์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก 
    • ๋ถ„์„, ์„ค๊ณ„, ๊ตฌํ˜„ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ
    • ๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ ์ค‘์‹ฌ์˜ ์‹œ์Šคํ…œ
  • OMT : Object Modeling Technology
    • ๋Ÿผ๋ฐ”์šฐ
    • ๊ทธ๋ž˜ํ”ฝ ํ‘œ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก 
    • ๊ฐ์ฒด ๋ชจ๋ธ๋ง : ์‹œ์Šคํ…œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์—ฌ ER ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •
    • ๋™์  ๋ชจ๋ธ๋ง : ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๊ฐ์ฒด๋“ค ์‚ฌ์ด์˜ ์ œ์–ด ํ๋ฆ„, ๋™์ž‘ ์ˆœ์„œ ๋“ฑ์˜ ๋™์ ์ธ ํ–‰์œ„๋ฅผ ํ‘œํ˜„
    • ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง : ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ž๋ฃŒ ํ๋ฆ„์„ ์ค‘์‹ฌ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ณผ์ • ํ‘œํ˜„ (์ž๋ฃŒํ๋ฆ„๋„,DFD)

 

4๏ธโƒฃ ๋น„์šฉ์‚ฐ์ •, ์ผ์ •๊ด€๋ฆฌ ๋ชจํ˜•

ํ•˜ํ–ฅ์‹ ์‚ฐ์ • ๊ฒฝํ—˜์ด ๋งŽ์€ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋น„์šฉ ์‚ฐ์ •์„ ์˜๋ขฐํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ์ „๋ฌธ๊ฐ€์™€ ์กฐ์ •์ž๋ฅผ ํ†ตํ•ด ์‚ฐ์ • ์ „๋ฌธ๊ฐ€ ํŒ๋‹จ
๋ธํŒŒ์ด ๊ธฐ๋ฒ•
์ƒํ–ฅ์‹ ์‚ฐ์ • ์„ธ๋ถ€์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋น„์šฉ์„ ๊ณ„์‚ฐ ์ฝ”๋“œ ๋ผ์ธ์ˆ˜(Loc)
Man Month
COCOMO ๋ชจํ˜•
ํ‘ธํŠธ๋‚จ ๋ชจํ˜•
๊ธฐ๋Šฅ์ ์ˆ˜(FP) ๋ชจํ˜•

๐Ÿ“Ž  LoC (Line of Code)

  • ์˜ˆ์ธก์น˜ = (๋‚™๊ด€์น˜ + 4*์ค‘๊ฐ„์น˜ + ๋น„๊ด€์น˜) / 6
  • ๋‚™๊ด€์น˜ : ๊ฐ€์žฅ ์ ๊ฒŒ ์ธก์ •๋œ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜
  • ๋น„๊ด€์น˜ : ๊ฐ€์žฅ ๋งŽ์ด ์ธก์ •๋œ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜

๐Ÿ“Ž  Man Month

  • ํ•œ ์‚ฌ๋žŒ์ด 1๊ฐœ์›” ๋™์•ˆ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์˜ ์–‘์„ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ์ ํŠธ ๋น„์šฉ ์‚ฐ์ •
  • (Man Month) = (LoC) / (ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์›”๊ฐ„ ์ƒ์‚ฐ์„ฑ)

๐Ÿ“Ž  COCOMO (COnstructive COst MOdel)

  • ํ”„๋กœ๊ทธ๋žจ ๊ทœ๋ชจ์— ๋”ฐ๋ผ ๋น„์šฉ ์‚ฐ์ •
  • ๊ฐœ๋ฐœ ์œ ํ˜• : ์กฐ์งํ˜•, ๋ฐ˜ ๋ถ„๋ฆฌํ˜•, ์ž„๋ฒ ๋””๋“œํ˜•

๐Ÿ“Ž  ํ‘ธํŠธ๋‚จ (Putnam)

  • ์ƒ๋ช…์ฃผ๊ธฐ ์˜ˆ์ธก ๋ชจํ˜•
  • ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ฃผ๊ธฐ์˜ ๋‹จ๊ณ„๋ณ„๋กœ ์š”๊ตฌํ•  ์ธ๋ ฅ์˜ ๋ถ„ํฌ๋ฅผ ๊ฐ€์ •

๐Ÿ“Ž  ๊ธฐ๋Šฅ์ ์ˆ˜ (FP:Function Point)

  • ๊ธฐ๋Šฅ์ ์ˆ˜(FP) = ์ด ๊ธฐ๋Šฅ์ ์ˆ˜ * [0.65 + (0.1 * ์ด ์˜ํ–ฅ๋„)]