Computer Science ๐Ÿ“š/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

[์ •์ฒ˜๊ธฐ]์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์ถ• I - ํ”„๋กœ์ ํŠธ ๊ณ„ํš, ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„, ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ etc.

leejaejae 2024. 7. 10. 17:36
ํญํฌ์ˆ˜ ์„ ํ˜• ์ˆœ์ฐจ์  ๊ฐœ๋ฐœ / ๊ณ ์ „์ , ์ „ํ†ต์  ๊ฐœ๋ฐœ ๋ชจํ˜• / Step-by-Step
ํ”„๋กœํ† ํƒ€์ž… ๊ณ ๊ฐ์˜ need ํŒŒ์•… ์œ„ํ•ด ๊ฒฌ๋ณธ/์‹œ์ œํ’ˆ์„ ํ†ตํ•ด ์ตœ์ข… ๊ฒฐ๊ณผ ์˜ˆ์ธก
์ธํ„ฐํŽ˜์ด์Šค ์ค‘์‹ฌ / ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ ์šฉ์ด
๋‚˜์„ ํ˜•(Spiral) ํญํฌ์ˆ˜ + ํ”„๋กœํ† ํƒ€์ž… + ์œ„ํ—™ ๋ถ„์„ ๊ธฐ๋Šฅ ์ถ”๊ฐ€(์œ„ํ—˜ ๊ด€๋ฆฌ/์ตœ์†Œํ™”)
์ ์ง„์  ๊ฐœ๋ฐœ ๊ณผ์ • ๋ฐ˜๋ณต / ์ •๋ฐ€ํ•˜๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ ๊ณผ์ • ํ•„์š” X
โ˜… ๊ณ„ํš ์ˆ˜๋ฆฝ → ์œ„ํ—˜ ๋ถ„์„ → ๊ฐœ๋ฐœ ๋ฐ ๊ฒ€์ฆ → ๊ณ ๊ฐ ํ‰๊ฐ€
์• ์ž์ผ(Agile) ์ผ์ •ํ•œ ์งง์€ ์ฃผ๊ธฐ(Sprint ๋˜๋Š” Iteration) ๋ฐ˜๋ณตํ•˜๋ฉฐ ๊ฐœ๋ฐœ ์ง„ํ–‰
→ ๊ณ ๊ฐ ์š”๊ตฌ์‚ฌํ•ญ์— ์œ ์—ฐํ•œ ๋Œ€์‘ (๊ณ ๊ฐ ์†Œํ†ต/์ƒํ˜ธ์ž‘์šฉ ์ค‘์‹œ)
Ex. XP(eXtreme Programming), Scrum, FDD(๊ธฐ๋Šฅ์ค‘์‹ฌ),
๋ฆฐ(LEAN), DSDM(Dynamic System Development Method)

ํ•˜ํ–ฅ์‹ ์„ค๊ณ„(Top-down): ์ ˆ์ฐจ ์ง€ํ–ฅ (์ˆœ์ฐจ์ ) / ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ํ›„ ํ•˜์œ„ ๊ธฐ๋Šฅ ๋ถ€์—ฌ
→ ํ…Œ์ŠคํŠธ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹œ์Šคํ…œ ๊ตฌ์กฐ ์ œ์‹œ ๊ฐ€๋Šฅ
* Component: ๋ช…๋ฐฑํ•œ ์—ญํ• ์„ ๊ฐ€์ง€๋ฉฐ ์žฌ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ๋‹จ์œ„ / ์ธํ„ฐํŽ˜์ด์Šค ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅ

์ƒํ–ฅ์‹ ์„ค๊ณ„(Bottom-up): ๊ฐ์ฒด ์ง€ํ–ฅ / ์ตœํ•˜์œ„ ๋ชจ๋“ˆ ๋จผ์ € ์„ค๊ณ„ ํ›„ ์ด๋“ค์„ ๊ฒฐํ•ฉํ•˜๊ณ  ๊ฒ€์‚ฌ
→ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์‹œ ์ƒ์œ„ ๋ชจ๋“ˆ๋„ ๊ฐ™์ด ๋ณ€๊ฒฝ ํ•„์š”ํ•˜์—ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์–ด๋ ค์›€

โ€ป ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(eXtreme Programming, XP)
- ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ฐ ์ฐธ์—ฌ์™€ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๋ฐ˜๋ณต
- 5๊ฐ€์ง€ ํ•ต์‹ฌ ๊ฐ€์น˜: ์šฉ๊ธฐ / ๋‹จ์ˆœ์„ฑ / ์˜์‚ฌ์†Œํ†ต / ํ”ผ๋“œ๋ฐฑ / ์กด์ค‘
- ๊ธฐ๋ณธ ์›๋ฆฌ: ์ „์ฒด ํŒ€ / ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ / ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ / ๊ณ„์†์ ์ธ ํ†ตํ•ฉ / ๊ณต๋™ ์†Œ์œ ๊ถŒ(Collective ownership) / ์ง(pair) ํ”„๋กœ๊ทธ๋ž˜๋ฐ / ๋””์ž์ธ ๊ฐœ์„ฑ(๋ฆฌํŒฉํ† ๋ง) / ์• ์ž์ผ(Agile) ๋ฐฉ๋ฒ•๋ก  ํ™œ์šฉ ์ƒ์‹์  ์›๋ฆฌ ๋ฐ ๊ฒฝํ—˜ ์ถ”๊ตฌ, ๊ฐœ๋ฐœ ๋ฌธ์„œ๋ณด๋‹ค ์†Œ์Šค์ฝ”๋“œ์— ์ค‘์ (๋ฌธ์„œํ™” X)

 

