10 ๋ถ„ ์†Œ์š”

๐Ÿ“˜ Chapter 01. ์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™ ์†Œ๊ฐœ

1.1 ์†Œํ”„ํŠธ์›จ์–ด๋ž€?

์ •์˜

์†Œํ”„ํŠธ์›จ์–ด = ํ”„๋กœ๊ทธ๋žจ + ๊ฐœ๋ฐœยท์šด์šฉยท๋ณด์ˆ˜์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด

๋ˆˆ์— ๋ณด์ด์ง€ ์•Š์œผ๋ฉฐ ๊ตฌ์กฐ๊ฐ€ ์ฝ”๋“œ ์•ˆ์— ์ˆจ์–ด ์žˆ์Œ

ํŠน์ง•

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

์†Œํ”„ํŠธ์›จ์–ด์™€ ์‹œ์Šคํ…œ

  • ์‹œ์Šคํ…œ: ํŠน์ • ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์„ฑ์š”์†Œ๋“ค์˜ ๊ฒฐํ•ฉ์ฒด
  • ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜

1.2 ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ž‘์—…

๊ธฐ๋ณธ ํ™œ๋™

  1. ์š”๊ตฌ ๋ถ„์„
  2. ์„ค๊ณ„
  3. ๊ตฌํ˜„
  4. ํ…Œ์ŠคํŠธ
  5. ์œ ์ง€๋ณด์ˆ˜

๊ฐœ๋ฐœ์˜ ์–ด๋ ค์›€

  • ๋ช…์„ธํ™”, ์žฌ์‚ฌ์šฉ, ์˜ˆ์ธก, ์œ ์ง€๋ณด์ˆ˜ ๋ชจ๋‘ ์–ด๋ ค์›€
  • ์†Œํ”„ํŠธ์›จ์–ด ์œ„๊ธฐ: ์ˆ˜์š”์™€ ๋ณต์žก์„ฑ ์ฆ๊ฐ€๋กœ ๊ธฐ์กด ๋ฐฉ์‹์˜ ํ•œ๊ณ„

1.3 ์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™์˜ ์ ‘๊ทผ๋ฒ•

์ •์˜

SW์˜ ๊ฐœ๋ฐœ, ์šด์˜, ์œ ์ง€๋ณด์ˆ˜, ์†Œ๋ฉธ์— ๋Œ€ํ•œ ์ฒด๊ณ„์  ์ ‘๊ทผ๋ฒ•

๋ชฉํ‘œ

  • ๋ณต์žก์„ฑ ๊ฐ์†Œ, ๋น„์šฉ ์ตœ์†Œํ™”, ์ผ์ • ๋‹จ์ถ•
  • ๊ณ ํ’ˆ์งˆ SW ๊ฐœ๋ฐœ, ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

1.4 ์ฃผ์š” ์ฃผ์ œ

  • ๋‹จ๊ณ„์  ํ”„๋กœ์„ธ์Šค: ์š”๊ตฌ๋ถ„์„ โ†’ ์„ค๊ณ„ โ†’ ๊ตฌํ˜„ โ†’ ํ…Œ์ŠคํŠธ
  • ํ’ˆ์งˆ๋ณด์ฆ: ์ธ์ŠคํŽ™์…˜, ํ…Œ์ŠคํŒ… ๋“ฑ
  • ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ: ๊ณ„ํš ์ˆ˜๋ฆฝ, ์ž์›ยท์ผ์ •ยท๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ

1.5 ๊ด€๋ จ ๋ถ„์•ผ

  • ๊ธฐ์ดˆ ์ด๋ก : ์ปดํ“จํ„ฐ๊ณตํ•™ ์›๋ฆฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ
  • ์‘์šฉ ๋„๋ฉ”์ธ: ํŠน์ • ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ชฉ์ ์˜ ๋ถ„์•ผ

๐Ÿ“˜ Chapter 02. ํ”„๋กœ์„ธ์Šค์™€ ๋ฐฉ๋ฒ•๋ก 

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

  • SW ๊ฐœ๋ฐœ์— ์žˆ์–ด ์ „ ๊ณผ์ •์„ ์ฒด๊ณ„ํ™”ํ•œ ๊ฒƒ

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

  • ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๋ชฉํ‘œ: ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ๊ด€๋ฆฌ + ํ’ˆ์งˆ ๋ณด์žฅ


2.2 ํ”„๋กœ์„ธ์Šค (Process)

  • ์ •์˜: SW๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๋Š” ์ผ๋ จ์˜ ์ž‘์—… ์ ˆ์ฐจ
  • ์ข…๋ฅ˜:
    • ํ”„๋กœ์ ํŠธ ์ค‘์‹ฌ ํ”„๋กœ์„ธ์Šค : ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค, ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค
    • ๊ธฐํƒ€ ํ”„๋กœ์„ธ์Šค : ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค, ํ˜•์ƒ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค
  • ์ข‹์€ ํ”„๋กœ์„ธ์Šค์˜ ์กฐ๊ฑด:
    • ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ, ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ, ๋ณ€๊ฒฝ ์ง€์›, ๊ฒฐํ•จ ์ œ๊ฑฐ ์šฉ์ด์„ฑ

2.3 ์ฃผ์š” ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ


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

์ •ํ˜•์ ์ด๊ณ  ์ˆœ์ฐจ์ ์ธ ์ „ํ†ต ๋ชจ๋ธ

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

V Model

