๐Ÿ“• [Object] 7์žฅ. ๊ฐ์ฒด ๋ถ„ํ•ด

๋ฐ•์ƒ๋ฏผยท2024๋…„ 3์›” 5์ผ

Book

๋ชฉ๋ก ๋ณด๊ธฐ
13/22
post-thumbnail

โญ๏ธ ํ”„๋กœ์‹œ์ € ์ถ”์ƒํ™”์™€ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”

ํ˜„๋Œ€์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํŠน์ง• ์ง“๋Š” ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์ถ”์ƒํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ”„๋กœ์‹œ์ € ์ถ”์ƒํ™”(procedure abstraction)์™€ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”(data abstraction)๋‹ค. ํ”„๋กœ์‹œ์ € ์ถ”์ƒํ™”๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฌด์—‡์„ ํ•ด์•ผํ•˜๋Š”์ง€๋ฅผ ์ถ”์ƒํ™”ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฌด์—‡์„ ์•Œ์•„์•ผ ํ•˜๋Š”์ง€๋ฅผ ์ถ”์ƒํ™”ํ•œ๋‹ค.

ํ”„๋กœ์‹œ์ € ์ถ”์ƒํ™”

  • ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฌด์—‡์„ ํ•ด์•ผํ•˜๋Š”์ง€ ์ถ”์ƒํ™”
  • ํ”„๋กœ์‹œ์ €๋Š” ๋ฆฌํ„ด๊ฐ’์ด ์—†๋Š” ๋กœ์ง ๋ฌถ์Œ
  • ๋ฐ์ดํ„ฐ ์กฐ์ž‘
  • ๊ธฐ๋Šฅ ๋ถ„ํ•ด(functional decomposition) - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„ํ•ด(algorithmic decomposition)

๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”

  • ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฌด์—‡์„ ์•Œ์•„์•ผ ํ•˜๋Š”์ง€ ์ถ”์ƒํ™”
  • ์ •๋ณด ํ‘œํ˜„
  • ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋ถ„ํ•ดํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ๋‹ค์‹œ ๋‘ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.
    • ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…(Abstract Data Type): ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํƒ€์ž…์„ ์ถ”์ƒํ™”(type abstraction)ํ•˜๋Š” ๊ฒƒ
    • ๊ฐ์ฒด์ง€ํ–ฅ(Object-Oriented): ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋กœ์‹œ์ €๋ฅผ ์ถ”์ƒํ™”(procedure abstraction)ํ•˜๋Š” ๊ฒƒ

์—ญํ• ๊ณผ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ์ด์šฉํ•˜๋Š” ์ถ”์ƒํ™”๋‹ค.
๊ธฐ๋Šฅ์„ ํ˜‘๋ ฅํ•˜๋Š” ๊ณต๋™์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋„๋ก ๊ฐ์ฒด๋“ค๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ด€์ ์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ถ”์ƒํ™”์™€ ํ”„๋กœ์‹œ์ € ์ถ”์ƒํ™”๋ฅผ ํ•จ๊ป˜ ํฌํ•จํ•œ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ์‹œ์Šคํ…œ์„ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โญ๏ธ ํ”„๋กœ์‹œ์ € ์ถ”์ƒํ™”์™€ ๊ธฐ๋Šฅ ๋ถ„ํ•ด

๐Ÿ“Œ ๋ฉ”์ธ ํ•จ์ˆ˜๋กœ์„œ์˜ ์‹œ์Šคํ…œ

๊ธฐ๋Šฅ์€ ์˜ค๋žœ ์‹œ๊ฐ„๋™์•ˆ ์‹œ์Šคํ…œ์„ ๋ถ„ํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.
์ด๋ฅผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„ํ•ด ๋˜๋Š” ๊ธฐ๋Šฅ ๋ถ„ํ•ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
๊ธฐ๋Šฅ ๋ถ„ํ•ด์˜ ๊ด€์ ์—์„œ ์ถ”์ƒํ™”์˜ ๋‹จ์œ„๋Š” ํ”„๋กœ์‹œ์ €์ด๋ฉฐ, ์‹œ์Šคํ…œ์€ ํ”„๋กœ์‹œ์ €๋ฅผ ๋‹จ์œ„๋กœ ๋ถ„ํ•ด๋œ๋‹ค.

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