โ‘  ํ”„๋กœ์ ํŠธ ๊ณ„ํš

โ–ถ๏ธŽ ํ•˜ํ–ฅ์‹ ๋น„์šฉ ์‚ฐ์ • ๊ธฐ๋ฒ•
- ์ „๋ฌธ๊ฐ€ ๊ฐ์ • ๊ธฐ๋ฒ•: ์กฐ์ง ๋‚ด ๋‘ ๋ช… ์ด์ƒ์˜ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋น„์šฉ ์‚ฐ์ •์„ ์˜๋ขฐํ•˜๋Š” ๊ธฐ๋ฒ• → ๊ฐœ์ธ์  / ์ฃผ๊ด€์  ํŒ๋‹จ ๊ฐ€๋Šฅ
- ๋ธํŒŒ์ด ๊ธฐ๋ฒ•: ํ•œ ๋ช…์˜ ์กฐ์ •์ž์™€ ์—ฌ๋Ÿฌ ์ „๋ฌธ๊ฐ€์˜ ์˜๊ฒฌ์„ ์ข…ํ•ฉํ•˜์—ฌ ์‚ฐ์ • → '์ „๋ฌธ๊ฐ€ ๊ฐ์ • ๊ธฐ๋ฒ•'์˜ ์ฃผ๊ด€์  ํŽธ๊ฒฌ ๋ณด์™„

โ–ถ๏ธŽ ์ƒํ–ฅ์‹ ๋น„์šฉ ์‚ฐ์ • ๊ธฐ๋ฒ•
- ํ”„๋กœ์ ํŠธ ์„ธ๋ถ€ ์ž‘์—… ๋‹จ์œ„ ๋ณ„๋กœ ๋น„์šฉ ์ •์‚ฐ ํ›„ ์ „์ฒด ๋น„์šฉ์„ ์‚ฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

[ ์ข…๋ฅ˜ ]
• LOC(Source Line of Code): ์ฝ”๋“œ ๋ผ์ธ ์ด ์ˆ˜ / ์ƒ์‚ฐ์„ฑ / ๊ฐœ๋ฐœ ์ฐธ์—ฌ ์ธ์› ๋“ฑ์œผ๋กœ ๊ณ„์‚ฐ
→ ๋‚™๊ด€์น˜(a), ๋น„๊ด€์น˜(b), ๊ธฐ๋Œ€์น˜(c)๋ฅผ ์ธก์ •/์˜ˆ์ธกํ•˜์—ฌ ๋น„์šฉ ์‚ฐ์ • = a + 4c + b / 6
 ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ณ„ ์ธ์›” ์ˆ˜(Effort Per Task): LOC ๊ธฐ๋ฒ• ๋ณด์•ˆ / ์ƒ๋ช… ์ฃผ๊ธฐ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ฐ์ •

โ–ถ๏ธŽ ์ˆ˜ํ•™์  ๋น„์šฉ ์‚ฐ์ •
โ‘  COCOMO(Constructive Cost Model): ๋ณดํ—ด(Boehm) ์ œ์•ˆ / ์›์‹œ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜ ๊ธฐ๋ฐ˜
→ ๋น„์šฉ ๊ฒฌ์  ๊ฐ•๋„ ๋ถ„์„ ๋ฐ ๋น„์šฉ ๊ฒฌ์ ์˜ ์œ ์—ฐ์„ฑ์ด ๋†’์•„ ๋„๋ฆฌ ํ†ต์šฉ๋จ
→ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ผ๋„ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋น„์šฉ์ด ๋‹ค๋ฅด๊ฒŒ ์‚ฐ์ •

์œ ํ˜• ์กฐ์งํ˜•(Organic) ์ค‘, ์†Œ๊ทœ๋ชจ SW์šฉ / 5๋งŒ ๋ผ์ธ(50KDSI) ์ดํ•˜
๋ฐ˜๋ถ„๋ฆฌํ˜•(Semi-detached) 30๋งŒ ๋ผ์ธ(300KDSI) ์ดํ•˜์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ
๋‚ด์žฅํ˜•(Embedded) 30๋งŒ ๋ผ์ธ(300KDSI) ์ด์ƒ์˜ ์ดˆ๋Œ€ํ˜• ๊ทœ๋ชจ SW ๊ด€๋ฆฌ