ํญํฌ์ˆ˜ ๋ชจ๋ธ์— ๊ฒ€์ฆ์„ ๊ฐ•์กฐํ•œ ํ™•์žฅํ˜•

  • ํŠน์ง•
    • ๊ฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์— ๋งž๋Š” ํ…Œ์ŠคํŠธ ํ™œ๋™์„ ๋ณ‘๋ ฌ๋กœ ๋ฐฐ์น˜
    • ์ขŒ์ธก: ๊ฐœ๋ฐœ / ์šฐ์ธก: ํ…Œ์ŠคํŠธ ๋Œ€์‘
  • ์žฅ์ 
    • ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€์ฆ์„ ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ์ˆ˜ํ–‰
    • ์˜ค๋ฅ˜๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌ ๊ฐ€๋Šฅ
  • ๋‹จ์ 
    • ๋ณต์žกํ•œ ๊ตฌ์กฐ๋กœ ์ธํ•œ ๊ด€๋ฆฌ ์–ด๋ ค์›€
    • ๋ฐ˜๋ณต์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ ๋ฐ˜์˜์€ ์—ฌ์ „ํžˆ ์–ด๋ ค์›€
  • ์ ์šฉ ์‚ฌ๋ก€
    • ํ’ˆ์งˆ์ด ๋งค์šฐ ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ(์˜ˆ: ํ•ญ๊ณต, ์˜๋ฃŒ, ์ž๋™์ฐจ ์ œ์–ด ์‹œ์Šคํ…œ)

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

์‹œ์ œํ’ˆ์„ ๋จผ์ € ์ œ์ž‘ํ•ด ์‚ฌ์šฉ์ž ์š”๊ตฌ ํ™•์ธ

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

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

๋ฆฌ์Šคํฌ ๋ถ„์„ ๊ธฐ๋ฐ˜ ๋ฐ˜๋ณต ๊ฐœ๋ฐœ ๋ชจ๋ธ

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

Evolutionary Model (์ง„ํ™”์  ๋ชจ๋ธ)

์ ์ง„์  ๊ธฐ๋Šฅ ํ™•์žฅ ๋ฐฉ์‹์˜ ๋ชจ๋ธ

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

Unified Process (ํ†ตํ•ฉ ํ”„๋กœ์„ธ์Šค)

์œ ์Šค์ผ€์ด์Šค ๊ธฐ๋ฐ˜์˜ ๋ฐ˜๋ณต์  ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ

  • 4๋‹จ๊ณ„ ๊ตฌ์„ฑ:
    1. ๋„์ž… (Inception)
    2. ์ •๋ จ (Elaboration)
    3. ๊ตฌ์ถ• (Construction)
    4. ์ „์ด (Transition)
  • ์žฅ์ 
    • ๋ฐ˜๋ณต ๊ฐœ๋ฐœ๋กœ ๋ณ€๊ฒฝ์— ์œ ์—ฐ
    • ๋ฌธ์„œํ™”๊ฐ€ ์ž˜ ๋˜์–ด ํ•™์Šต ์šฉ์ด
  • ๋‹จ์ 
    • ์ดˆ๋ฐ˜ ์„ค๊ณ„ ๋ณต์žก, ์ ์šฉ ๋‚œ์ด๋„ ๋†’์Œ
    • ํ˜‘์—… ๋ฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ ๋ถ€์กฑ

Agile Process (์• ์ž์ผ ํ”„๋กœ์„ธ์Šค)

๋ณ€ํ™” ์ˆ˜์šฉ + ์‚ฌ์šฉ์ž ์ค‘์‹ฌ์˜ ๋ฏผ์ฒฉํ•œ ๊ฐœ๋ฐœ

  • ํŠน์ง•
    • ๋ฐ˜๋ณต ์ฃผ๊ธฐ (1~4์ฃผ) ๋‹จ์œ„ ๊ฐœ๋ฐœ
    • ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌ
  • ๋Œ€ํ‘œ ๊ธฐ๋ฒ•: XP, Scrum, Kanban
  • ์žฅ์ 
    • ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ์— ๊ฐ•ํ•จ
    • ๊ณ ๊ฐ๊ณผ์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ค‘์‹œ
  • ๋‹จ์ 
    • ๋ช…ํ™•ํ•œ ๋ฌธ์„œ ๋ถ€์กฑ
    • ํฐ ๊ทœ๋ชจ/๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉ ์–ด๋ ค์›€

2.4 ์ง€์› ํ”„๋กœ์„ธ์Šค ์š”์•ฝ

  • ํ˜•์ƒ๊ด€๋ฆฌ: ๋ณ€๊ฒฝ ์ถ”์  (Git, SVN ๋“ฑ)
  • ํ’ˆ์งˆ๋ณด์ฆ: ์ธ์ŠคํŽ™์…˜, ๋ฆฌ๋ทฐ, ํ…Œ์ŠคํŠธ
  • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ: ํ‘œ์ค€ํ™” ๋ฐ ๊ฐœ์„ 

2.5 ๋ฐฉ๋ฒ•๋ก 

  • ๊ตฌ์กฐ์  ๋ฐฉ๋ฒ•๋ก : ์ž๋ฃŒํ๋ฆ„๋„ โ†’ ๊ตฌ์กฐ๋„ (๋ชจ๋“ˆ ๊ฐ„ ๊ด€๊ณ„)
  • ๊ฐ์ฒด์ง€ํ–ฅ ๋ฐฉ๋ฒ•๋ก : ํด๋ž˜์Šค/๊ฐ์ฒด ์ค‘์‹ฌ, ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
  • ์ •๋ณด๊ณตํ•™ ๋ฐฉ๋ฒ•๋ก : ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ, ๊ธฐ์—… ์ „๋žต ๋ฐ˜์˜

๐Ÿ“˜ Chapter 03. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์™€ ๊ณ„ํš

3.1 ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ (Initiating a Project)