ํ”„๋กœ์‹œ์ €๋ฅผ ์ถ”์ƒํ™”๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด์œ ๋Š” ๋‚ด๋ถ€ ์ƒ์„ธ ๊ตฌํ˜„์„ ๋ชจ๋ฅด๋”๋ผ๋„ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์•Œ๋ฉด ํ”„๋กœ์„ธ์ €๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ „ํ†ต์ ์ธ ๊ธฐ๋Šฅ ๋ถ„ํ•ด ๋ฐฉ๋ฒ•์€ ํ•˜ํ–ฅ์‹ ์ ‘๊ทผ๋ฒ•(Top-Down Approach)๋ฅผ ๋”ฐ๋ฅธ๋‹ค.
ํ•˜ํ–ฅ์‹ ์ ‘๊ทผ๋ฒ•์ด๋ž€ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ตœ์ƒ์œ„(topmost) ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๊ณ ,
์ด ์ตœ์ƒ์œ„ ๊ธฐ๋Šฅ์„ ์ข€ ๋” ์ž‘์€ ๋‹จ๊ณ„์˜ ํ•˜์œ„ ๊ธฐ๋Šฅ ์ง‘ํ•ฉ์œผ๋กœ ๋ถ„ํ•ดํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค.
๊ฐ ์„ธ๋ถ„ํ™” ๋‹จ๊ณ„๋Š” ๋ฐ”๋กœ ์œ„ ๋‹จ๊ณ„๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์ด์–ด์•ผ ํ•œ๋‹ค.
๋ถ„ํ•ด๋Š” ์„ธ๋ถ„ํ™”๋œ ๋งˆ์ง€๋ง‰ ํ•˜์œ„ ๊ธฐ๋Šฅ์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•  ์ˆ˜์ค€์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•œ๋‹ค.

๐Ÿ“Œ ํ•˜ํ–ฅ์‹ ๊ธฐ๋Šฅ ๋ถ„ํ•ด ์˜ˆ์‹œ



์ฑ…์„ ์“ฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ์ž…๋ ฅ, ๊ณ„์‚ฐ, ์ถœ๋ ฅ์œผ๋กœ ๋ชฉ์ฐจ๋ฅผ ์ •ํ•˜๊ณ  ๋‚ด์šฉ์„ ๋ผ์›Œ๋„ฃ๋Š”๋‹ค.
๊ธฐ๋Šฅ์ด ์šฐ์„ ์ด๊ณ  ๋ฐ์ดํ„ฐ๋Š” ์กฐ์—ฐ์ด๋‹ค.

๊ธฐ๋Šฅ ๋ถ„ํ•ด ๋ฐฉ๋ฒ•์—์„œ๋Š” ๊ธฐ๋Šฅ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ฐ€๋Šฅ ๋ถ„ํ•ด๋ผ๋Š” ๋ฌด๋Œ€์˜ ์ฃผ์—ฐ์€ ๊ธฐ๋Šฅ์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋Šฅ์„ ๋ณด์กฐํ•˜๋Š” ์กฐ์—ฐ์˜ ์—ฐํ•™๋ ˆ ๋จธ๋ฌด๋ฅธ๋‹ค. ๊ธฐ๋Šฅ์ด ์šฐ์„ ์ด๊ณ  ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋Šฅ์˜ ๋’ค๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

๊ธฐ๋Šฅ ๋ถ„ํ•ด๋ฅผ ์œ„ํ•œ ํ•˜ํ–ฅ์‹ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์€ ๋จผ์ € ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ƒ๊ฐํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ๋ถ„ํ•ด, ์ •์ œํ•˜๋Š” ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜์™€ ์ €์žฅ ๋ฐฉ์‹์„ ์‹๋ณ„ํ•œ๋‹ค.
์ด๋Š” ์œ ์ง€๋ณด์ˆ˜์— ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•œ๋‹ค.

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

๐Ÿ“Œ ํ•˜ํ–ฅ์‹ ๊ธฐ๋Šฅ ๋ถ„ํ•ด์˜ ๋ฌธ์ œ์ 