โ‘ก PUTNAM
: SW ์ƒ๋ช…์ฃผ๊ธฐ ์ „ ๊ณผ์ •์— ์‚ฌ์šฉ๋  ๋…ธ๋ ฅ์˜ ๋ถ„ํฌ๋ฅผ ์ด์šฉํ•œ ๋น„์šฉ ์‚ฐ์ •, Rayleigh Norden ๊ณก์„ ์˜ ๋…ธ๋ ฅ ๋ถ„ํฌ๋„๋ฅผ ๊ธฐ์ดˆ๋กœ ํ•จ
โ˜… SLIM: Rayleigh-Norden ๊ณก์„  / Putnam ๋ชจํ˜• ๊ธฐ์ดˆ๋กœ ๊ฐœ๋ฐœ๋œ ์ž๋™ํ™” ์ถ”์ • ๋„๊ตฌ

โ‘ข Function Point(FP): SW ๊ธฐ๋Šฅ ์ฆ๋Œ€ ์š”์ธ์— ๊ฐ€์ค‘์น˜ ๋ถ€์—ฌ ํ›„ ํ•ฉ์‚ฐํ•˜์—ฌ ๊ธฐ๋Šฅ์ ์ˆ˜ ์‚ฐ์ถœ
→ SW ๊ธฐ๋Šฅ ์ฆ๋Œ€ ์š”์ธ: ์ž๋ฃŒ ์ž…๋ ฅ(์ž…๋ ฅ ์–‘์‹) / ์ •๋ณด ์ถœ๋ ฅ(์ถœ๋ ฅ ๋ณด๊ณ ์„œ) / ๋ช…๋ น์–ด(์‚ฌ์šฉ์ž ์งˆ์˜์ˆ˜) / ๋ฐ์ดํ„ฐ ํŒŒ์ผ / ์ธํ„ฐํŽ˜์ด์Šค
โ˜… ESTIMACS: FP ๋ชจํ˜•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ๊ฐœ๋ฐœ๋œ ์ž๋™ํ™” ์ถ”์ • ๋„๊ตฌ

โ–  ๊ฐœ๋ฐœ ์ผ์ • ์‚ฐ์ •

- WBS(Work Breakdown Structure): ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ ๋‹ฌ์„ฑ์„ ์œ„ํ•œ ํ™œ๋™๊ณผ ์—…๋ฌด๋ฅผ ์„ธ๋ถ„ํ™”
→ ์ „์ฒด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ถ„ํ•  / ์ˆ˜ํ–‰ ์—…๋ฌด ์‹๋ณ„, ์ผ์ • ๋ฐ ๋น„์šฉ

โ–ถ๏ธŽ ๋„คํŠธ์›Œํฌ ์ฐจํŠธ

  • PERT
    • ํ”„๋กœ์ ํŠธ ์ง์—… ์ƒํ˜ธ๊ด€๊ณ„๋ฅผ ๋„คํŠธ์›Œํฌ๋กœ ํ‘œํ˜„
    • ์› ๋…ธ๋“œ(์ž‘์—…)์™€ ๊ฐ„์„ (ํ™”์‚ดํ‘œ)์œผ๋กœ ๊ตฌ์„ฑ(@๋ถˆํ™•์‹คํ•œ ์ƒํ™ฉ)
      → ๊ฐ„์„ ์—๋Š” ๊ฐ ์ง์—…๋ณ„ ๋‚™๊ด€์น˜ / ๊ธฐ๋Œ€์น˜ / ๋น„๊ด€์น˜๋ฅผ ๊ธฐ์žฌ
  • CPM
    • ๋ฏธ๊ตญ Dupont ํšŒ์‚ฌ์—์„œ ํ™”ํ•™๊ณต์žฅ ์œ ์ง€ / ๊ด€๋ฆฌ ์œ„ํ•ด ๊ฐœ๋ฐœ
    • ๋…ธ๋“œ(์ž‘์—…) / ๊ฐ„์„ (์ž‘์—… ์ „ํ›„ ์˜์กด ๊ด€๊ณ„) / ๋ฐ•์Šค(์ด์ •ํ‘œ) ๊ตฌ์„ฑ
    • ๊ฐ„์„ (ํ™”์‚ดํ‘œ)์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ์ง์—… ์ง„ํ–‰(@ํ™•์‹คํ•œ ์ƒํ™ฉ)

โ–ถ๏ธŽ ๊ฐ„ํŠธ ์ฐจํŠธ
- ๊ฐ ์ž‘์—…์˜ ์‹œ์ž‘/์ข…๋ฃŒ ์ผ์ •์„ ๋ง‰๋Œ€ ๋ฐ”(Bar) ๋„ํ‘œ๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„
- ์‹œ๊ฐ„์„ (Time-line) ์ฐจํŠธ(์ˆ˜ํ‰ ๋ง‰๋Œ€ ๊ธธ์ด = ์ž‘์—…๊ธฐ๊ฐ„)
- ์ž‘์—… ๊ฒฝ๋กœ๋Š” ํ‘œํ˜„ ๋ถˆ๊ฐ€ / ๊ณ„ํš ๋ณ€ํ™”๋ ˆ ๋Œ€ํ•œ ์ ์‘์„ฑ์ด ๋‚ฎ์Œ

 

โ‘ก ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„

โ–  ์š”๊ตฌ์‚ฌํ•ญ

- ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์กฐ๊ฑด ๋ฐ ์ œ์•ฝ์‚ฌํ•ญ์„ ์š”๊ตฌ
- ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ/์œ ์ง€ ๋ณด์ˆ˜ ๊ณผ์ •์— ํ•„์š”ํ•œ ๊ธฐ์ค€๊ณผ ๊ทผ๊ฑฐ ์ œ๊ณต

โ–บ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์œ ํ˜•

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

โ–บ ์š”๊ตฌ์‚ฌํ•ญ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค  โ˜…์ˆœ์„œ ์ค‘์š”
โ‘  ๋„์ถœ/์ถ”์ถœ:
์ดํ•ด๊ด€๊ณ„์ž๋“ค์ด ๋ชจ์—ฌ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜(์‹๋ณ„ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” ๊ณผ์ •)
ex. ์ธํ„ฐ๋ทฐ, ์„ค๋ฌธ, ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ, ์ฒญ์ทจ, ํ”„๋กœํ† ํƒ€์ดํ•‘, ์œ ์Šค์ผ€์ด์Šค

โ‘ก ๋ถ„์„:
์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ์— ํƒ€๋‹น์„ฑ ์กฐ์‚ฌ / ๋น„์šฉ ๋ฐ ์ผ์ •์— ๋Œ€ํ•œ ์ œ์•ฝ ์„ค์ •
ex. ๊ด€์ฐฐ, ๊ฐœ๋… ๋…ธ๋ธ๋ง, ์ •ํ˜• ๋ถ„์„, ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜ ๋ฌธ์„œํ™”

โ‘ข
๋ช…์„ธ:
์š”๊ตฌ์‚ฌํ•ญ ์ณŠ๊ณ„์  ๋ถ„์„ ํ›„ ์Šน์ธ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ฌธ์„œํ™”

โ‘ฃ ํ™•์ธ/๊ฒ€์ฆ:
์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ๊ฐ€ ์ •ํ™•ํ•˜๊ณ  ์™„์ „ํ•˜๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ๊ฒ€ํ† 

โ–บ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋„๊ตฌ

  • ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ CASE
    • SADT: SoftTech ์‚ฌ์—์„œ ๊ฐœ๋ฐœ / ๊ตฌ์กฐ์  ๋ถ„์„ ๋ฐ ์„ค๊ณ„ ๋ถ„์„
    • SREM: ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ SW ์‹œ์Šคํ…œ์—์„œ ์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํ•œ ๊ธฐ์ˆ  ๋ชฉ์ 
    • PSL/PSA: ๋ฌธ์ œ ๊ธฐ์ˆ ์–ธ์–ด ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋ณด๊ณ ์„œ ์ถœ๋ ฅ
    • TAGS: ์‹œ์Šคํ…œ ๊ณตํ•™ ๋ฐฉ๋ฒ• ์‘์šฉ์— ๋Œ€ํ•œ ์ž๋™ ์ ‘๊ทผ ๋ฐฉ๋ฒ•
  • HIPO: ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ์‹ / ๊ฐ€์‹œ์ , ์ด์ฒด์ , ์„ธ๋ถ€์  ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ตฌ์„ฑ / ๊ธฐ๋Šฅ๊ณผ ์ž๋ฃŒ์˜ ์˜์กด ๊ด€๊ณ„ ๋™์‹œ ํ‘œํ˜„ / ์ดํ•ด ์‰ฝ๊ณ  ์œ ์ง€๋ณด์ˆ˜ ๊ฐ„๋‹จ