๋ชฉ์ 

  • ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์น˜, ์œ„ํ—˜, ํƒ€๋‹น์„ฑ์„ ๋ถ„์„ํ•˜์—ฌ ์‹œ์ž‘ ์—ฌ๋ถ€ ๊ฒฐ์ •

๊ณ ๋ ค ์š”์†Œ

ํ•ญ๋ชฉ ์„ค๋ช…
์ œ๊ณต ๊ฐ€์น˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์กฐ์ง์— ์ฃผ๋Š” ํšจ์ต
๋ฆฌ์Šคํฌ ๊ธฐ์ˆ ์ , ์ž์›์ , ์ผ์ •์ƒ์˜ ์œ„ํ—˜

๊ฐ€์น˜ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•

  1. ํˆฌ์žํšŒ์ˆ˜๊ธฐ๊ฐ„ (Payback Period)
  2. ROI (Return on Investment)
  3. ์ˆœ์ˆ˜ ํ˜„์žฌ ๊ฐ€์น˜
  4. SWOT
  5. ํ‰๊ฐ€ํ‘œ

ํƒ€๋‹น์„ฑ ๋ถ„์„ ๊ตฌ์„ฑ

์š”์†Œ ์„ค๋ช…
SOW ํ”„๋กœ์ ํŠธ ์ž‘์—… ๋ช…์„ธ (Statement of Work)
๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฌผ์˜ ๊ธฐ๋Œ€ ํšจ๊ณผ
์˜ˆ์‚ฐ ๋น„์šฉ๊ณผ ์ˆ˜์ต ๊ตฌ์กฐ ์š”์•ฝ
์ผ์ • ์˜ˆ์ƒ ์†Œ์š” ์‹œ๊ฐ„ํ‘œ
๋ฆฌ์Šคํฌ ๋ชฉ๋ก ์˜ˆ์ƒ๋˜๋Š” ์œ„ํ—˜ ์š”์†Œ
๋Œ€์•ˆ ๊ตฌ์ถ• vs ๊ตฌ๋งค ๋“ฑ ๋น„๊ต
ํ‰๊ฐ€ ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ์—ฌ๋ถ€ ํŒ๋‹จ ๊ธฐ์ค€

3.2 ํ”„๋กœ์ ํŠธ ๊ณ„ํš๊ณผ ์Šค์ผ€์ค„๋ง

์ดˆ๊ธฐ ๊ณ„ํš ๋‹จ๊ณ„

  1. ๋ชฉํ‘œ ์„ค์ •
  2. ์ž‘์—… ์ •์˜ (Scope/WBS)
  3. ์ผ์ • ์ˆ˜๋ฆฝ (Scheduling)
  4. ๋น„์šฉ ์ถ”์ •

ํ”„๋กœ์ ํŠธ ๋ฒ”์œ„ ์ •์˜

  • ์ „์ฒด ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ ์ค‘ ์šฐ์„ ์ˆœ์œ„์™€ ๋ฒ”์œ„๋ฅผ ์„ค์ •
  • ์˜ˆ์‹œ: ์ˆ˜๊ฐ•์‹ ์ฒญ ์‹œ์Šคํ…œ โ†’ ๋กœ๊ทธ์ธ, ์กฐํšŒ, ์ˆ˜๊ฐ• ๊ธฐ๋Šฅ ํฌํ•จ

WBS (Work Breakdown Structure)

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ ๋‹ฌ์„ฑ์„ ์œ„ํ•œ ์ž‘์—…์„ ๊ณ„์ธต์ ์œผ๋กœ ๋ถ„ํ• 

  • ์ตœ์ข… ์‚ฐ์ถœ๋ฌผ์„ ๋„์ถœํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… ๋‹จ์œ„(Task) ๊ตฌ์กฐํ™”
  • ์˜ˆ์‹œ: ์„ค๊ณ„ โ†’ ํ™”๋ฉด ์„ค๊ณ„ / DB ์„ค๊ณ„ / API ์„ค๊ณ„ ๋“ฑ

์Šค์ผ€์ค„๋ง

ํ™œ๋™ ์„ค๋ช…
์˜์กด ๊ด€๊ณ„ ํŒŒ์•… ์ž‘์—… ๊ฐ„ ์„ ํ›„ ์ˆœ์„œ ์ •๋ฆฌ
CPM ์—ฌ์œ  ์‹œ๊ฐ„ ๊ณ„์‚ฐ, ์ค‘์š” ๊ฒฝ๋กœ ์‹๋ณ„
์ž์› ํ• ๋‹น ๊ฐ ์ž‘์—…์— ์ธ๋ ฅ/์‹œ๊ฐ„ ๋ถ„๋ฐฐ
๊ฐ„ํŠธ์ฐจํŠธ ์ž‘์—… ์ผ์ • ์‹œ๊ฐํ™” ๋„๊ตฌ (์‹œ๊ฐ„ ๋ง‰๋Œ€ํ˜•)

3.3 ๋น„์šฉ ์˜ˆ์ธก ๊ธฐ๋ฒ•

์ธ๋ ฅ, ๊ธฐ๊ฐ„, ์ž์› ๋“ฑ ํˆฌ์ž… ์š”์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋น„์šฉ์„ ์˜ˆ์ธก

๊ธฐ๋ณธ ๊ฐœ๋…

  • ๋…ธ๋ ฅ(Effort), ์ž์›(Resource), ๊ธฐ๊ฐ„(Duration)์˜ ๊ด€๊ณ„

D = E / M

(D: ๊ธฐ๊ฐ„, E: ๋…ธ๋ ฅ, M: ์ธ๋ ฅ)