ํ•˜ํ–ฅ์‹ ๊ธฐ๋Šฅ ๋ถ„ํ•ด ๋ฐฉ๋ฒ•์€ ๊ฒ‰์œผ๋กœ๋Š” ์ด์ƒ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์„ค๊ณ„์— ์ ์šฉํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•œ๋‹ค.

  • ์‹œ์Šคํ…œ์€ ํ•˜๋‚˜์˜ ๋ฉ”์ธ ํ•จ์ˆ˜๋กœ ๊ตฌ์„ฑ๋ผ ์žˆ์ง€ ์•Š๋‹ค.

    • ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž์‹ ๋…ธ๋“œ๋กœ ๊ฐ€์ง€๋Š” ํ•˜๋‚˜์˜ ๋ฉ”์ธ ๊ธฐ๋Šฅ์„ ์„ ํƒํ•  ์ˆ˜ ์—†๋‹ค.

      • ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์—์„œ ๋…ผ์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

      • ๊ธฐ๋Šฅ์ ์ธ ์ธก๋ฉด์—์„œ ๋™๋“ฑํ•˜๊ฒŒ ๋…๋ฆฝ์ ์ด๊ณ  ์™„๊ฒฐ๋œ ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ํ‘œํ˜„

  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๋ฉ”์ธ ํ•จ์ˆ˜๋ฅผ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

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

    • ์„ค๊ณ„ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ์ž…์ถœ๋ ฅ์„ ํ•จ๊ป˜ ๊ณ ๋ฏผํ•˜๋„๋ก ํ•œ๋‹ค.
      • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ด€์‹ฌ์‚ฌ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋™์‹œ์— ๊ณ ๋ คํ•˜๋„๋ก ๊ฐ•์š”ํ•œ๋‹ค.
      • main์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(๊ณ„์‚ฐ๊ณผ) ์ž…์ถœ๋ ฅ ๋กœ์ง(์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ)๊ฐ€ ์„ž์—ฌ์žˆ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์žฌ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.
  • ํ•˜ํ–ฅ์‹ ๋ถ„ํ•ด๋Š” ๋„ˆ๋ฌด ์ด๋ฅธ ์‹œ๊ธฐ์— ํ•จ์ˆ˜๋“ค์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๊ณ ์ •์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ €ํ•˜๋œ๋‹ค.

    • ํ•˜ํ–ฅ์‹ ๋ถ„ํ•ด๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ๋” ์ž‘๊ฒŒ ๋ถ„ํ•ดํ•˜๋ฉฐ, ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
      • ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ •์˜ํ•˜๋Š” ์‹œ๊ฐ„ ์ œ์•ฝ
    • ์ด๊ฒƒ์€ what์ด ์•„๋‹ˆ๋ผ how์— ์ง‘์ค‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
      • ์ง์› ๊ธ‰์—ฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์„ ์ˆœ์„œ๋Œ€๋กœ ํ•ด์•ผ ํ•จ
        -> (์†Œ๋“์„ธ์œจ์„ ์ž…๋ ฅ ๋ฐ›๋Š” ์ž‘์—…, ๊ธ‰์—ฌ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ž‘์—…, ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ์ธจ๋ ฅํ•˜๋Š” ์ž‘์—…)
      • ์œ„์— ๋ชจ๋“ ๊ฒƒ์€ what์ด ์•„๋‹ˆ๋ผ how๋‹ค.
  • ์ƒ์œ„ ํ•จ์ˆ˜์˜ ๋ฌธ๋งฅ ์•ˆ์—์„œ๋งŒ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์ด ์–ด๋ ต๋‹ค.

  • ํ•จ์ˆ˜๋Š” ์ƒ์œ„ ํ•จ์ˆ˜๊ฐ€ ๊ฐ•์š”ํ•˜๋Š” ๋ฌธ๋งฅ์— ์‹œ๊ฐ„(์ˆœ์„œ)์ ์œผ๋กœ ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ๋‹ค.

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

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

    • ํ•˜ํ–ฅ์‹ ๊ธฐ๋Šฅ ๋ถ„ํ•ด์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ 
    • ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›€
      • ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ํ•จ์ˆ˜์— ์˜์กดํ•˜๊ณ  ์žˆ๋Š”์ง€๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์—ด์–ด ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์ฐพ์•„๋ด์•ผ ํ•จ (์ „์—ญ๋ณ€์ˆ˜...)
      • ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‹ค๊ณ  ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›€ (์ „์—ญ๋ณ€์ˆ˜ ์ด์šฉ if ๋ฅผ ์“ฐ๊ณ ์žˆ๋‹ค๋ฉด...)
      • ์ •๋ณด์€๋‹‰, ๋ชจ๋“ˆ์ด ๋“ฑ์žฅํ•œ ์ด์œ 

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

