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

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 8. ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„

FillByCoding 2022. 11. 3. 17:25

 

์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„

 

๊ฒฐํ•ฉ๋„(Coupling)๋ฅผ ์•ฝํ•˜๊ฒŒ, ์‘์ง‘๋„(Cohesion)๋ฅผ ๊ฐ•ํ•˜๊ฒŒ, ๋ชจ๋“ˆ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋•Œ ๋ชจ๋“ˆ์˜ ๋…๋ฆฝ์„ฑ์ด ๋†’์•„์ง

๋ชจ๋“ˆ : ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ ๋‹จ์œ„

๊ฒฐํ•ฉ๋„ (๋‚ด>๊ณต>์™ธ>์ œ>์Šค>์ž - ๋‚ฎ์Œ)

๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ์˜ ์˜์กด์„ฑ ์ •๋„

  • ๋‚ด์šฉ ๊ฒฐํ•ฉ๋„ Content Coupling
  • ๋‹ค๋ฅธ ๋ชจ๋“ˆ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„
  • ๊ณต์œ  ๊ฒฐํ•ฉ๋„ Common Coupling
  • ๊ณต์œ ๋˜๋Š” ๊ณตํ†ต๋ฐ์ดํ„ฐ ์˜์—ญ(์ „์—ญ ๋ณ€์ˆ˜)์„ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ์‚ฌ์šฉํ•  ๋•Œ์˜ ๊ฒฐํ•ฉ๋„
  • ์™ธ๋ถ€ ๊ฒฐํ•ฉ๋„ External Coupling
  • ์–ด๋–ค ๋ชจ๋“ˆ์—์„œ ์„ ์–ธํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€์˜ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์ฐธ์กฐํ•  ๋•Œ์˜ ๊ฒฐํ•ฉ๋„
  • ์ œ์–ด ๊ฒฐํ•ฉ๋„
  • ๋‹จ์ˆœ ์ฒ˜๋ฆฌํ•  ๋Œ€์ƒ์ธ ๊ฐ’๋งŒ ์ „๋‹ฌ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ œ์–ด ์š”์†Œ๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„
  • ์Šคํƒฌํ”„ ๊ฒฐํ•ฉ๋„
  • ๋ชจ๋“ˆ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด, ๊ตฌ์กฐ ๋“ฑ์ด ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„
  • ์ž๋ฃŒ ๊ฒฐํ•ฉ๋„
  • ๋ชจ๋“ˆ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž๋ฃŒ ์š”์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋  ๋•Œ์˜ ๊ฒฐํ•ฉ๋„

 

์‘์ง‘๋„ (์šฐ<๋…ผ<์‹œ<์ ˆ<๊ต<์ˆœ<๊ธฐ - ๊ฐ•ํ•จ)

๋ชจ๋“ˆ์— ํฌํ•จ๋œ ๋‚ด๋ถ€ ์š”์†Œ๋“ค์ด ํ•˜๋‚˜์˜ ์ฑ…์ž„, ๋ชฉ์ ์„ ์œ„ํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์—ฐ๊ด€ ์ •๋„

  • ์šฐ์—ฐ์  ์‘์ง‘๋„ Coincidental Cohesion
  • ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ด€์ด ์—†์„ ๊ฒฝ์šฐ ์‘์ง‘๋„
  • ๋…ผ๋ฆฌ์  ์‘์ง‘๋„ Logical Cohesion
  • ์œ ์‚ฌํ•œ ์„ฑ๊ฒฉ์„ ๊ฐ–๊ฑฐ๋‚˜ ํŠน์ • ํ˜•ํƒœ๋กœ ๋ถ„๋ฅ˜๋˜๋Š” ์ฒ˜๋ฆฌ ์š”์†Œ๋“ค์ด ํ•œ ๋ชจ๋“ˆ์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„
  • ์‹œ๊ฐ„์  ์‘์ง‘๋„ Temporal Cohesion
  • ์—ฐ๊ด€๋œ ๊ธฐ๋Šฅ๋ณด๋‹ค๋Š” ํŠน์ • ์‹œ๊ฐ„์— ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ํ™œ๋™๋“ค์„ ํ•œ ๋ชจ๋“ˆ์—์„œ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„
  • ์ ˆ์ฐจ์  ์‘์ง‘๋„ Procedural Cohesion
  • ๋ชจ๋“ˆ ๋‹ค์ˆ˜์˜ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๊ฐ€์งˆ ๋•Œ ๋ชจ๋“ˆ ์•ˆ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ๊ทธ ๊ธฐ๋Šฅ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„
  • ๊ตํ™˜์  ์‘์ง‘๋„ Communication Cohesion
  • ๋™์ผํ•œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ™œ๋™๋“ค์ด ๋ชจ์—ฌ ์žˆ์„ ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„
  • ์ˆœ์ฐจ์  ์‘์ง‘๋„ Sequential Cohesion
  • ๋ชจ๋“ˆ ๋‚ด์—์„œ ํ•œ ํ™œ๋™์œผ๋กœ๋ถ€ํ„ฐ ๋‚˜์˜จ ์ถœ๋ ฅ ๊ฐ’์„ ๋‹ค๋ฅธ ํ™œ๋™์ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„
  • ๊ธฐ๋Šฅ์  ์‘์ง‘๋„ Functional Cohesion
  • ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ๋‹จ์ผํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

 

๋””์ž์ธ ํŒจํ„ด Design Pattern

SW์„ค๊ณ„ ์‹œ ํŠน์ • ๋งฅ๋ฝ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์ด ๋˜ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

  • ๋ชฉ์ 

  • ๋ฒ”์œ„

  • ์ƒ์„ฑ ํŒจํ„ด

๊ฐ์ฒด ์ƒ์„ฑ์— ๊ด€๋ จ๋œ ํŒจํ„ด

  • ๊ตฌ์กฐ ํŒจํ„ด

ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ์กฐํ•ฉํ•ด ๋” ํฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํŒจํ„ด

  • ํ–‰์œ„ ํŒจํ„ด

๊ฐ์ฒด๋‚˜ ํด๋ž˜์Šค ์‚ฌ์ด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ์ฑ…์ž„ ๋ถ„๋ฐฐ์— ๊ด€๋ จ๋œ ํŒจํ„ด

 

LIST