์ฃผ์š” ๊ธฐ๋ฒ•

๊ธฐ๋ฒ• ์„ค๋ช…
์ „๋ฌธ๊ฐ€ ํŒ๋‹จ ๊ฒฝํ—˜์— ๊ธฐ๋ฐ˜ํ•œ ์˜ˆ์ธก
PERT ์„ธ ๊ฐ€์ง€ ์ถ”์ • (๋‚™๊ด€, ๋น„๊ด€, ๊ธฐ๋Œ€๊ฐ’) ์‚ฌ์šฉ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฐ˜ ์ˆ˜์‹/ํ†ต๊ณ„ ๊ธฐ๋ฐ˜ ์ž๋™ ์ถ”์ • (COCOMO ๋“ฑ)

COCOMO-81 (Constructive Cost Model)

  • SW ๊ทœ๋ชจ์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ ๋…ธ๋ ฅ์„ ์ˆ˜์น˜ํ™”
  • ๊ณต์‹:

Effort = A ร— (Size)^B ร— M

  • Size: KDSI (1,000์ค„ ๋‹จ์œ„์˜ ์†Œ์Šค์ฝ”๋“œ)
  • M: ๋ณด์ • ๊ณ„์ˆ˜ (ํŒ€ ์—ญ๋Ÿ‰, ํˆด, ์ œํ’ˆ ํŠน์„ฑ ๋“ฑ)

๋…ธ๋ ฅ ์Šน์ˆ˜ (Cost Drivers)

๊ตฌ๋ถ„ ์˜ˆ์‹œ ํ•ญ๋ชฉ
์ œํ’ˆ ํŠน์„ฑ RELY(์‹ ๋ขฐ์„ฑ), CPLX(๋ณต์žก๋„)
ํ”Œ๋žซํผ STOR(์ €์žฅ ์š”๊ตฌ), TIME(์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ)
์ธ๋ ฅ ์—ญ๋Ÿ‰ ACAP(๋ถ„์„ ๋Šฅ๋ ฅ), PCAP(ํ”„๋กœ๊ทธ๋ž˜๋จธ ๋Šฅ๋ ฅ)
ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ TOOL(์ง€์› ๋„๊ตฌ), SCED(์ผ์ • ์••๋ฐ•)

COCOMO-81 ๋‹จ์ 

  • ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ์ •ํ™•ํ•œ Size ์˜ˆ์ธก์ด ์–ด๋ ค์›€
  • ๋ชจ๋ธ ์ž์ฒด๊ฐ€ ์˜ค๋ž˜๋จ, ์ตœ์‹  SW ํŠธ๋ Œ๋“œ ๋ฐ˜์˜ ๋ฏธํก

COCOMO II (1995 ์ดํ›„ ๊ฐœ์„ ํŒ)

๊ฐœ๋ฐœ ๋‹จ๊ณ„์— ๋”ฐ๋ผ 3๊ฐ€์ง€ ๋ชจ๋ธ ์ œ์‹œ:

๋‹จ๊ณ„ ํŠน์ง•
๋‹จ๊ณ„ 1 ํ”„๋กœํ† ํƒ€์ž… ์ค‘์‹ฌ: ์‘์šฉ์ ์ˆ˜ ๊ธฐ๋ฐ˜ ์ถ”์ •
๋‹จ๊ณ„ 2 ์ดˆ๊ธฐ ์„ค๊ณ„ ๋‹จ๊ณ„: ๊ตฌ์กฐยท๊ธฐ๋Šฅ ๋‹จ์œ„ ์ถ”์ •
๋‹จ๊ณ„ 3 ์ƒ์„ธ ์„ค๊ณ„ ํ›„: ์™„์„ฑ๋œ ์ •๋ณด ๊ธฐ๋ฐ˜

๊ธฐ๋Šฅ์ ์ˆ˜๋ฒ• (Function Point)

์ž…๋ ฅ, ์ถœ๋ ฅ, ํŒŒ์ผ ์ˆ˜ ๋“ฑ์œผ๋กœ ๊ธฐ๋Šฅ ๋ณต์žก๋„ ์ธก์ •

  • ์–ธ์–ด์— ๋”ฐ๋ผ LOC๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ (์˜ˆ: FP 1 = C์–ธ์–ด ์•ฝ 150 LOC)
  • ์™ธ๋ถ€ ์ž…๋ ฅ(External Input)
  • ์™ธ๋ถ€ ์ถœ๋ ฅ(External Output)
  • ๋‚ด๋ถ€ ๋…ผ๋ฆฌ ํŒŒ์ผ(Internal Logical File)
  • ์™ธ๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค ํŒŒ์ผ(External Interface File)
  • ์™ธ๋ถ€ ์กฐํšŒ(External Query)
์–ธ์–ด LOC/FP
์–ด์…ˆ๋ธ”๋ฆฌ 324
C 150
Pascal 91
Ada 71

3.4 ํ”„๋กœ์ ํŠธ ํŒ€ ์กฐ์ง

์กฐ์ง ๊ตฌ์„ฑ์˜ ํ•ต์‹ฌ

  • ์—ญํ• ๊ณผ ์ฑ…์ž„์˜ ๋ถ„๋‹ด
  • ์ •๋ณด ํ๋ฆ„๊ณผ ๊ฒฐ์ • ๊ตฌ์กฐ
  • ๊ฐˆ๋“ฑ ํ•ด๊ฒฐ ๋ฐฉ์‹ ์„ค์ •

ํŒ€ ๊ตฌ์„ฑ ์—ญํ•  ์˜ˆ์‹œ

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

์กฐ์ง ํ˜•ํƒœ