โ–บ ๊ตฌ์กฐ์  ๋ถ„์„ ๋ชจ๋ธ

  • ๋ฐ์ดํ„ฐ/์ž๋ฃŒ ํ๋ฆ„๋„(DFD, Data flow diagram):
    • ํ”„๋กœ์„ธ์Šค(Process), ์› / ์ž๋ฃŒ ํ๋ฆ„(Flow), ํ™”์‚ดํ‘œ / ์ž๋ฃŒ ์ €์žฅ์†Œ(Data store), ํ‰ํ–‰์„  / ๋‹จ๋ง(Terminator), ์‚ฌ๊ฐํ˜•
    • → ๊ตฌ์กฐ์  ๋ถ„์„ ๊ธฐ๋ฒ•์— ์ด์šฉ / ์‹œ๊ฐ„ ํ๋ฆ„ ๋ช…ํ™•ํ•œ ํ‘œํ˜„ ๋ถˆ๊ฐ€ / ๋ฒ„๋ธ”(bubble) ์ฐจํŠธ
  • ์ž๋ฃŒ ์‚ฌ์ „(DD, Data Dictionary): ์ž๋ฃŒ ํ๋ฆ„๋„์— ๊ธฐ์žฌ๋œ ๋ชจ๋“  ์ž๋ฃŒ์˜ ์ƒ์„ธ ์ •์˜/์„ค๋ช…
  • ์†Œ๋‹จ์œ„ ๋ช…์„ธ์„œ / ๊ฐœ์ฒด ๊ด€๊ณ„๋„(ERD, Entity Relationship Diagram) / ์ƒํƒœ ์ „์ด๋„

  โ€ป ๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„ ๋ชจ๋ธ

  • Booch(๋ถ€์น˜): ๋ฏธ์‹œ์ , ๊ฑฐ์‹œ์  ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉ(ํด๋ž˜์Šค/๊ฐ์ฒด ๋ถ„์„ ๋ฐ ์‹๋ณ„)
  • Jacobson(์ œ์ด์ฝฅ์Šจ): Use Case๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉ์ž, ์™ธ๋ถ€ ์‹œ์Šคํ…œ์ด ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉ)
  • Coad-Yourdom: E-R ๋‹ค์ด์–ด๊ทธ๋žจ ์‚ฌ์šฉ / ๊ฐ์ฒด์˜ ํ–‰์œ„ ๋ชจ๋ธ๋ง
  • Wirfs-Brock: ๋ถ„์„๊ณผ ์„ค๊ณ„ ๊ตฌ๋ถ„ ์—†์œผ๋ฉฐ ๊ณ ๊ฐ ๋ช…์„ธ์„œ ํ‰๊ฐ€ ํ›„ ์„ค๊ณ„ ์ž‘์—…๊นŒ์ง€ ์—ฐ์† ์ˆ˜ํ–‰
  • Rumbaugh(๋Ÿผ๋ฐ”์šฐ): ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ, ๊ฐ์ฒด/๋™์ /๊ธฐ๋Šฅ ๋ชจ๋ธ๋กœ ๊ตฌ๋ถ„
    • ๊ฐ์ฒด ๋ชจ๋ธ๋ง(Object) → ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ / ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„ ๊ทœ์ •/์ •์˜
    • ๋™์  ๋ชจ๋ธ๋ง(Dynamic) → ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ / ์‹œ์Šคํ…œ ๋™์ ์ธ ํ–‰์œ„ ๊ธฐ์ˆ 
    • ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง(Function) → ์ž๋ฃŒ ํ๋ฆ„๋„(DFD) / ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์˜ ์ฒ˜๋ฆฌ ๊ณผ์ • ํ‘œํ˜„

โ–บ ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ

  • ์ •ํ˜• ๋ช…์„ธ
    • ์ˆ˜ํ•™์  ์›๋ฆฌ / ์ •ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ์š”๊ตฌ์‚ฌํ•ญ ํ‘œํ˜„ ๊ฐ€๋Šฅ
    • ์–ด๋ ค์šด ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ์ž ์ดํ•ด ์–ด๋ ค์›€(VDM, Z, Petri-net, CSP)
  • ๋น„์ •ํ˜• ๋ช…์„ธ
    • ์ž์—ฐ์–ด, ๊ทธ๋ฆผ ์ค‘์‹ฌ / ์‰ฌ์šด ์ž์—ฐ์–ด ์‚ฌ์šฉ์œผ๋กœ ์˜์‚ฌ์†Œํ†ต ์šฉ์ดํ•˜๋‚˜
    • ์ž‘์„ฑ์ž์— ๋”ฐ๋ผ ๋ชจํ˜ธํ•œ ๋‚ด์šฉ์œผ๋กœ ์ผ๊ด€์„ฑ ๋–จ์–ด์ง(FSM, Decision Table, E-R ๋ชจ๋ธ, State Chart)

 

โ‘ข ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„

โ–  ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ์›๋ฆฌ

1. ๋ถ„ํ• ๊ณผ ์ •๋ณต: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์„œ๋ธŒ์‹œ์Šคํ…œ์œผ๋กœ ๋‚˜๋ˆ ์„œ ๊ฐ๊ฐ์„ ์™„์„ฑ

2. ๋ชจ๋“ˆํ™”(Modularity): ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆ ๋‹จ์œ„๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์„ฑ๋Šฅ/์žฌ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ
- ๋ชจ๋“ˆ ํฌ๊ธฐ โ–ฒ → ๋ชจ๋“ˆ ๊ฐœ์ˆ˜ โ–ผ → ๋ชจ๋“ˆ๊ฐ„ ํ†ตํ•ฉ๋น„์šฉ โ–ผ (but, ๋ชจ๋“ˆ ๋‹น ๊ฐœ๋ฐœ ๋น„์šฉ โ–ฒ)
- ๋ชจ๋“ˆ ํฌ๊ธฐ โ–ผ → ๋ชจ๋“ˆ ๊ฐœ์ˆ˜ โ–ฒ → ๋ชจ๋“ˆ๊ฐ„ ํ†ตํ•ฉ๋น„์šฉ โ–ฒ