๐Ÿ“Œ ํ•˜ํ–ฅ์‹ ๋ถ„ํ•ด๊ฐ€ ์œ ์šฉํ•œ ๊ฒฝ์šฐ

  • ๋ฌธ์„œํ™”
  • ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ ๊ฐœ๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ


ํ•˜ํ–ฅ์‹ ์„œ์ˆ ์€ ์‚ฌ๋žŒ๋“ค์ด ์„ค๊ณ„๋‚˜ ๊ฐœ๋ฐœ์„ ์ด์™€ ๊ฐ™์ด ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ฐฉ๊ฐํ•˜๊ฒŒ ํ•œ๋‹ค.

โญ๏ธ ๋ชจ๋“ˆ

๐Ÿ“Œ ์ •๋ณด ์€๋‹‰๊ณผ ๋ชจ๋“ˆ

์‹œ์Šคํ…œ ๋ณ€๊ฒฝ ๊ด€๋ฆฌ ๊ธฐ๋ณธ ์ „๋žต์€ ํ•จ๊ป˜ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ •๋ณด ์€๋‹‰

  • ๋ชจ๋“ˆ ๋‹จ์œ„ ๋ถ„๋ฆฌ ๊ธฐ๋ณธ ์›๋ฆฌ
  • ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋ถ€๋ถ„์„, ์•ˆ์ •์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค ๋’ค๋กœ ๊ฐ์ถฐ์•ผ ํ•œ๋‹ค


๊ธฐ๋Šฅ ๋ถ„ํ•ด๊ฐ€ ๊ธฐ๋Šฅ ๋„์ถœ ๊ณผ์ •์ด๋ผ๋ฉด
๋ชจ๋“ˆ ๋ถ„ํ•ด๋Š” ๊ฐ์ถฐ์•ผ ํ•  ๋น„๋ฐ€์„ ์„ ํƒํ•˜๊ณ , ๋น„๋ฐ€ ์ฃผ๋ณ€์— ์•ˆ์ •์ ์ธ ๋ณดํ˜ธ๋ง‰์„ ์„ค์น˜ํ•˜๋Š” ๋ณด์กด์˜ ๊ณผ์ •์ด๋‹ค.

์‹œ์Šคํ…œ์„ ๋ชจ๋“ˆ ๋‹จ์œ„๋กœ ์–ด๋–ป๊ฒŒ ๋ถ„ํ•ดํ•  ๊ฒƒ์ธ๊ฐ€?

  • ์‹œ์Šคํ…œ์ด ๊ฐ์ถฐ์•ผ ํ•˜๋Š” ๋น„๋ฐ€์„ ์ฐพ์•„๋ผ.
  • ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ ์ ‘๊ทผ์„ ๋ชปํ•˜๋„๋ก ๋ฐฉ์–ด๋ง‰(ํผ๋ธ”๋ฆญ ์ธํ„ฐํŽ˜์ด์Šค)์„ ์ณ์„œ ์—์›Œ์‹ธ๋ผ.

๋ชจ๋“ˆ์€ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋น„๋ฐ€์„ ๊ฐ์ถฐ์•ผ ํ•œ๋‹ค.

  • ๋ณต์žก์„ฑ : ๋ชจ๋“ˆ์„ ์ถ”์ƒํ™”ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‚ด๋ถ€ ๋กœ์ง์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ˜๋‹ค.
  • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ : ๋ณ€๊ฒฝ ๋ฐœ์ƒ ์‹œ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๋„๋ก ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์„ค๊ณ„ ๊ฒฐ์ •์„ ๋ชจ๋“ˆ ๋‚ด๋ถ€๋กœ ๊ฐ์ถ”๊ณ  ์™ธ๋ถ€์—๋Š” ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๊ฐ€์žฅ ํฐ ๋น„๋ฐ€์€ ๋ฐ์ดํ„ฐ์ง€๋งŒ, ๋ณต์žกํ•œ ๋กœ์ง์ด๋‚˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ ํฐ ์ž๋ฃŒ๊ตฌ์กฐ์ผ ์ˆ˜ ์žˆ๋‹ค.