์œ ํ˜• ์„ค๋ช…
์ง๋Šฅ๋ณ„ ์กฐ์ง ๊ธฐ๋Šฅ๋ณ„ ๋ถ€์„œ ์ค‘์‹ฌ, ํšจ์œจ์ ์ด๋‚˜ ํ˜‘์—… ๋А๋ฆผ
ํ”„๋กœ์ ํŠธ๋ณ„ ์กฐ์ง ์ „๋‹ดํŒ€ ๊ตฌ์„ฑ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋น ๋ฆ„, ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์ˆ˜์›”
๋งคํŠธ๋ฆญ์Šค ์กฐ์ง ์ด์ค‘ ์†Œ์† ๊ตฌ์กฐ (๋ถ€์„œ + ํ”„๋กœ์ ํŠธ)
์• ์ž์ผ ์กฐ์ง 5~9๋ช… ์†Œ๊ทœ๋ชจ ํŒ€, ์ž์œจ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ ์ค‘์‹ฌ

3.5 ์‹คํ–‰๊ณผ ๋ชจ๋‹ˆํ„ฐ๋ง

์‹คํ–‰

  • ํ‚ฅ์˜คํ”„ ๋ฏธํŒ…์œผ๋กœ ์‹œ์ž‘
  • ์ฃผ๊ธฐ์ ์œผ๋กœ ์ž‘์—… ๊ฒฐ๊ณผ ์ˆ˜์ง‘

๐Ÿ“Š ๋ชจ๋‹ˆํ„ฐ๋ง

ํ•ญ๋ชฉ ์„ค๋ช…
์ผ์ • ์ถ”์  ์ž‘์—… ์ง„์ฒ™๋„ ํ™•์ธ
์–ด๋‹ ๋ฐธ๋ฅ˜ ๋ถ„์„ (EVM) ๊ณ„ํš ๋Œ€๋น„ ์‹ค์ œ ๋น„์šฉ/์„ฑ๊ณผ ๋น„๊ต ๋ถ„์„

3.6 ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ

๋ชฉ์ 

์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์œ„ํ—˜์„ ์‚ฌ์ „์— ํŒŒ์•…ํ•˜๊ณ  ๋Œ€์‘์ฑ…์„ ๋งˆ๋ จํ•ด ํ”ผํ•ด ์ตœ์†Œํ™”

์ฃผ์š” ๋‹จ๊ณ„

  1. ๋ฆฌ์Šคํฌ ํŒŒ์•…
    • ํšŒ์˜, ๋ฌธ์„œ ๋ถ„์„, ์ฒดํฌ๋ฆฌ์ŠคํŠธ, ์œ ์ถ” ๋“ฑ ์‚ฌ์šฉ
  2. ๋ฆฌ์Šคํฌ ํ‰๊ฐ€
    • ๋ฐœ์ƒ ํ™•๋ฅ  ร— ์˜ํ–ฅ๋„๋กœ ์šฐ์„ ์ˆœ์œ„ ์„ค์ •
    • ์ •์„ฑ์ (ํ™•๋ฅ  ์—†์Œ) / ์ •๋Ÿ‰์  ๋ถ„์„ ๋ชจ๋‘ ๊ฐ€๋Šฅ
  3. ๋Œ€์‘ ์ „๋žต ์ˆ˜๋ฆฝ
์ „๋žต ์„ค๋ช…
ํšŒํ”ผ ์•„์˜ˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ ์„ค๊ณ„ ๋ณ€๊ฒฝ
์ด์ „ ๋ณดํ—˜, ์™ธ๋ถ€ ์—…์ฒด ์œ„ํƒ ๋“ฑ
์™„ํ™” ์˜ํ–ฅ๋„๋ฅผ ์ค„์ด๋Š” ๋ฐฉ์‹
์ˆ˜์šฉ ๊ฐ์ˆ˜ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์ผ ๋•Œ ๊ทธ๋Œ€๋กœ ์ง„ํ–‰

ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„œ ๊ตฌ์„ฑ

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

๐Ÿ“˜ Chapter 04. ์š”๊ตฌ ๋ถ„์„ (Requirements Analysis)

4.1 ์š”๊ตฌ

์ •์˜

์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋Œ€ ๋ฐ ์š”์ฒญ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•œ ๊ฒƒ

์ฆ‰, โ€œ์‹œ์Šคํ…œ์ด ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€โ€์— ๋Œ€ํ•œ ๊ณต์‹์  ํ•ฉ์˜ ์‚ฌํ•ญ

์ œ์•ฝ์กฐ๊ฑด (Constraints)

  • ํŠน์ • ์–ธ์–ด ์‚ฌ์šฉ, ํ”Œ๋žซํผ ์ œํ•œ, ๋ฒ•์ /์šด์˜ ํ™˜๊ฒฝ ์ œ์•ฝ ๋“ฑ
  • ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ ๋ฐ˜๋“œ์‹œ ํŒŒ์•…ํ•ด์•ผ ํ•˜๋Š” ์š”์†Œ

4.1 ์š”๊ตฌ์˜ ๋ถ„๋ฅ˜