3. ์ถ”์ƒํ™”(Abstraction): ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ์ƒ๋žตํ•˜๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๊ฐ•์กฐํ•ด ๋ชจ๋ธํ™”
→ ๋ฌธ์ œ์˜ ํฌ๊ด‘์ ์ธ ๊ฐœ๋…์„ ์„ค๊ณ„ ํ›„ ์ฐจ๋ ˆ๋กœ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ๊ตฌ์ฒดํ™” ์ง„ํ–‰
โ‘  ๊ณผ์ • ์ถ”์ƒํ™”: ์ž์„ธํ•œ ์ˆ˜ํ–‰ ๊ณผ์ • ์ •์˜ X, ์ „๋ฐ˜์ ์ธ ํ๋ฆ„๋งŒ ํŒŒ์•…๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค๊ณ„
โ‘ก ๋ฐ์ดํ„ฐ(์ž๋ฃŒ ์ถ”์ƒํ™”): ๋ฐ์ดํ„ฐ์˜ ์„ธ๋ถ€์ ์ธ ์†์„ฑ/์šฉ๋„ ์ •์˜ X, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„
โ‘ข ์ œ์–ด ์ถ”์ƒํ™”: ์ด์  ํŠธ ๋ฐœ์ƒ์˜ ์ •ํ™•ํ•œ ์ ˆ์ฐจ/๋ฐฉ๋ฒ• ์ •์˜ X, ๋Œ€ํ‘œ ๊ฐ€๋Šฅํ•œ ํ‘œํ˜„์œผ๋กœ ๋Œ€์ฒด

4. ๋‹จ๊ณ„์  ๋ถ„ํ•ด(Stepwise refinement): ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ์ „๋žต
- ์ถ”์ƒํ™”์˜ ๋ฐ˜๋ณต์œผ๋กœ ์˜ํ•œ ์„ธ๋ถ„ํ™” / ์„ธ๋ถ€ ๋‚ด์—ญ์€ ๊ฐ€๋Šฅํ•œ ๋’ค๋กœ ๋ฏธ๋ฃจ์–ด ์ง„ํ–‰

5. ์ •๋ณด ์€๋‹‰(Information Hiding)
- ํ•œ ๋ชจ๋“ˆ ๋‚ด๋ถ€์— ํฌํ•จ๋œ ์ ˆ์ฐจ/์ž๋ฃŒ ๊ด€๋ จ ์ •๋ณด๊ฐ€ ์ˆจ๊ฒจ์ ธ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ์ ‘๊ทผ/๋ณ€๊ฒฝ ๋ถˆ๊ฐ€
- ๋ชจ๋“ˆ์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ˆ˜์ •/์‹œํ—˜/์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•จ

โ–  ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

  • Layer: ์‹œ์Šคํ…œ์„ ๊ณ„์ธต์œผ๋กœ ๊ตฌ๋ถ„/๊ตฌ์„ฑํ•˜๋Š” ๊ณ ์ „์  ๋ฐฉ์‹(OSI ์ฐธ์กฐ ๋ชจ๋ธ)
  • Client-server
    • ํ•˜๋‚˜์˜ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์™€ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ
    • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์š”์ฒญ/์‘๋‹ต ์ œ์™ธ ์‹œ ์„œ๋กœ ๋…๋ฆฝ์ 
      * ์ปดํฌ๋„ŒํŠธ(Component): ๋…๋ฆฝ์  ์—…๋ฌด/๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ์œ„ํ•œ ์‹คํ–‰์ฝ”๋“œ ๊ธฐ๋ฐ˜ ๋ชจ๋“ˆ
  • Pipe-Filter
    • ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ ˆ์ฐจ์˜ ๊ฐ ๋‹จ๊ฒŒ๋ฅผ ํ•„ํ„ฐ ์ปดํฌ๋„ŒํŠธ๋กœ ์บก์Šํ™” ํ›„ ๋ฐ์ดํ„ฐ ์ „์†ก / ์žฌ์‚ฌ์šฉ ๋ฐ ํ™•์žฅ ์šฉ์ด / ํ•„ํ„ฐ ์ปดํฌ๋„ŒํŠธ ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
    • ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ํ๋ฅด๋ฉฐ, ํ•„ํ„ฐ ์ด๋™ ์‹œ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฐœ์ƒ
    • ๋ณ€ํ™˜, ๋ฒ„ํผ๋ง, ๋™๊ธฐํ™” ์ ์šฉ(ex. UNIX ์‰˜ - Shell)
  • Model-View Controller
    • ๋ชจ๋ธ(Model): ์„œ๋ธŒ์‹œ์Šคํ…œ์˜ ์ •๋ณด ํ‘œ์‹œ
    • ๋ทฐ(View): ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด ํ‘œ์‹œ
    • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ž…๋ ฅ ์ฒ˜๋ฆฌ
      → ๊ฐ ๋ถ€๋ถ„์€ ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์„œ๋กœ ์˜ํ–ฅ X
      ํ•˜๋‚˜์˜ ๋ชจ๋ธ ๋Œ€์ƒ ๋‹ค์ˆ˜ ๋ทฐ ์ƒ์„ฑ โ–บ ๋Œ€ํ™”ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉ
  • Master-slave: ๋งˆ์Šคํ„ฐ์—์„œ ์Šฌ๋ ˆ์ด๋ธŒ ์ปดํฌ๋„ŒํŠธ๋กœ ์ž‘์—… ๋ถ„ํ• /๋ถ„๋ฆฌ/๋ฐฐํฌ ํ›„ ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋‹ค์‹œ ๋Œ๋ ค ๋ฐ›์Œ(๋ณ‘๋ ฌ ์ปดํ“จํŒ…)
  • Broker: ์ปดํฌ๋„ŒํŠธ์™€ ์‚ฌ์šฉ์ž๋ฅผ ์—ฐ๊ฒฐ(๋ถ„์‚ฐ ํ™˜๊ฒฝ ์‹œ์Šคํ…œ)
  • Peer-to-peer: ํ”ผ์–ด๋ฅผ ํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ ์‚ฐ์ • ํ›„ ๊ฐ ํ”ผ์–ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋  ์ˆ˜๋„, ์„œ๋ฒ„๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ์Œ(๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋ฐฉ์‹)
  • Event-bus: ์†Œ์Šค๊ฐ€ ํŠน์ • ์ฑ„๋„์— ์ด๋ฒคํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ ์‹œ ํ•ด๋‹น ์ฑ„๋„์„ ๊ตฌ๋…ํ•œ ๋ฆฌ์Šค๋„ˆ๋“ค์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•จ
  • Blackboard: ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ๋ธ”๋ž™๋ณด๋“œ์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฐพ์Œ
  • Interpreter: ํŠน์ • ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„