๋ฐ์ดํ„ฐ ์บก์А์€ ์ •๋ณด ์€๋‹‰์˜ ํ•œ ์ข…๋ฅ˜์ผ ๋ฟ์ž„.

์ž๋ฐ”์˜ ๋ชจ๋“ˆ ๊ฐœ๋…์€ ํŒจํ‚ค์ง€๋‹ค.

๐Ÿ“Œ ๋ชจ๋“ˆ์˜ ์žฅ์ 

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

๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๋ชจ๋“ˆ ๋‚ด๋ถ€์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค

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

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค

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

์ „์—ญ ๋ณ€์ˆ˜์™€ ์ „์—ญ ํ•จ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์˜ค์—ผ(namespace pollution)์„ ๋ฐฉ์ง€ํ•œ๋‹ค

๋ชจ๋“ˆ์˜ ํ•œ ๊ฐ€์ง€ ์šฉ๋„๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋ชจ๋“ˆ ๋‚ด๋ถ€์— ํฌํ•จ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ๋„ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰ ์ „์—ญ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋ฅผ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๊ณ , ์ด๋ฆ„ ์ถฉ๋Œ(name collision)์˜ ์œ„ํ—˜์„ ์™„ํ™”ํ•œ๋‹ค.

๐Ÿ“Œ ๋ชจ๋“ˆ์˜ ๋‹จ์ 

์ •๋ณด ์€๋‹‰์ด๋ผ๋Š” ๊ฐœ๋…์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๊ณ„์˜ ์ค‘์‹ฌ ์š”์†Œ๋กœ ๋ถ€๊ฐ์‹œํ‚จ๋‹ค.
์ธ์Šคํ„ด์Šค ๊ฐœ๋…์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.
์ข€ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ์œ„ํ•ด์„ , Employees ๋ชจ๋“ˆ์ด ์ „์ฒด ์ง์›๋“ค์„ ๋‹ค๋ฃจ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ
๊ฐœ๋ณ„ ์ง์›์„ ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

์ฆ‰ ๋‹ค์ˆ˜์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฐœ๋…์ด ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‹ค.

โญ๏ธ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”์™€ ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ํƒ€์ž…(type)์ด๋ž€ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ๋ฌผ์˜ ์ข…๋ฅ˜์™€ ๋ณ€์ˆ˜์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์˜ ๊ฐ€์ง“์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
ํƒ€์ž…์„ ํ†ตํ•ด ์ €์žฅ๋œ ๊ฐ’์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ด ์ •ํ•ด์ง„๋‹ค.
๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜์˜ ๊ฐ’์˜ ํ–‰๋™์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.
(๋ฌธ์ž์—ด ์—ฐ๊ฒฐ, ์ •์ˆ˜ ๋ง์…ˆ)


๋ฆฌ์Šค์ฝ”ํ”„๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”์ƒํ™”์˜ ์ˆ˜์ค€์„ ํ•œ๋‹จ๊ณ„ ๋†’์˜€๋‹ค.

  • ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๊ตฌํ˜„์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ธฐ๋Šฅ
  • ํƒ€์ž… ์ •์˜ ์„ ์–ธ
  • ํƒ€์ž… ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์˜คํผ๋ ˆ์ด์…˜์˜ ์ง‘ํ•ฉ
  • ์ œ๊ณต๋œ ์˜คํผ๋ ˆ์ด์…˜์„ ํ†ตํ•ด์„œ๋งŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ ์บก์Аํ™”(์ ‘๊ทผ์ œ์–ด์ž)

ํƒ€์ž…์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.

์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๊ตฌ์กฐ์ฒด๋ž‘ ๋น„์Šทํ•จ.

  • ์—ฌ์ „ํžˆ ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌ
  • ๋ง ๊ทธ๋Œ€๋กœ ์‹œ์Šคํ…œ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
  • ํ•ต์‹ฌ ๋กœ์ง์€ ํ•จ์ˆ˜(์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์™ธ๋ถ€์— ์กด์žฌ)

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

โญ๏ธ ํด๋ž˜์Šค

ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ๊ฐ€?
ํด๋ž˜์Šค์™€ ์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ชจ๋‘ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋ถ„ํ•ดํ•œ๋‹ค.
ํด๋ž˜์Šค๋Š” ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜์ง€๋งŒ
์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ง€์›ํ•˜์ง€ ๋ชปํ•œ๋‹ค.