์œ ํ˜• ์„ค๋ช… ์˜ˆ์‹œ
๊ธฐ๋Šฅ์  ์š”๊ตฌ ์‹œ์Šคํ…œ์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ ATM: ์ž…๊ธˆ, ์ถœ๊ธˆ, ์กฐํšŒ
๋น„๊ธฐ๋Šฅ์  ์š”๊ตฌ ์„ฑ๋Šฅ, ๋ณด์•ˆ, ์‚ฌ์šฉ์„ฑ ๋“ฑ ํ’ˆ์งˆ ์†์„ฑ ์‘๋‹ต์‹œ๊ฐ„ 1์ดˆ ์ด๋‚ด, ์•”ํ˜ธํ™” ์ ์šฉ
๋„๋ฉ”์ธ ์š”๊ตฌ ํ•ด๋‹น ๋ถ„์•ผ ํŠน์œ ์˜ ์—…๋ฌด ๊ทœ์น™ ํšŒ๊ณ„ ๊ทœ์น™, ์„ธ๊ธˆ ๊ณ„์‚ฐ ๋ฐฉ์‹
๋ช…์‹œ์ /์•”๋ฌต์  ์š”๊ตฌ ๋ช…ํ™•ํžˆ ์ฃผ์–ด์ง„ ๊ฒƒ vs ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋Œ€๋˜๋Š” ๊ฒƒ ๋ช…์‹œ์ : UI ์–ธ์–ด / ์•”๋ฌต์ : ์›น ํ‘œ์ค€ ์ค€์ˆ˜

4.2 ์š”๊ตฌ ์ถ”์ถœ (Requirements Elicitation)

์ถ”์ถœ ๋‹จ๊ณ„

  1. ์ •๋ณด ์ถœ์ฒ˜ ํŒŒ์•…
  2. ์ •๋ณด ์ˆ˜์ง‘
  3. ์š”๊ตฌ์™€ ์ œ์•ฝ์‚ฌํ•ญ ์ •์˜

์š”๊ตฌ ์ •๋ณด ์ถœ์ฒ˜

์ถœ์ฒ˜ ์„ค๋ช…
๊ณ ๊ฐ(Client) ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ํ‘œํ˜„์ž
๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€ ํ•ด๋‹น ์—…๋ฌด์— ํŠนํ™”๋œ ์ „๋ฌธ๊ฐ€
์ดํ•ด๋‹น์‚ฌ์ž(Stakeholder) ์‹œ์Šคํ…œ ์‚ฌ์šฉ/์˜ํ–ฅ ๋ฐ›๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ
์‚ฌ์šฉ์ž(User) ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ์‹ค๋ฌด ๋‹ด๋‹น์ž
์—ญ๊ณตํ•™ ๊ธฐ์กด ์‹œ์Šคํ…œ์—์„œ ์š”๊ตฌ ํŒŒ์•…

์ˆ˜์ง‘ ๋ฐฉ๋ฒ•

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

4.3 ์š”๊ตฌ ๋ถ„์„ (Requirements Analysis)

๋ชฉ์ 

  • ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…ํ™•ํ•˜๊ณ , ์ผ๊ด€๋˜๋ฉฐ, ์™„์ „ํ•˜๊ฒŒ ์ •๋ฆฌ
  • ์š”๊ตฌ ๊ฐ„ ์ถฉ๋Œ ์ œ๊ฑฐ ๋ฐ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •

์š”๊ตฌ์˜ ํ’ˆ์งˆ ์†์„ฑ

์†์„ฑ ์„ค๋ช…
์›์ž์„ฑ (Atomic) ์š”๊ตฌ๋Š” ๋” ์ด์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋Š” ์ตœ์†Œ ๋‹จ์œ„์—ฌ์•ผ ํ•จ
์™„์ „์„ฑ (Complete) ๋ˆ„๋ฝ๋œ ํ•ญ๋ชฉ์ด ์—†์–ด์•ผ ํ•จ
๋น„๋ชจํ˜ธ์„ฑ (Unambiguous) ํ•ด์„์ด ๋ช…ํ™•ํ•ด์•ผ ํ•จ
์ผ๊ด€์„ฑ (Consistent) ์ถฉ๋Œ์ด๋‚˜ ๋ชจ์ˆœ์ด ์—†์–ด์•ผ ํ•จ
์ถ”์  ๊ฐ€๋Šฅ์„ฑ (Traceable) ๊ตฌํ˜„, ํ…Œ์ŠคํŠธ ํ•ญ๋ชฉ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•จ
ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ (Testable) ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ์š”๊ตฌ์—ฌ์•ผ ํ•จ
์šฐ์„ ์ˆœ์œ„ํ™” (Prioritized) ์ค‘์š”๋„์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ

๋ถ„์„ ๊ธฐ๋ฒ•

  • ๋„๋ฉ”์ธ ๋ถ„์„: ๋ถ„์•ผ๋ณ„ ํ•ต์‹ฌ ๊ฐœ๋… ํŒŒ์•… โ†’ ์‹œ์Šคํ…œ ๊ฐœ๋…ํ™”
  • ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜ ๋ถ„์„: ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ/์ƒํ™ฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์š”๊ตฌ ๋„์ถœ

์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ ํ…œํ”Œ๋ฆฟ:

php-template
๋ณต์‚ฌํŽธ์ง‘
<์—ญํ• >์€(๋Š”) <ํ–‰์œ„>๋ฅผ ํ•˜์—ฌ <๋ชฉํ‘œ>๋ฅผ ๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค.
ex) ํ•™์ƒ์€ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•์‹ ์ฒญํ•˜์—ฌ ์›ํ•˜๋Š” ์ˆ˜์—…์„ ๋“ฃ๊ณ ์ž ํ•œ๋‹ค.


4.4 ์œ ์Šค์ผ€์ด์Šค (Use Case)

์ •์˜

์‚ฌ์šฉ์ž(์•กํ„ฐ)๊ฐ€ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ํ‘œํ˜„

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

์š”์†Œ ์„ค๋ช…
์•กํ„ฐ(Actor) ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์™ธ๋ถ€ ์ฃผ์ฒด
์œ ์Šค์ผ€์ด์Šค(Use Case) ์•กํ„ฐ๊ฐ€ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…
์‹œ์Šคํ…œ ๋ฒ”์œ„ ์‹œ์Šคํ…œ์ด ๋‹ด๋‹นํ•  ์˜์—ญ ์ •์˜
๊ด€๊ณ„ Include, Extend, Generalization ๋“ฑ