โ–  UML(Unified Modeling Language) → ๊ตฌ์„ฑ์š”์†Œ: ์‚ฌ๋ฌผ, ๊ด€๊ณ„, ๋‹ค์ด์–ด๊ทธ๋žจ

- ๊ณ ๊ฐ/๊ฐœ๋ฐœ์ž ๊ฐ„ ์›ํ™œํ•œ ์˜์‚ฌ์†Œํ†ต์„ ์œ„ํ•ด ํ‘œ์ค€ํ™”ํ•œ ๋Œ€ํ‘œ์  ๊ฐ์ฒด์ง€ํ–ฅ ๋ชจ๋ธ๋ง ์–ธ์–ด
- Rumbaugh, Booch, Jacobson ๋“ฑ ๊ฐ์ฒด์ง€ํ–ฅ ๋ฐฉ๋ฒ•๋ก ์˜ ์žฅ์  ํ†ตํ•ฉ
โ€ป ์ธํ„ฐํŽ˜์ด์Šค: ํด๋ž˜์Šค/์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์˜คํผ๋ ˆ์ด์…˜ ์„ธํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ชจ๋ธ ์š”์†Œ

1) ์‚ฌ๋ฌผ(Things): ๊ตฌ์กฐ(๊ฐœ๋…, ๋ฌผ๋ฆฌ์  ์š”์†Œ) / ํ–‰๋™ / ๊ทธ๋ฃน / ์ฃผํ•ด(๋ถ€๊ฐ€์  ์„ค๋ช…, ์ œ์•ฝ์กฐ๊ฑด)

2) ๊ด€๊ณ„(Relationship)

  • ์—ฐ๊ด€๊ด€๊ณ„(Association): 2๊ฐœ ์ด์ƒ์˜ ์‚ฌ๋ฌผ์ด ์„œ๋กœ ๊ด€๋ จ
  • ์ง‘ํ•ฉ ๊ด€๊ณ„(Aggregation): ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ํฌํ•จ(์ „์ฒด-๋ถ€๋ถ„ ๊ด€๊ณ„)
  • ํฌํ•จ ๊ด€๊ณ„(Composition): ์ง‘ํ•ฉ ๊ด€๊ณ„ ๋‚ด ํ•œ ์‚ฌ๋ฌผ์˜ ๋ณ€ํ™”๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์—๊ฒŒ ์˜ํ–ฅ
  • ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„(Generalization): ํ•œ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ๋น„ํ•ด ์ผ๋ฐ˜/๊ตฌ์ฒด์ ์ธ์ง€ ํ‘œํ˜„(ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์œ„ ๊ฐœ๋…์ผ ๋•Œ)
  • ์˜์กด ๊ด€๊ณ„(Dependency): ์‚ฌ๋ฌผ ๊ฐ„ ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ด€๊ณ„(ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ)
  • ์‹ค์ฒดํ™” ๊ด€๊ณ„(Realization): ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์˜คํผ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์ • / ์„œ๋กœ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„

