๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

#6 ์ž๊ฒฉ์ฆ ๐Ÿ—‚๏ธ/5-1 ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ] ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„
  • ์‹œ์Šคํ…œ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์š”์†Œ
    • ์ž…๋ ฅ(Input)
    • ์ถœ๋ ฅ(Output)
    • ์ฒ˜๋ฆฌ(Process)
    • ์ œ์–ด(Control)
    • ํ”ผ๋“œ๋ฐฑ(Feedback)
  • ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„
    • ์ƒ์œ„ ์„ค๊ณ„
      • ์•„ํ‚คํ…์ฒ˜, ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„
    • ํ•˜์œ„ ์„ค๊ณ„
      • ๋ชจ๋“ˆ, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํด๋ž˜์Šค ์„ค๊ณ„์›์น™
    • ๋ฆฌ์ธ ์ฝ”ํ”„ ์น˜ํ™˜: ์ž์‹ํด๋ž˜์Šค ๋ถ€๋ชจํด๋ž˜์Šค ๊ฐ€๋Šฅํ•œ ํ–‰์œ„ ์ˆ˜ํ–‰
    • ์˜์กด๊ด€๊ณ„ ์—ญ์ „: ๋‹ค๋ฅธ ์ถ”์ƒํ™”๋œ ๊ฒƒ์— ์˜์กด
  • HIPO
    • ํ•˜ํ–ฅ์‹ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฌธ์„œํ™” ๋„๊ตฌ
  • ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ์‹œ์Šคํ…œ ํ’ˆ์งˆ ์†์„ฑ
    • ๊ฐ€์šฉ์„ฑ
    • ๋ณ€๊ฒฝ์šฉ์ด์„ฑ
    • ์„ฑ๋Šฅ
    • ๋ณด์•ˆ์„ฑ
    • ์‚ฌ์šฉํŽธ์˜์„ฑ
    • ์‹œํ—˜์šฉ์ด์„ฑ
  • UML ๋‹ค์ด์–ด๊ทธ๋žจ (Unified Modeling Language)
    • ๊ตฌ์กฐ
      • ํด๋ž˜์Šค , ๊ฐ์ฒด, ํŒจํ‚ค์ง€, ์ปดํฌ๋„ŒํŠธ, ๋ฐฐ์น˜
    • ํ–‰์œ„
      • UseCase, Activity, State, Sequence, Communication
  • ๊ตฌ์„ฑ ์š”์†Œ
    • Things ์‚ฌ๋ฌผ
    • Relationships ๊ด€๊ณ„
    • Diagrams
  • UML ํ™•์žฅ ๋ชจ๋ธ ๊ธฐํ˜ธ
    • << >> : ์Šคํ…Œ๋ ˆ์˜ค ํƒ€์ž… ๊ฐ์ฒด
    • ( ) : ์ƒ๋žต ๊ฐ€๋Šฅ
  • Realization
    • UML ๋ชจ๋ธ์—์„œ ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์˜คํผ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์ •ํ•˜๋Š” ์˜๋ฏธ์  ๊ด€๊ณ„
  • Dependency : UML ๋ชจ๋ธ์—์„œ ํ•œ ์‚ฌ๋ฌผ์˜ ๋ช…์„ธ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ์˜ํ–ฅ์„ ์คŒ, ์˜คํผ๋ ˆ์ด์…˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ด€๊ณ„
  • Usecase
    • ์•กํ„ฐ: ๋Œ€์ƒ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์‚ฌ๋žŒ, ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ์˜ํ•œ ์—ญํ• 
  • Instance(์ธ์Šคํ„ด์Šค): ํด๋ž˜์Šค์— ์†ํ•œ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด
  • message: ๊ฐ์ฒด์—๊ฒŒ ์–ด๋–ค ํ–‰์œ„๋ฅผ ํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๋ช…๋ น
  • ํŒŒ์ดํ”„ ํ•„ํ„ฐ ๊ตฌ์กฐ
    • ์„œ๋ธŒ ์‹œ์Šคํ…œ์ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ๋ณด๋‚ด๋Š” ์ž‘์—…์ด ๋ฐ˜๋ณต๋˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ
  • CASE(Computer-Aided Software Engineering
    • ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‹œ, ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์„ ์ž๋™ํ™” ๋„๊ตฌ
    • ๊ตฌ์กฐ์  ๊ธฐ๋ฒ•
    • ํ”„๋กœํ† ํƒ€์ดํ•‘ ๊ธฐ์ˆ 
    • ์ž๋™ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ 
    • ์ •๋ณด ์ €์žฅ์†Œ ๊ธฐ์ˆ 
    • ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ 
    • ๋ชจ๋ธ๋“ค ์‚ฌ์ด์˜ ๋ชจ์ˆœ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ
    • ๋ชจ๋ธ์˜ ์˜ค๋ฅ˜ ๊ฒ€์ฆ ๊ธฐ๋Šฅ
    • ์ž๋ฃŒํ๋ฆ„๋„ ์ž‘์„ฑ ๊ธฐ๋Šฅ
  • XP ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ์›๋ฆฌ
    • Whole Team(์ „์ฒด ํŒ€)
    • Small Releases(์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ)
    • Test-Driven Development(ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)
    • Continuous Integration(๊ณ„์†์ ์ธ ํ†ตํ•ฉ)
    • Collective Ownership(๊ณต๋™ ์†Œ์œ ๊ถŒ)
    • Pair Programming(์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ)
    • Design Improvement(๋””์ž์ธ ๊ฐœ์„ ) ๋˜๋Š”Refactoring(๋ฆฌํŒฉํ† ๋ง)
  • XP ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 5๊ฐ€์ง€ ๊ฐ€์น˜
    • ์šฉ๊ธฐ
    • ์˜์‚ฌ์†Œํ†ต
    • ์ •ํ˜•๋ถ„์„
    • ํ”ผ๋“œ๋ฐฑ
GoF ๋””์ž์ธํŒจํ„ด 
SW์„ค๊ณ„ ์‹œ ํŠน์ • ๋งฅ๋ฝ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์ด ๋˜ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ
  • factory method: ์ƒ์œ„ํด๋ž˜์Šค์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜, ํ•˜์œ„ํด๋ž˜์Šค์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ
  • prototype: ํ”„๋กœํ† ํƒ€์ž… ๋จผ์ € ์ƒ์„ฑ, ์ธ์Šคํ„ด์Šค ๋ณต์ œ
  • bridge: ๊ตฌํ˜„๋ถ€์—์„œ ์ถ”์ƒ์ธต์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ์ž ๋…๋ฆฝ์ ์œผ๋กœ ๋ณ€ํ˜•
  • mediator: ๊ฐ์ฒด๊ฐ„์˜ ํ†ต์ œ์™€ ์ง€์‹œ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์ค‘์žฌ์ž๋ฅผ ๋‘์–ด ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ฒŒ ํ•ด์คŒ

 

  • ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•
    • ์ผ๋ฐ˜ํ™”: ๊ณตํ†ต์ ์ธ ์„ฑ์งˆ๋“ค์„ ์ƒ์œ„ ๊ฐ์ฒด๋กœ, ํŠน์ˆ˜ํ™”๋œ ๊ฐ์ฒด๋“ค์„ ํ•˜์œ„์˜ ๋ถ€๋ถ„ํ˜• ๊ฐ์ฒด๋กœ ์ •์˜
    • ์ถ”์ƒํ™”: ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ์ƒ๋žต, ๊ฐ์ฒด์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์—๋งŒ ์ค‘์ ์„ ๋‘ , ๊ฐ„๋žตํ™”
    • ์บก์Аํ™”: ๊ฐ์ฒด์˜ ์ž๋ฃŒ์™€ ํ–‰์œ„๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๊ณ , ์‹ค์ œ ๊ตฌํ˜„ ๋‚ด์šฉ์„ ์™ธ๋ถ€์— ๊ฐ์ถค(์ •๋ณด ์€๋‹‰)
    • ์ง‘๋‹จํ™”: ๊ด€๋ จ ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฌถ์–ด ํ•œ ๊ฐœ์˜ ์ƒ์œ„ ๊ฐ์ฒด๋ฅผ ๋งŒ ๋“ฆ, ๋ณตํ•ฉ ๊ฐ์ฒด์˜ ์ข…์† ์„ฑ๋ถ„์„ ๋ชจ๋ธ๋งํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ๋Ÿผ๋ฐ”์šฐ(Rumbaugh)
    • ๊ฐ์ฒด - ๊ฐ์ฒด
    • ๋™์  - ์ƒํƒœ
    • ๊ธฐ๋Šฅ- ์ž๋ฃŒ
  • Coad์™€ Yourdon
    • E-R ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๊ฐ์ฒด์˜ ํ–‰์œ„๋ฅผ ๋ชจ๋ธ๋ง
    • ๊ฐ์ฒด ์‹๋ณ„, ๊ตฌ์กฐ ์‹๋ณ„, ์ฃผ์ œ ์ •์˜, ์†์„ฑ๊ณผ ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐ ์ •์˜
    • ์—ฐ์‚ฐ๊ณผ ๋ฉ”์‹œ์ง€ ์—ฐ๊ฒฐ ์ •์˜ ๋“ฑ์˜ ๊ณผ์ •์œผ๋กœ ์ฃผ๋กœ ๊ด€๊ณ„ ๋ถ„์„
  • Jacobson
    • Use Case ์‚ฌ์šฉ
  • uname
    • ๋ฆฌ๋ˆ…์Šค ๋ฒ„์ „์„ ํ™•์ธ ๋ช…๋ น์–ด
  • ์†Œ์ผ“ ๊ธฐ์ˆ 
    • ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ ์ƒ์„ฑ ํ›„ ํฌํŠธ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ํ†ต์‹  ์š”์ฒญ ์‹œ ์—ฐ๊ฒฐํ•˜๋Š” ๋‚ด์™ธ๋ถ€ ์†ก์ˆ˜์‹  ์—ฐ๊ณ„ ๊ธฐ์ˆ 
  • PRC(Remote Procedure Call)
    • ํ”„๋กœ์‹œ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ํ”„๋กœ์‹œ์ €๋ฅผ ๋กœ์ปฌ ํ”„๋กœ์‹œ์ €์ฒ˜๋Ÿผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ฏธ๋“ค์›จ์–ด
LIST