์œ ์Šค์ผ€์ด์Šค ์ž‘์„ฑ ๋‹จ๊ณ„

  1. ์•กํ„ฐ ์‹๋ณ„
    • ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ๊ทธ๋ฃน, ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๋“ฑ
  2. ์œ ์Šค์ผ€์ด์Šค ๋„์ถœ
    • ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ 
  3. ์œ ์Šค์ผ€์ด์Šค ๊ด€๊ณ„ ์„ค์ •
    • ๊ณตํ†ต ๋™์ž‘์€ Include, ์กฐ๊ฑด๋ถ€ ํ™•์žฅ์€ Extend

๊ด€๊ณ„ ์˜ˆ์‹œ

๊ด€๊ณ„ ์„ค๋ช… ์˜ˆ์‹œ
Include ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉ โ€˜๊ฒฐ์ œโ€™ ์œ ์Šค์ผ€์ด์Šค๊ฐ€ โ€˜๋กœ๊ทธ์ธโ€™์„ ํฌํ•จ
Extend ์กฐ๊ฑด๋ถ€ ํ™•์žฅ โ€˜๊ฒฐ์ œโ€™ ์ค‘ โ€˜๋ฉค๋ฒ„์‹ญ ํ• ์ธโ€™์€ ์กฐ๊ฑด๋ถ€ ์ˆ˜ํ–‰

4.5 ์š”๊ตฌ ๋ช…์„ธ (IEEE 830)

์š”๊ตฌ์‚ฌํ•ญ์„ ์ •ํ˜•ํ™”ํ•˜์—ฌ ๋ฌธ์„œ๋กœ ๋ช…์„ธํ™” (SRS = Software Requirements Specification)

์ฃผ์š” ๊ตฌ์„ฑ

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

์ž‘์„ฑ ์‹œ ์œ ์˜์‚ฌํ•ญ

  • ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ
  • ์‚ฌ์šฉ์ž์™€ ๊ฐœ๋ฐœ์ž ๊ฐ„ ๋™์˜๋œ ์กฐ๊ฑด
  • ํ…Œ์ŠคํŠธ ๊ธฐ์ค€๊ณผ ํ’ˆ์งˆ ์กฐ๊ฑด ํฌํ•จ
  • ์‹œ์Šคํ…œ์ด ์ˆ˜ํ–‰ํ•  ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋น ์ง์—†์ด ํฌํ•จ

4.6 ์š”๊ตฌ ๊ฒ€์ฆ (Requirements Validation)

๋„์ถœ๋œ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ •ํ™•ํ•˜๊ณ  ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ์ ๊ฒ€ํ•˜๋Š” ์ ˆ์ฐจ

์ฃผ์š” ๊ฒ€์ฆ ํ™œ๋™

๊ธฐ๋ฒ• ์„ค๋ช…
๋ฆฌ๋ทฐ ์ „๋ฌธ๊ฐ€ ์ง‘๋‹จ์ด ๋ฌธ์„œ ์ ๊ฒ€
์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ ๋™์ž‘ ์˜ˆ์ธก์„ ํ†ตํ•œ ํ™•์ธ
ํ”„๋กœํ† ํƒ€์ดํ•‘ ๊ฐ„๋‹จํ•œ ์‹œ์ œํ’ˆ์œผ๋กœ ๊ฒ€์ฆ
ํ…Œ์ŠคํŠธ ๊ธฐ์ค€ ์„ค์ • ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ ์žˆ๋Š” ์š”๊ตฌ์ธ์ง€ ํ™•์ธ

๊ฒ€์ฆ์˜ ์ดˆ์ 

  • ์š”๊ตฌ๊ฐ€ ๋ชจ์ˆœ ์—†์ด ์™„์ „ํ•œ๊ฐ€?
  • ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ ์›ํ–ˆ๋˜ ๊ธฐ๋Šฅ์ธ๊ฐ€?
  • ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์ธ๊ฐ€?

๐Ÿ“˜ Chapter 05. ์š”๊ตฌ ๋ชจ๋ธ๋ง (Requirements Modeling)

5.1 ๋ชจ๋ธ๋ง ๊ธฐ์ดˆ

๋ชจ๋ธ๋ง์ด ํ•„์š”ํ•œ ์ด์œ 

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

๊ด€์ ๊ณผ ์ถ”์ƒํ™” ์ˆ˜์ค€

  • ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ ๊ด€์ ์—์„œ ๋‹ค์–‘ํ•œ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ๋ชจ๋ธ๋ง๋จ

    (์˜ˆ: ์‚ฌ์šฉ์ž ๊ด€์ , ๊ตฌ์กฐ ๊ด€์ , ํ–‰์œ„ ๊ด€์  ๋“ฑ)


5.2 UML (Unified Modeling Language)

๊ฐ์ฒด์ง€ํ–ฅ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ์‹œ๊ฐํ™” ์–ธ์–ด

UML์˜ ํŠน์ง•

  • ์‹œ์Šคํ…œ์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„
  • ๊ธฐ๋Šฅ์ , ๊ตฌ์กฐ์ , ๋™์  ๊ด€์  ๋ชจ๋‘ ์ง€์›
  • ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„์˜ ํšŒ๋กœ๋„์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…

UML ๋ชจ๋ธ๋ง ๊ณผ์ • (7๋‹จ๊ณ„)

image


5.3 ์ •์  ๋ชจ๋ธ๋ง