3) ๋‹ค์ด์–ด๊ทธ๋žจ(Diagram)

  • ๊ตฌ์กฐ, ์ •์  ๋‹ค์ด์–ด๊ทธ๋žจ(ํด๊ฐ์ปด๋ฐฐ๋ณตํŒจ)
    • ํด๋ž˜์Šค: ํด๋ž˜์Šค ์‚ฌ์ด์˜ ๊ด€๊ณ„ ๋ฐ ์†์„ฑ ํ‘œํ˜„
    • ๊ฐ์ฒด: ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„๋กœ ํ‘œํ˜„
    • ์ปดํฌ๋„ŒํŠธ: ๊ตฌํ˜„ ๋ชจ๋ธ์ธ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊ด€๊ณ„ ํ‘œํ˜„
    • ๋ฐฐ์น˜: ๋ฌผ๋ฆฌ์  ์š”์†Œ(HW/SW)์˜ ์œ„์น˜/๊ตฌ์กฐ ํ‘œํ˜„
    • ๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ: ํด๋ž˜์Šค ๋ฐ ์ปดํฌ๋„ŒํŠธ์˜ ๋ณตํ•ฉ์ฒด ๋‚ด๋ถ€ ๊ตฌ์กฐ ํ‘œํ˜„
    • ํŒจํ‚ค์ง€: UML์˜ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ ์š”์†Œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๋ฌถ์Œ
  • ํ–‰์œ„, ๋™์  ๋‹ค์ด์–ด๊ทธ๋žจ(์œ ์‹œ์ปค์ƒํ™œํƒ€์ƒ)
    • ์œ ์Šค์ผ€์ด์Šค: ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ๋ถ„์„(์‚ฌ์šฉ์ž ๊ด€์ ) → ์‚ฌ์šฉ์ž(Actor) + ์‚ฌ์šฉ ์‚ฌ๋ก€(Use Case)
    • ์‹œํ€€์Šค: ์‹œ์Šคํƒฌ/๊ฐ์ฒด๋“ค์ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€ ํ‘œํ˜„ → ๊ตฌ์„ฑํ•ญ๋ชฉ: ์•กํ„ฐ / ๊ฐ์ฒด / ์ƒ๋ช…์„  / ๋ฉ”์‹œ์ง€ ์ œ์–ด ์‚ผ๊ฐํ˜•
    • ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜: ๊ฐ์ฒด๋“ค์ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€์™€ ๊ฐ์ฒด ๊ฐ„์˜ ์—ฐ๊ด€๊ด€๊ณ„๊นŒ์ง€ ํ‘œํ˜„
    • ์ƒํƒœ: ๋‹ค๋ฅธ ๊ฐ์ฒด์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์— ๋”ฐ๋ผ ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ํ‘œํ˜„
    • ํ™œ๋™: ๊ฐ์ฒด์˜ ์ฒ˜๋ฆฌ ๋กœ์ง ๋ฐ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ์˜ ํ๋ฆ„์„ ์ˆœ์„œ์— ๋”ฐ๋ผ ํ‘œํ˜„
    • ํƒ€์ด๋ฐ: ๊ฐ์ฒด ์ƒํƒœ ๋ณ€ํ™”์™€ ์‹œ๊ฐ„ ์ œ์•ฝ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„
    • ์ƒํ˜ธ์ž‘์šฉ ๊ฐœ์š”: ์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ ๊ฐ„ ์ œ์–ด ํ๋ฆ„ ํ‘œํ˜„

โ–ถ๏ธŽ UI ์„ค๊ณ„: ์ง๊ด€์„ฑ, ์œ ํšจ์„ฑ(์‚ฌ์šฉ์ž์˜ ๋ชฉ์  ๋‹ฌ์„ฑ), ํ•™์Šต์„ฑ, ์œ ์—ฐ์„ฑ

  • ์„ค๊ณ„ ์ง€์นจ: ์‚ฌ์šฉ์ž ์ค‘์‹ฌ / ์ผ๊ด€์„ฑ / ๋‹จ์ˆœ์„ฑ / ๊ฒฐ๊ณผ ์˜ˆ์ธก / ๊ฐ€์‹œ์„ฑ / ํ‘œ์ค€ํ™” / ์ ‘๊ทผ์„ฑ / ๋ช…ํ™•์„ฑ / ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํ•ด๊ฒฐ
  • CLI(Command Line): ํ…์ŠคํŠธ, GUI(Graphical): ๊ทธ๋ž˜ํ”ฝ, NUI(Natual): ๋ง/ํ–‰๋™, VUI(Voice):์Œ์„ฑ, OUI(Organic): ์‚ฌ๋ฌผ๊ณผ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ
  • UI ์„ค๊ณ„ ๋„๊ตฌ
    • Wireframe: ๊ธฐํš ์ดˆ๊ธฐ ๋‹จ๊ฒŒ์— ๋Œ€๋žต์ ์ธ ๋ ˆ์ด์•„์›ƒ์„ ์„ค๊ณ„
    • Story Board: ์ตœ์ข…์ ์ธ ์‚ฐ์ถœ๋ฌธ์„œ(์™€์ด์–ดํ”„๋ ˆ์ž„-UI, ์ฝ˜ํ…์ธ  ๊ตฌ์„ฑ, ํ”„๋กœ์„ธ์Šค ๋“ฑ)
    • Prototype: ์™€์ด์–ดํ”„๋ ˆ์ž„ / ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ์ธํ„ฐ๋ž™์…˜ ์ ์šฉ, ์‹ค์ œ ๊ตฌํ˜„๋œ ๊ฒƒ์ฒ˜๋Ÿผ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋™์ ์ธ ํ˜•ํƒœ ๋ชจํ˜•
    • MockUp: ์‹ค์ œ ํ™”๋ฉด๊ณผ ์œ ์‚ฌํ•œ ์ •์ ์ธ ํ˜•ํƒœ ๋ชจํ˜•
    • Use Case: ์‚ฌ์šฉ์ž ์ธก๋ฉด ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ๋ชฉํ‘œ๋ฅผ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„