์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ํƒ€์ž…์ฒ˜๋Ÿผ ๋ณด์ด๋Š” Employee ํƒ€์ž… ๋‚ด์— ๊ฐœ๋… 2๊ฐœ๊ฐ€ ๊ณต์กดํ•จ.
๊ตฌ์ฒด์ ์ธ ์ง์› ํƒ€์ž…์„ ์บก์Аํ™”ํ•จ.
์ด๋ฅผ ํƒ€์ž… ์ถ”์ƒํ™”๋ผ ํ•จ.


๊ฐ์ฒด์ง€ํ–ฅ์€ ํƒ€์ž…์„ ๊ธฐ์ค€์œผ๋กœ ์˜คํผ๋ ˆ์ด์…˜์„ ๋ฌถ๋Š”๋‹ค.
์ฆ‰, ์ •๊ทœ ์ง์›๊ณผ ์•„๋ฅด๋ฐ”์ดํŠธ ์ง์›์ด๋ผ๋Š” ๋‘ ๊ฐœ์˜ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ 
๋‘ ์ง์› ์œ ํ˜•๊ณผ ๊ด€๋ จ๋œ ์˜คํผ๋ ˆ์ด์…˜์˜ ์‹คํ–‰ ์ ˆ์ฐจ๋ฅผ ๋‘ ํƒ€์ž…์— ๋ถ„๋ฐฐํ•œ๋‹ค.
์ฆ‰ ์•„๋ฅด๋ฐ”์ดํŠธ, ์ง์› ๊ฐ๊ฐ์— ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ 
๊ฐ ํด๋ž˜์Šค๋“ค์ด calculatePay์™€ monthlyBasePay ์˜คํผ๋ ˆ์ด์…˜์„ ์ ์ ˆํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.
๊ณตํ†ต๋กœ์ง์€ ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์œ„์น˜ํ•œ๋‹ค.


๋‚ด๋ถ€ ์ˆ˜ํ–‰ ์ ˆ์ฐจ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ ๋‹คํ˜•์„ฑ์€ ์ ˆ์ฐจ์— ๋Œ€ํ•œ ์ฐจ์ด์ ์„ ๊ฐ์ถ˜๋‹ค.
์ฆ‰, ๊ฐ์ฒด์ง€ํ–ฅ์€ ์ ˆ์ฐจ ์ถ”์ƒํ™”๋‹ค.

์ถ”์ƒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์˜คํผ๋ ˆ์ด์…˜์„ ๊ธฐ์ค€์œผ๋กœ ํƒ€์ž…๋“ค์„ ์ถ”์ƒํ™”ํ•œ๋‹ค.
ํด๋ž˜์Šค๋Š” ํƒ€์ž…์„ ๊ธฐ์ค€์œผ๋กœ ์ ˆ์ฐจ๋“ค์„ ์ถ”์ƒํ™”ํ•œ๋‹ค.

๐Ÿ“Œ ๋ณ€๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์„ ํƒํ•˜๋ผ

ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹ˆ๋‹ค.
ํƒ€์ž…์„ ๊ธฐ์ค€์œผ๋กœ ์ถ”์ƒํ™”ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„ํ•ด๊ฐ€ ์•„๋‹ˆ๋‹ค.
๋น„๋ก ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋ง์ด๋‹ค.

๐Ÿ“Œ ๋‚ด๋ถ€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์€ ๊ฐ์ฒด์ง€ํ–ฅ ์œ„๋ฐ˜์ด๋‹ค.

ํƒ€์ž… ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•œ ์กฐ๊ฑด๋ฌธ์„ ๋‹คํ˜•์„ฑ์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.
๊ฐ์ฒด๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ์ ์ ˆํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค.
๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€ ์กฐ๊ฑด๋ฌธ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์–ด๋А์ •๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์กฐ๊ฑด๋ฌธ ์ฒดํฌ ๋กœ์ง์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ค ์ฐพ์•„์„œ ์ˆ˜์ •ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Open-Closed Principle : ๊ธฐ์กด ์ฝ”๋“œ์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ๋„ ๋ฏธ์น˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์œ ํ˜•๊ณผ ํ–‰์œ„๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ


์ถœ์ฒ˜
์˜ค๋ธŒ์ ํŠธ - ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„
https://github.com/eternity-oop/object

0๊ฐœ์˜ ๋Œ“๊ธ€