์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์  ์ธก๋ฉด์„ ํ‘œํ˜„ (๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„)

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

  • ๊ฐ์ฒด๋“ค์˜ ๊ณตํ†ต ๊ตฌ์กฐ์™€ ๊ด€๊ณ„ ํ‘œํ˜„
  • ๋„๋ฉ”์ธ ๊ฐœ๋…, ์†์„ฑ, ์—ฐ๊ด€, ์ƒ์† ๋“ฑ์„ ํ‘œํ˜„

์ฃผ์š” ๊ฐœ๋… ์ •๋ฆฌ

๊ฐœ๋… ์„ค๋ช…
๊ฐ์ฒด(Object) ์ƒํƒœ + ๋™์ž‘ + ๊ณ ์œ  ID๋ฅผ ๊ฐ€์ง„ ์‹ค์ฒด
ํด๋ž˜์Šค(Class) ์œ ์‚ฌํ•œ ๊ฐ์ฒด์˜ ์ถ”์ƒ์  ์ •์˜
์บก์Аํ™” ์†์„ฑ๊ณผ ์—ฐ์‚ฐ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์Œ, ์ •๋ณด ์€๋‹‰
์—ฐ๊ด€(Association) ๊ฐ์ฒด ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ๊ด€๊ณ„
์ƒ์†(Inheritance) ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ/์—ฐ์‚ฐ์„ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›์Œ
๋‹คํ˜•์„ฑ(Polymorphism) ๋™์ผ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ๊ฐ์ฒด๋ณ„๋กœ ๋‹ค๋ฅธ ๋ฐ˜์‘

ํ‘œํ˜„๋ฒ•

  • ํด๋ž˜์Šค = ์ด๋ฆ„ / ์†์„ฑ / ์˜คํผ๋ ˆ์ด์…˜
  • ๊ด€๊ณ„: ์—ฐ๊ด€ (์‹ค์„ ), ์ƒ์† (ํ™”์‚ดํ‘œ), ๊ตฌํ˜„/์˜์กด(์ ์„ )

5.4 ๋™์  ๋ชจ๋ธ๋ง

์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๋ฐ”๋€Œ๋Š” ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ํ‘œํ˜„

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

  • ๊ฐ์ฒด ๊ฐ„ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ์ˆœ์„œ๋ฅผ ์‹œ๊ฐ„ ํ๋ฆ„์— ๋”ฐ๋ผ ์‹œ๊ฐํ™”
  • X์ถ•: ๊ฐ์ฒด, Y์ถ•: ์‹œ๊ฐ„, ํ™”์‚ดํ‘œ: ๋ฉ”์‹œ์ง€ ํ๋ฆ„

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

  • ๊ฐ์ฒด ๊ฐ„ ๋งํฌ ๊ตฌ์กฐ + ๋ฉ”์‹œ์ง€ ๊ตํ™˜์„ ๋™์‹œ์— ํ‘œํ˜„

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

  • ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€ํ™” ๊ณผ์ •์„ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ๋ง
  • ์˜ˆ์‹œ: ๋„์„œ ๋Œ€์ถœ ์‹œ์Šคํ…œ โ†’ โ€˜๋ณด๊ด€ ์ค‘โ€™ โ†’ โ€˜๋Œ€์ถœ ์ค‘โ€™ โ†’ โ€˜๋ฐ˜๋‚ฉ ์ฒ˜๋ฆฌโ€™

5.5 ์ œ์–ด ๋ชจ๋ธ๋ง

ํ™œ๋™ ๊ฐ„์˜ ์ œ์–ด ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ชจ๋ธ

์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ

| ์š”์†Œ | ์„ค๋ช… | | โ€” | โ€” | | ์•กํ‹ฐ๋น„ํ‹ฐ(Activity) | ์ž‘์—… ๋‹จ์œ„ (๊ณ„์‚ฐ, ์ฒ˜๋ฆฌ ๋“ฑ) | | ์ „ํ™˜(Transition) | ์ž‘์—… ์™„๋ฃŒ ํ›„ ๋‹ค์Œ ์ž‘์—…์œผ๋กœ ์ œ์–ด ์ด๋™ | | ๋ถ„๊ธฐ/๋ณ‘ํ•ฉ | ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ํ๋ฆ„ ์ œ์–ด | | ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ | ๋™์‹œ ์‹คํ–‰๋˜๋Š” ์ž‘์—… ํ‘œํ˜„ ๊ฐ€๋Šฅ |

  • ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค, ์›Œํฌํ”Œ๋กœ์šฐ์— ์ ํ•ฉ

5.6 ๋ชจ๋ธ ๊ฒ€์ฆ

๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ๊ฐ€ ์ผ๊ด€๋˜๊ณ  ์ •ํ™•ํ•œ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ณผ์ •

๊ฒ€์ฆ ๋ฐฉ๋ฒ•

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

์ผ๊ด€์„ฑ ์ฒดํฌ ํ•ญ๋ชฉ

๋น„๊ต ํ•ญ๋ชฉ ํ™•์ธ ๋‚ด์šฉ
์œ ์Šค์ผ€์ด์Šค โ†” ์‹œํ€€์Šค ๊ฐ ์œ ์Šค์ผ€์ด์Šค์— ๋Œ€ํ•œ ์‹œํ€€์Šค ์กด์žฌ ์—ฌ๋ถ€
์‹œํ€€์Šค โ†” ํด๋ž˜์Šค ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ์‹œ ์‚ฌ์šฉ๋œ ํด๋ž˜์Šค๊ฐ€ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์— ์กด์žฌ
ํด๋ž˜์Šค โ†” ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ์—ฐ๊ด€๋จ

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: