๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“–CS/๐Ÿ“™Software Design

[์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„] 0์žฅ. Overview

by goguma.dev 2024. 10. 18.

โ€ป ์ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€๋“ค์€ knu HK.Lee ๊ต์ˆ˜๋‹˜์˜ <์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„> ์ˆ˜์—…์„ ๋“ฃ๊ณ  ํ•„์ž๊ฐ€ ๋‚˜๋ฆ„๋Œ€๋กœ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

โ€ป ๋ถ€์กฑํ•œ ์„ค๋ช…์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜๋ชป ์•Œ๊ณ  ์ž‘์„ฑํ•œ ๋ถ€๋ถ„์ด ๋ณด์ธ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„๊ฐ€ ์™œ ์ค‘์š”ํ• ๊นŒ์š”?

๊ทธ๋ƒฅ ์ฝ”๋“œ๋งŒ ์•Œ์•„์„œ ์ž˜ ์งœ๋ฉด ๋˜๋Š” ๊ฒŒ ์•„๋‹๊นŒ? ๊ตณ์ด ์„ค๊ณ„๊ฐ€ ํ•„์š”ํ• ๊นŒ?

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ด๋Ÿฐ ์˜๋ฌธ์ด ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ๋ชฉ์—์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„๊ฐ€ ์™œ ์ค‘์š”ํ•œ์ง€, ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

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

์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐœ๋ฐœ, ์šด์šฉ, ์ˆ˜์ • ๋ฐ ๊ธฐ๋Šฅ ํ™•์žฅ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๊ณ„ํšํ•˜๊ณ , ๋ถ„์„ํ•˜๊ณ , ์„ค๊ณ„ํ•˜๊ณ , ๊ตฌํ˜„ํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•˜๊ณ , ์ ์šฉํ•˜๊ณ , ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์— ๊ด€๋ จ๋œ ๋ชจ๋“  ์‚ฐ์ถœ๋ฌผ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์†Œํ”„ํŠธ์›จ์–ด์˜ ํŠน์ง•

  • ๋น„๊ฐ€์‹œ์„ฑ(invisibility) - ๊ฐœ๋…์ , ๋ฌดํ˜•์ , ๊ตฌ์กฐ๊ฐ€ ์ฝ”๋“œ ๋‚ด์— ๋‚ด์žฌ๋˜์–ด ์žˆ์Œ
  • ๋ณต์žก์„ฑ(complexity) - ๊ฐœ๋ฐœ ๊ณผ์ •์ด ๋ณต์žกํ•จ, ๋Œ€์ƒ ์—…๋ฌด์™€ ๋ฌธ์ œ๊ฐ€ ๋‚œํ•ดํ•จ(ex. ์ผ๊ธฐ์˜ˆ๋ณด, ๋ฌด๊ธฐ์ฒด๊ณ„...), ํ”„๋กœ๊ทธ๋žจ ๊ทœ๋ชจ(๋ผ์ธ ์ˆ˜)๊ฐ€ ๋ฐฉ๋Œ€ํ•จ.
  • ์ˆœ์‘์„ฑ(conformity) - ์š”๊ตฌ๋‚˜ ํ™˜๊ฒฝ ๋ณ€ํ™”์— ์ ์ ˆํžˆ ๋ณ€ํ˜• ๊ฐ€๋Šฅ
  • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ(changeability)
  • ํ…Œ์ŠคํŒ…์˜ ์–ด๋ ค์›€(intestability)
  • ๋ณต์ œ ๊ฐ€๋Šฅ์„ฑ(duplicability)

 

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ 

์˜๋ขฐ์ž, ์„ค๊ณ„์ž(๋ถ„์„๊ฐ€), ํ”„๋กœ๊ทธ๋ž˜๋จธ(๊ฐœ๋ฐœ์ž), ์‚ฌ์šฉ์ž(Users)

 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ ์•„ํŒŒํŠธ ๊ฑด์ถ•์˜ ๋น„๊ต

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์€ ๋ถ„์„, ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ์ „์ฒด ๋น„์šฉ์˜ 40ํผ์„ผํŠธ๊ฐ€ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

 

์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ์˜คํ•ด

๊ด€๋ฆฌ์ž์˜ ์˜คํ•ด

  • ์ข‹์€ ์ฑ…๋“ค๊ณผ documents๊ฐ€ ์žˆ์œผ๋‹ˆ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด๊ฑธ ๋ณด๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•  ๊ฒƒ์ด๋‹ค.
  • ์ตœ์‹  ๊ธฐ์ˆ , ๋„๊ตฌ๋“ค์„ ๋„์ž…ํ•˜๋ฉด ์ข‹์€ ์ œํ’ˆ์„ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋น ๋ฅธ ์‹œ์ผ ๋‚ด์— ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ์š”๊ตฌ ๋ถ„์„์€ ์ƒ์‚ฐ์ ์ด ๋ชปํ•˜๋‹ค.
  • ๊ณต์ •์ด ์ง€์—ฐ๋  ๊ฒฝ์šฐ ์ธ๋ ฅ์„ ํˆฌ์ž…ํ•˜๋ฉด ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ณ ๊ฐ์˜ ์˜คํ•ด

  • ๋ชฉํ‘œ์— ๋Œ€ํ•ด ๊ฐœ๋žต์ ์ธ ๊ธฐ์ˆ ๋งŒ ์žˆ์œผ๋ฉด ๊ฐœ๋ฐœ์ž๋“ค์ด ์•Œ์•„์„œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ์„ธ๋ถ€์ ์ธ ๊ฒƒ์€ ๋‚˜์ค‘์— ํ•ด๋„ ๋œ๋‹ค.
  • ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ์ž๋“ค์ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์˜คํ•ด

  • ์ผ๋‹จ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ๋งŒ ๋งŒ๋“ค๋ฉด ์ž„๋ฌด ๋์ด๋‹ค.
  • ์‹œ์Šคํ…œ์„ ๋™์ž‘ํ•˜๊ธฐ ์ „๊นŒ์ง€ ํ’ˆ์งˆ์„ ํ‰๊ฐ€ํ•  ๋ฐฉ๋ฒ•์ด ์—†์„ ๊ฒƒ์ด๋‹ค.
  • ํ”„๋กœ์ ํŠธ์˜ ๊ฒฐ๊ณผ๋Š” ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋ฟ์ด๋‹ค.

 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ๋ฌธ์ œ๋“ค

์˜ˆ์‚ฐ ์ดˆ๊ณผ, ๊ฐœ๋ฐœ ์ผ์ • ์ง€์—ฐ, ๋ถˆ์ถฉ๋ถ„ํ•œ ์„ฑ๋Šฅ, ์‹ ๋ขฐํ•˜๊ธฐ ์–ด๋ ค์šด ํ’ˆ์งˆ, ์œ ์ง€ ๋ณด์ˆ˜์˜ ์–ด๋ ค์›€, ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ ๊ธ‰์ฆ

 

์†Œํ”„ํŠธ์›จ์–ด ์œ„๊ธฐ software crisis

์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์˜ ๊ธ‰์†ํ•œ ๋ฐœ์ „๊ณผ ์ปดํ“จํ„ฐ์˜ ๋Œ€์ค‘ํ™”๋กœ ์ธํ•ด ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ˆ˜์š”๊ฐ€ ๊ธ‰์ฆํ•˜์˜€์œผ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์ƒ์‚ฐ๊ธฐ์ˆ ์€ ๊ทธ์— ๋ฏธ์น˜์ง€ ๋ชปํ•˜์—ฌ ๋‚˜ํƒ€๋‚œ ํ˜„์ƒ

 

์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์ด๋ž€?

ํ’ˆ์งˆ ์ข‹์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ตœ์†Œ์˜ ๋น„์šฉ์œผ๋กœ ๊ณ„ํš๋œ ์ผ์ •์— ๋งž์ถ”์–ด ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณตํ•™์  ์›๋ฆฌ์™€ ๋ฐฉ๋ฒ•์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