Skip to content

thepsyentist-public/learning-essence-of-object-orientation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 

Repository files navigation

The Essence of Object-Orientation ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด

์ €์ž: ์กฐ์˜ํ˜ธ ์ƒํƒœ: Reading ์œ ํ˜•: ๏ฟฝBook

1์žฅ. ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด

๊ฐ์ฒด์ง€ํ–ฅ์€ ํด๋ž˜์Šค๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๊ฐ์ฒด๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํด๋ž˜์Šค์˜ ๊ตฌ์กฐ์™€ ๋งค์„œ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ์ฒด์˜ ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์— ์ง‘์ค‘ํ•˜๋ผ.

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

2์žฅ. ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ๊ฐ์ฒด

๊ฐ์ฒด์˜ ๋‹ค์–‘ํ•œ ํŠน์„ฑ์„ ํšจ๊ณผ์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒํƒœ(state), ํ–‰๋™(behavior), ์‹๋ณ„์ž(identity)๋ฅผ ์ง€๋‹Œ ์‹ค์ฒด๋กœ ๋ณด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ด๋‹ค.

์ด ์ฑ…์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

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

์ด ์ฑ…์—์„œ๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

์ƒํƒœ๋Š” ํŠน์ • ์‹œ์ ์— ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ฐ์ฒด์˜ ๊ตฌ์กฐ์  ํŠน์ง•์„ ํ‘œํ˜„ํ•œ๋‹ค. ๊ฐ์ฒด์˜ ์ƒํƒœ๋Š” ๊ฐ์ฒด์— ์กด์žฌํ•˜๋Š” ์ •์ ์ธ ํ”„๋กœํผํ‹ฐ์™€ ๋™์ ์ธ ํ”„๋กœํผํ‹ฐ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋Š” ๋‹จ์ˆœํ•œ ๊ฐ’๊ณผ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋งํฌ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด๋Š” ์ž์œจ์ ์ธ ์กด์žฌ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์„ธ๊ณ„์—์„œ ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์ƒํƒœ์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜๋„, ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์—†๋‹ค.

๊ฐ์ฒด์˜ ํ–‰๋™์€ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค์ง€๋งŒ ํ–‰๋™์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ์— ์˜์กด์ ์ด๋‹ค. ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹  ํ›„์˜ ์•จ๋ฆฌ์Šค์˜ ํ‚ค(์ƒํƒœ)๋Š” ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹œ๊ธฐ ์ „์˜(ํ–‰๋™) ์•จ๋ฆฌ์Šค์˜ ํ‚ค๋ณด๋‹ค ์ž‘์•„์ ธ์•ผ ํ•œ๋‹ค. ์ด๊ฒƒ์€ ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹œ๋Š” ํ–‰๋™์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•จ๋ฆฌ์Šค์˜ ํ‚ค(์ƒํƒœ)์— ์˜์กดํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • ๊ฐ์ฒด์˜ ํ–‰๋™์€ ์ƒํƒœ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค
  • ๊ฐ์ฒด์˜ ํ–‰๋™์€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚จ๋‹ค

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

  • ์ƒํ˜ธ์ž‘์šฉ์ด ํ˜„์žฌ์˜ ์ƒํƒœ์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์˜์กดํ•˜๋Š”๊ฐ€
  • ์ƒํ˜ธ์ž‘์šฉ์ด ์–ด๋–ป๊ฒŒ ํ˜„์žฌ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š”๊ฐ€

์บก์Šํ™” Encapsulation

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

์‹๋ณ„์ž Identity

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

๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ž‘์—… - query

๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—… - command

ํ–‰๋™์ด ์ƒํƒœ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค

์‚ฌ๋žŒ๋“ค์ด ๊ฐ์ฒด์ง€ํ–ฅ์— ์‰ฝ๊ฒŒ ๋น ์ง€๋Š” ํ•จ์ •์€ ์ƒํƒœ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

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

์ƒํƒœ๋ฅผ ๋จผ์ € ๊ฒฐ์ •ํ•˜๊ณ  ํ–‰๋™์„ ๋‚˜์ค‘์— ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์„ค๊ณ„์— ๋‚˜์œ ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค.

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

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„ (Responsibility-Driven Design, RDD)

ํ˜‘๋ ฅ ์•ˆ์—์„œ ๊ฐ์ฒด์˜ ํ–‰๋™์€ ๊ฒฐ๊ตญ ๊ฐ์ฒด๊ฐ€ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋ฉด์„œ ์™„์ˆ˜ํ•ด์•ผ ํ•˜๋Š” ์ฑ…์ž„์„ ์˜๋ฏธํ•œ๋‹ค.


3์žฅ. ํƒ€์ž…๊ณผ ์ถ”์ƒํ™”

3์žฅ ์‹œ์ž‘๋ถ€ํ„ฐ๋Š” ์ถ”์ƒํ™”๋ฅผ ๊ฐ•์กฐํ•œ๋‹ค.

์ถ”์ƒํ™”

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

๋ณต์žก์„ฑ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์ถ”์ƒํ™”๋Š” ๋‘ ์ฐจ์›์—์„œ ์ด๋ค„์ง„๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ ์ฐจ์›์€ ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ฌผ๋“ค ๊ฐ„์˜ ๊ณตํ†ต์ ์€ ์ทจํ•˜๊ณ  ์ฐจ์ด์ ์€ ๋ฒ„๋ฆฌ๋Š” ์ผ๋ฐ˜ํ™”๋ฅผ ํ†ตํ•ด ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ์ฐจ์›์€ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•˜๊ธฐ ์œ„ํ•ด ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

๋ชจ๋“  ๊ฒฝ์šฐ์— ์ถ”์ƒํ™”์˜ ๋ชฉ์ ์€ ๋ณต์žก์„ฑ์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ˆ˜์ค€์œผ๋กœ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•˜๋ผ.

๊ฐ์ฒด๋ž€ ํŠน์ •ํ•œ ๊ฐœ๋…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ฌผ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ฐœ๋…์ด ๊ฐ์ฒด์— ์ ์šฉ๋์„ ๋•Œ ๊ฐ์ฒด๋ฅผ ๊ฐœ๋…์˜ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ํ•œ๋‹ค.

์•จ๋ฆฌ์Šค๊ฐ€ ์ˆ˜๋งŽ์€ ๊ตฐ์ƒ๋“ค์„ ๋‹จ์ง€ ํŠธ๋Ÿผํ”„์ผ ๋ฟ์ด๋ผ๊ณ  ์ผ์ถ•ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ฃผ๋ณ€์˜ ๋ณต์žกํ•œ ๊ฐ์ฒด๋“ค์€ ๋‹จ์ง€ ๋ช‡ ๊ฐ€์ง€ ๊ฐœ๋…์˜ ์ธ์Šคํ„ด์Šค์ผ ๋ฟ์ด๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด์˜ ๋ถ„๋ฅ˜ ์žฅ์น˜๋กœ์„œ ๊ฐœ๋…์„ ์ด์•ผ๊ธฐํ•  ๋•Œ๋Š” ์•„๋ž˜์˜ ์„ธ ๊ฐ€์ง€ ๊ด€์ ์„ ํ•จ๊ป˜ ์–ธ๊ธ‰ํ•œ๋‹ค.

  • ์‹ฌ๋ณผ(symbol): ๊ฐœ๋…์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ„๋žตํ•œ ์ด๋ฆ„์ด๋‚˜ ๋ช…์นญ
    • ํŠธ๋Ÿผํ”„
  • ๋‚ด์—ฐ(intension): ๊ฐœ๋…์˜ ์™„์ „ํ•œ ์ •์˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋‚ด์—ฐ์˜ ์˜๋ฏธ๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด๊ฐ€ ๊ฐœ๋…์— ์†ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ชธ์ด ๋‚ฉ์ž‘ํ•˜๊ณ  ๋‘ ์†๊ณผ ๋‘ ๋ฐœ์€ ๋„ค๋ชจ ๊ท€ํ‰์ด์— ๋‹ฌ๋ ค ์žˆ๋Š” ๋“ฑ์žฅ์ธ๋ฌผ
  • ์™ธ์—ฐ(extension): ๊ฐœ๋…์— ์†ํ•˜๋Š” ๋ชจ๋“  ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ(set)
    • ์ •์›์‚ฌ, ๋ณ‘์‚ฌ, ์‹ ํ•˜,โ€ฆ,ํ•˜ํŠธ์™•๊ณผ ํ•˜ํŠธ ์—ฌ์™•

๋ถ„๋ฅ˜ classification

๋ถ„๋ฅ˜๋ž€ ํŠน์ •ํ•œ ๊ฐ์ฒด๋ฅผ ํŠน์ •ํ•œ ๊ฐœ๋…์˜ ๊ฐ์ฒด ์ง‘ํ•ฉ์— ํฌํ•จ์‹œํ‚ค๊ฑฐ๋‚˜ ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค.

๋ถ„๋ฅ˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์–ด๋–ค ๊ฐœ๋…์œผ๋กœ ๋ถ„๋ฅ˜ํ• ์ง€๊ฐ€ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•œ๋‹ค.

๊ฐ์ฒด๋ฅผ ์ ์ ˆํ•œ ๊ฐœ๋…์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜์ง€ ๋ชปํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๊ณ  ๋ณ€ํ™”์— ์‰ฝ๊ฒŒ ๋Œ€์ฒ˜ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ ์ ˆํ•œ ๋ถ„๋ฅ˜ ์ฒด๊ณ„๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค๋ฃจ๋Š” ๊ฐœ๋ฐœ์ž์˜ ๋จธ๋ฆฟ์†์— ๊ฐ์ฒด๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ •์‹ ์ ์ธ ์ง€๋„๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

ํƒ€์ž…์€ ์ถ”์ƒํ™”๋‹ค. ํƒ€์ž…์„ ์ด์šฉํ•˜๋ฉด ๊ฐ์ฒด์˜ ๋™์ ์ธ ํŠน์„ฑ์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ •์ ์ธ ๋ชจ๋ธ (static model)์€ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„๋œ๋‹ค. ๋”ฐ๋ผ์„œ โ€˜ํƒ€์ž…์„ ๊ตฌํ˜„โ€™ํ•˜๋Š” ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํด๋ž˜์Šค์™€ ํƒ€์ž…์€ ๋™์ผํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ํƒ€์ž…์€ ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ๋ฐ˜๋ฉด ํด๋ž˜์Šค๋Š” ๋‹จ์ง€ ํƒ€์ž…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ์ด๋‹ค.

ํด๋ž˜์Šค๋Š” ํƒ€์ž…์˜ ๊ตฌํ˜„ ์™ธ์—๋„ ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค์™€ ํƒ€์ž…์„ ๋™์ผ์‹œํ•˜๋Š” ๊ฒƒ์€ ์•ˆ๋œ๋‹ค. ํด๋ž˜์Šค โ‰  ํƒ€์ž…


4์žฅ. ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ

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

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

์ฑ…์ž„์€ ๊ฐ์ฒด์˜ ์™ธ๋ถ€์— ์ œ๊ณตํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์™€ ์™ธ๋ถ€์— ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์˜ ๋ชฉ๋ก์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ฑ…์ž„์€ ๊ฐ์ฒด์˜ ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค(public interface)๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋…์€ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ค‘์š”ํ•œ ์›๋ฆฌ ์ค‘ ํ•˜๋‚˜์ธ ์บก์Šํ™”๋กœ ์ด์–ด์ง„๋‹ค.

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

์—ญํ• 

์—ญํ• ์˜ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์‚ฌํ•œ ํ˜‘๋ ฅ์„ ์ถ”์ƒํ™”ํ•ด์„œ ์ธ์ง€ ๊ณผ๋ถ€ํ™”๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋“ค์ด ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘๋ ฅ์ด ์ข€ ๋” ์œ ์—ฐํ•ด์ง€๋ฉฐ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋“ค์ด ๋™์ผํ•œ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง„๋‹ค. ์—ญํ• ์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ๋‹จ์ˆœ์„ฑ(simplicity), ์œ ์—ฐ์„ฑ(flexibility), ์žฌ์‚ฌ์šฉ์„ฑ(reusability)์„ ๋’ท๋ฐ›์นจํ•˜๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์ด๋‹ค.

์—ญํ• ์˜ ๊ฐ€์žฅ ํฐ ๊ฐ€์น˜๋Š” ํ•˜๋‚˜์˜ ํ˜‘๋ ฅ ์•ˆ์— ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๊ฐ€ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ ํ˜‘๋ ฅ์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋Œ€์ฒด ๊ฐ€๋Šฅ์„ฑ

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

ํ˜‘๋ ฅ์„ ๋”ฐ๋ผ ํ๋ฅด๋Š” ๊ฐ์ฒด์˜ ์ฑ…์ž„

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

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

๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๊ธฐ๋ฒ•

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„ (Responsibility-Driven Design)

๊ฐ์ฒด์˜ ์ฑ…์ž„์„ ์ค‘์‹ฌ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ๋ฒ•.

์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์€ ๋” ์ž‘์€ ๊ทœ๋ชจ์˜ ์ฑ…์ž„์œผ๋กœ ๋ถ„ํ• ๋˜๊ณ  ๊ฐ ์ฑ…์ž„์€ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•  ์ ์ ˆํ•œ ๊ฐ์ฒด์—๊ฒŒ ํ• ๋‹น๋œ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘์— ์Šค์Šค๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์ •๋ณด๋‚˜ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ ์ ˆํ•œ ๊ฐ์ฒด๋ฅผ ์ฐพ์•„ ํ•„์š”ํ•œ ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค. ์š”์ฒญ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ์€ ์ด์ œ ์ž‘์—…์„ ์œ„์ž„๋ฐ›์€ ๊ฐ์ฒด์˜ ์ฑ…์ž„์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

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

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

์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์€ ์œ ์—ฐํ•˜๊ณ  ๊ฒฌ๊ณ ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์žฌ๋ฃŒ๋‹ค. ๊ทธ ์™ธ์˜ ์žฅ์น˜๋Š” ๋‹จ์ง€ ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์„ ๋ณด์™„ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ณด์กฐ ์žฌ๋ฃŒ์ผ ๋ฟ์ด๋‹ค. ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์— ์ง‘์ค‘ํ•˜๋ผ.

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

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

ํŒจํ„ด์€ ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ ์„ค๊ณ„๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๋ชจ๋ฐฉํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณผ๊ฑฐ์˜ ์„ค๊ณ„ ๊ฒฝํ—˜์ด๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋””์ž์ธ ํŒจํ„ด์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์™€ ๊ทธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๋ฒ•์˜ ์Œ์œผ๋กœ ์ •์˜๋œ๋‹ค. ํŒจํ„ด์€ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์„œ์ˆ ํ•˜๊ณ , ํŒจํ„ด์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ๊ณผ ์ ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์„ ํ•จ๊ป˜ ์„ค๋ช…ํ•œ๋‹ค. ํŒจํ„ด์€ ๋ฐ˜๋ณตํ•ด์„œ ์ผ์–ด๋‚˜๋Š” ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ ์–ด๋–ค ์„ค๊ณ„๊ฐ€ ์™œ(why) ๋” ํšจ๊ณผ์ ์ธ์ง€์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

๋””์ž์ธ ํŒจํ„ด๊ณผ ๊ด€๋ จ๋œ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํŒจํ„ด ์ฑ…์€ GOF์˜ โ€œ๋””์ž์ธ ํŒจํ„ดโ€์œผ๋กœ, 23๊ฐœ์˜ ๋””์ž์ธ ํŒจํ„ด๋“ค์„ ์ƒ์„ธํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋†“์•˜๋‹ค.

ํ…Œ์ŠคํŠธ-์ฃผ๋„ ๊ฐœ๋ฐœ(Test-Driven Development)

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์˜ ํ•œ ์ข…๋ฅ˜์ธ XP์˜ ๊ธฐ๋ณธ ํ”„๋ž™ํ‹ฐ์Šค๋กœ ์†Œ๊ฐœ๋˜๋ฉด์„œ ์ฃผ๋ชฉ๋ฐ›๊ธฐ ์‹œ์ž‘ํ•œ ์„ค๊ณ„ ๊ธฐ๋ฒ•์ด๋‹ค. ํ…Œ์ŠคํŠธ-์ฃผ๋„ ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ณธ ํ๋ฆ„์€ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„ (์ด ์‹œ๊ฐ„ ๋™์•ˆ์—๋Š” ์ค‘๋ณต์ด ์žˆ์–ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค). ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ†ตํ•ด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. โ€˜์ž‘๋™ํ•˜๋Š” ๊น”๋”ํ•œ ์ฝ”๋“œ (clean code that works)โ€™๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

ํ…Œ์ŠคํŠธ-์ฃผ๋„ ๊ฐœ๋ฐœ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•  ๊ฐ์ฒด ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฐ์ฒด์˜ ์—ญํ• ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ์–ด๋–ค ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๊ธฐ๋Œ€๋ฅผ ์ฝ”๋“œ์˜ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๋‹ค์–‘ํ•œ ์›์น™๊ณผ ํ”„๋ž™ํ‹ฐ์Šค, ํŒจํ„ด์„ ์ข…ํ•ฉ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์ข‹์€ ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ฐ๊ฐ๊ณผ ๊ฒฝํ—˜์„ ๊ธธ๋Ÿฌ์•ผ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ•์ด๋‹ค. ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์— ์ง‘์ค‘ํ•˜๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์›์น™์„ ์ ์šฉํ•˜๋ ค๋Š” ๊นŠ์ด ์žˆ๋Š” ๊ณ ๋ฏผ๊ณผ ๋…ธ๋ ฅ์„ ํ†ตํ•ด์„œ๋งŒ ํ…Œ์ŠคํŠธ-์ฃผ๋„ ๊ฐœ๋ฐœ์˜ ํ˜œํƒ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค.


5์žฅ. ์ฑ…์ž„๊ณผ ๋ฉ”์‹œ์ง€

์˜๋„๋Š” โ€œ๋ฉ”์‹œ์ง•โ€์ด๋‹ค. ํ›Œ๋ฅญํ•˜๊ณ  ์„ฑ์žฅ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ์€ ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ์†์„ฑ๊ณผ ํ–‰๋™์ด ์–ด๋–ค๊ฐ€๋ณด๋‹ค๋Š” ๋ชจ๋“ˆ์ด ์–ด๋–ป๊ฒŒ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•˜๋Š”๊ฐ€์— ๋‹ฌ๋ ค์žˆ๋‹ค. -์•จ๋Ÿฐ ์ผ€์ด[Kay 1998]

๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์š”์ฒญ์„ ์ „์†กํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์š”์ฒญ์„ ์šฐ๋ฆฌ๋Š” ๋ฉ”์‹œ์ง€๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๋ฉ”์‹œ์ง€์™€ ๋ฉ”์„œ๋“œ

๋ฉ”์‹œ์ง€

๋ฉ”์‹œ์ง€ ์ „์†ก์€ ์ˆ˜์‹ ์ž. ๋ฉ”์‹œ์ง€ ์ด๋ฆ„, ์ธ์ž(argument)์˜ ์กฐํ•ฉ์ด๋‹ค.

๋ชจ์ž์žฅ์ˆ˜.์ฆ์–ธํ•˜๋ผ(์–ด์ œ, ์™•๊ตญ)

์—ฌ๊ธฐ์„œ๋Š” C++, ์ž๋ฐ”, C# ๋“ฑ์˜ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฌธ๋ฒ•์€ ์–ธ์–ด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์Šค๋ชฐํ† ํฌ์—์„œ๋Š” โ€˜๋ชจ์ž์žฅ์ˆ˜ ์ฆ์–ธํ•˜๋ผ:์–ด์ œ ์–ด๋””์„œ:์™•๊ตญโ€™ ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์ด์šฉํ•˜๋ฉฐ, ๋ฃจ๋น„์˜ ๊ฒฝ์šฐ ์ธ์ž๋“ค์ด ๋ชจํ˜ธํ•˜์ง€ ์•Š๋‹ค๋ฉด โ€˜๋ชจ์ž์žฅ์ˆ˜.์ฆ์–ธํ•˜๋ผ ์–ด์ œ, ์™•๊ตญโ€™ ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฌธ๋ฒ•์ด ์•„๋‹ˆ๋ผ ๋ฉ”์‹œ์ง€ ์ „์†ก์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋‹ค. ๋ฉ”์‹œ์ง€ ์ „์†ก์ด ์ˆ˜์‹ ์ž, ๋ฉ”์‹œ์ง€ ์ด๋ฆ„, ์ธ์ž์˜ ์กฐํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๋ฉ”์„œ๋“œ Method

๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฉ”์„œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์•ˆ์— ํฌํ•จ๋œ ํ•จ์ˆ˜ ๋˜๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค.

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

๋‹คํ˜•์„ฑ polymorphism

๋‹คํ˜•์„ฑ์ด๋ž€ ์„œ๋กœ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. - ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์— ์†ํ•˜๋Š” ๊ฐ์ฒด๋“ค์ด ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

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

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

์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์€ ํ˜‘๋ ฅ์˜ ์˜๋ฏธ

๊ฐ์ฒด-์ง€ํ–ฅ ์‹œ์Šคํ…œ์€ ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ์—ฐ๊ฒฐ๋ง(web)์ด๋‹ค. ์‹œ์Šคํ…œ์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ƒํ˜ธ ๊ฐ„์— ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ด๋“ค์„ ๋ผ์›Œ ๋งž์ถค์œผ๋กœ์จ ๊ตฌ์ถ•๋œ๋‹ค. ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋Š” ๊ฐ์ฒด๋“ค์˜ ์กฐํ•ฉ์œผ๋กœ ์ฐฝ๋ฐœ๋˜๋Š” ์†์„ฑ์ด๋‹ค. ์ด๊ฒƒ์€ ๊ฐ์ฒด์˜ ์กฐํ•ฉ์„ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๊ฐ์ฒด์˜ ์กฐํ•ฉ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ๋Š” ๊ฐ์ฒด ์—ฐ๊ฒฐ๋ง์ด ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์„ ์–ธ์ ์ธ ์ •์˜๋‹ค. ๊ฐ์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ ํ• ๊ฒƒ์ธ์ง€๋ณด๋‹ค๋Š” ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€์— ์ดˆ์ ์„ ๋งž์ถ”๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค.

๋ฉ”์‹œ์ง€๋ฅผ ๋”ฐ๋ผ๋ผ

๊ฐ์ฒด์ง€ํ–ฅ์˜ ํ•ต์‹ฌ. ๋ฉ”์‹œ์ง€

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

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

์ง„์ •ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ์˜ ๋„์•ฝ์€ ๊ฐœ๋ณ„์ ์ธ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฐ์ฒด๋“ค ์‚ฌ์ด์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์— ์ดˆ์ ์„ ๋งž์ถœ ๋•Œ ์ผ์–ด๋‚œ๋‹ค.

๊ฐ์ฒด๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์„ ํƒ X ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ˜‘๋ ฅ์„ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„์˜ ํ•ต์‹ฌ์€ ์–ด๋–ค ํ–‰์œ„๊ฐ€ ํ•„์š”ํ•œ์ง€๋ฅผ ๋จผ์ € ๊ฒฐ์ •ํ•œ ํ›„์— ์ด ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฐ์ฒด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๊ณผ์ •์„ ํ”ํžˆ what/who ์‚ฌ์ดํด[Budd 2001] ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด ์‚ฌ์ดํด ์šฉ์–ด๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € โ€˜์–ด๋–ค ํ–‰์œ„(what)โ€™๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ ํ›„์— โ€˜๋ˆ„๊ฐ€(who)โ€™ ๊ทธ ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„๋Š” ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋“ค์ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€์— ์ดˆ์ ์„ ๋งž์ถ”๊ฒŒ ํ•จ์œผ๋กœ์จ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์žฅ์ ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ฐ์ฒด์— ๊ด€ํ•ด ๊ณ ๋ฏผํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค. ์ผ๋‹จ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฒฐ์ •๋œ ํ›„์—์•ผ ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•œ๋‹ค.

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

๊ฐ์ฒด ์ธํ„ฐํŽ˜์ด์Šค

์ธํ„ฐํŽ˜์ด์Šค

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

์ผ๋ฐ˜์ ์œผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ํŠน์ง•์„ ์ง€๋‹Œ๋‹ค.

  1. ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๊ธฐ๋งŒ ํ•˜๋ฉด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋‚˜ ๋™์ž‘ ๋ฐฉ์‹์„ ๋ชฐ๋ผ๋„ ์‰ฝ๊ฒŒ ๋Œ€์ƒ์„ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ ์˜์‚ฌ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์ธํ„ฐํŽ˜์ด์Šค ์ž์ฒด๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ๋‚ด๋ถ€ ๊ตฌ์„ฑ์ด๋‚˜ ์ž‘๋™ ๋ฐฉ์‹๋งŒ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์˜ํ–ฅ๋„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค
  3. ๋Œ€์ƒ์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ ์—†์ด ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์œ ์ง€๋œ๋‹ค๋ฉด ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋‚˜ ์ž‘๋™ ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ ๋Œ€์ฒดํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.

๋ฉ”์‹œ์ง€๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค

๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ โ€˜๋ฉ”์‹œ์ง€ ์ „์†กโ€™.

๋”ฐ๋ผ์„œ ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค โ†’ ๊ฐ์ฒด๊ฐ€ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€์˜ ๋ชฉ๋ก์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๊ฐ€ ๊ฐ์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์–‘์„ ๋นš๋Š”๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์˜ ๋ถ„๋ฆฌ

๊ฐ์ฒด ๊ด€์ ์—์„œ ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•

๋งท ์™€์ด์ŠคํŽ ๋“œ(Matt Weisfeld)๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์‚ฌ๊ณ  ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์˜ ์„ธ ๊ฐ€์ง€ ์›์น™์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ฃผ์žฅํ•œ๋‹ค. ์ด๊ฒƒ๋“ค์€ ๋ชจ๋‘ ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ด€๋ จ๋œ ๊ฒƒ์ด๋‹ค.

  • ์ข€ ๋” ์ถ”์ƒ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค
    • ์™•์ด ๋ชจ์ž ์žฅ์ˆ˜์—๊ฒŒ โ€˜๋ชฉ๊ฒฉํ–ˆ๋˜ ์žฅ๋ฉด์„ ๋– ์˜ฌ๋ ค๋ผโ€™, โ€˜๋– ์˜ค๋ฅด๋Š” ๊ธฐ์–ต์„ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ์žฌ๊ตฌ์„ฑํ•˜๋ผโ€™, โ€˜๋ง๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ผโ€™์™€ ๊ฐ™์€ ์ง€๋‚˜์น˜๊ฒŒ ์ƒ์„ธํ•œ ์ˆ˜์ค€์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ์ž์œจ์„ฑ์„ ์ €ํ•ดํ•œ๋‹ค.
    • ๋Œ€์‹  โ€˜์ฆ์–ธํ•˜๋ผโ€™ ๋ผ๋Š” ์ข€ ๋” ์ถ”์ƒ์ ์ธ ์ˆ˜์ค€์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์ˆ˜์‹ ์ž์˜ ์ž์œจ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค (X) ์ถ”์ƒ์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค (O)
  • ์ตœ์†Œ ์ธํ„ฐํŽ˜์ด์Šค minimal interface
    • ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ตœ๋Œ€ํ•œ ๋…ธ์ถœ ๊ธˆ์ง€
    • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ตœ์†Œ๋กœ ์œ ์ง€ํ•˜๋ฉด ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๋™์ž‘์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์€ ์ •๋ณด๋งŒ ์™ธ๋ถ€์— ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€๋ฅผ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ์™ธ๋ถ€์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„ ๊ฐ„์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ์ธ์‹

๊ตฌํ˜„

๊ฐ์ฒด์ง€ํ–ฅ์˜ ์„ธ๊ณ„์—์„œ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ์ž‘๋™ ๋ฐฉ์‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณ ์œ ์˜ ์šฉ์–ด๋Š” ๊ตฌํ˜„ (implementation) ์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜์ง€๋งŒ ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ตฌํ˜„์— ํฌํ•จ๋œ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์˜ ๋ถ„๋ฆฌ ์›์น™

๊ฐ์ฒด ์„ค๊ณ„์˜ ํ•ต์‹ฌ์€ ๊ฐ์ฒด๋ฅผ ๋‘ ๊ฐœ์˜ ๋ถ„๋ฆฌ๋œ ์š”์†Œ๋กœ ๋ถ„ํ• ํ•ด ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‚ด๋ถ€์— ๊ฐ์ถฐ์ง€๋Š” ๊ตฌํ˜„์ด๋‹ค.

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

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


6์žฅ. ๊ฐ์ฒด ์ง€๋„

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

๋ฏธ๋ž˜์— ๋Œ€๋น„ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ณ€๊ฒฝ์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณ€๊ฒฝ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์˜ ์—ฌ์ง€๋ฅผ ์„ค๊ณ„์— ๋งˆ๋ จํ•ด ๋†“๋Š” ๊ฒƒ์ด๋‹ค. ํ›Œ๋ฅญํ•œ ์„ค๊ณ„์ž๋Š” ๋ฏธ๋ž˜์— ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ X ๋‹จ์ง€ ์–ธ์  ๊ฐ€๋Š” ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋ฉฐ ์•„์ง๊นŒ์ง€๋Š” ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅธ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฒธํ—ˆํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ธ๋‹ค.

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

์ด๊ฒƒ์ด ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฑ…์ž„๊ณผ ์—ญํ• ์„ ์‹๋ณ„ํ•˜๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด๋“ค์˜ ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ์ด์œ ๋‹ค.

๋‘ ๊ฐ€์ง€ ์žฌ๋ฃŒ: ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์กฐ

๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์˜ ์„œ๋น„์Šค๋‹ค.

๊ตฌ์กฐ๋Š” ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜์œผ๋กœ, ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ์ •์ ์ด์–ด์•ผ ํ•œ๋‹ค.

  • ๊ตฌ์กฐ๋Š” ์‚ฌ์šฉ์ž๋‚˜ ์ดํ•ด ๊ด€๊ณ„์ž๋“ค์ด ๋„๋ฉ”์ธ(domain)์— ๊ด€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋…๊ณผ ๊ฐœ๋…๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž์˜ ๋ชฉํ‘œ๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

์œ ์Šค์ผ€์ด์Šค ๋ชจ๋ธ๋ง - ๊ธฐ๋Šฅ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•

๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง - ๊ตฌ์กฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•

์•ˆ์ •์ ์ธ ์žฌ๋ฃŒ: ๊ตฌ์กฐ

๋„๋ฉ”์ธ ๋ชจ๋ธ

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

๋„๋ฉ”์ธ ๋ชจ๋ธ โ†’ ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์ƒ ์˜์—ญ์— ๊ด€ํ•œ ์ง€์‹์„ ์„ ํƒ์ ์œผ๋กœ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์˜์‹์ ์œผ๋กœ ๊ตฌ์กฐํ™”ํ•œ ํ˜•ํƒœ๋‹ค.

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

๋„๋„๋“œ ๋…ธ๋จผ(Donald Norman)์€ ์ œํ’ˆ์„ ์„ค๊ณ„ํ•  ๋•Œ ์ œํ’ˆ์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์‚ฌ์šฉ์ž๋“ค์ด ์ œํ’ˆ์— ๋Œ€ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ˜ํƒˆ ๋ชจ๋ธ๊ณผ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•œ๋‹ค.

์ตœ์ข… ์ œํ’ˆ์€ ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์„ ๋ฐ˜์˜ํ•ด์•ผ ํ•œ๋‹ค.

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

๋ถˆ์•ˆ์ •ํ•œ ์žฌ๋ฃŒ: ๊ธฐ๋Šฅ

์œ ์Šค์ผ€์ด์Šค Use Case

์‚ฌ์šฉ์ž์˜ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ ๊ฐ„์— ์ด๋ค„์ง€๋Š” ์ƒํ˜ธ์ž‘์šฉ์˜ ํ๋ฆ„์„ ํ…์ŠคํŠธ๋กœ ์ •๋ฆฌํ•œ ๊ฒƒ.

์œ ์Šค์ผ€์ด์Šค์˜ ํŠน์„ฑ

  1. ์œ ์Šค์ผ€์ด์Šค๋Š” ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” โ€˜ํ…์ŠคํŠธโ€™๋‹ค.
  2. ์œ ์Šค์ผ€์ด์Šค๋Š” ํ•˜๋‚˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.
  3. ์œ ์Šค์ผ€์ด์Šค๋Š” ๋‹น์ˆœํ•œ ํ”ผ์ฒ˜(feature) ๋ชฉ๋ก๊ณผ ๋‹ค๋ฅด๋‹ค.
    1. ํ”ผ์ฒ˜๋Š” ์‹œ์Šคํ…œ์ด ์ˆ˜ํ–‰ํ•˜์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๋ชฉ๋ก์„ ๋‹จ์ˆœํ•˜๊ฒŒ ๋‚˜์—ดํ•œ ๊ฒƒ์ด๋‹ค. ์˜ˆ์ œ๋กœ, ํ”ผ์ฒ˜๋Š” โ€˜์‹œ์Šคํ…œ์€ ์ •๊ธฐ์˜ˆ๊ธˆ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค€๋‹คโ€™์™€ โ€˜์‹œ์Šคํ…œ์€ ๋‹น์ผ์ด๋‚˜ ํ˜„์žฌ ์ผ์ž์˜ ์ด์ž๋ฅผ ๊ณ„์‚ฐํ•œ๋‹คโ€™์ด๋‹ค. ํ”ผ์ฒ˜์˜ ๋‹จ์ ์€ ์ด ๋‘ ํ”ผ์ฒ˜๋ฅผ ์„œ๋กœ ์—ฐ๊ด€์ด ์—†๋Š” ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด์ด๊ฒŒ๋” ๋งŒ๋“ ๋‹ค๋Š” ์ ์ด๋‹ค. ๋‘ ํ”ผ์ฒ˜๋ฅผ โ€˜์ค‘๋„ ํ•ด์ง€ ์ด์ž์•ก์„ ๊ณ„์‚ฐํ•œ๋‹คโ€™๋ผ๋Š” ์œ ์Šค์ผ€์ด์Šค๋กœ ๋ฌถ๊ณ  ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ํ๋ฆ„ ์†์—์„œ ๋‘ ํ”ผ์ฒ˜๋ฅผ ํฌํ•จํ•˜๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์˜์‚ฌ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋งฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    2. ์œ ์Šค์ผ€์ด์Šค์˜ ๊ฐ•์ ์€ ์œ ์Šค์ผ€์ด์Šค๊ฐ€ ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ด์•ผ๊ธฐ๋ฅผ ํ†ตํ•ด ์—ฐ๊ด€๋œ ๊ธฐ๋Šฅ๋“ค์„ ํ•จ๊ป˜ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.
  4. ์œ ์Šค์ผ€์ด์Šค๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ด€๋ จ๋œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.
    1. ์œ ์Šค์ผ€์ด์Šค๋Š” ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋Š” ๋ฐฐ์ œํ•˜๊ณ  ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์‹œ์Šคํ…œ์˜ ํ–‰์œ„์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค. ์ด์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฒ ์žฌํ•œ ์œ ์Šค์ผ€์ด์Šค ํ˜•์‹์„ essential use case ๋ณธ์งˆ์ ์ธ ์œ ์Šค์ผ€์ด์Šค๋ผ๊ณ  ํ•œ๋‹ค.
  5. ์œ ์Šค์ผ€์ด์Šค๋Š” ๋‚ด๋ถ€ ์„ค๊ณ„์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
    1. ์œ ์Šค์ผ€์ด์Šค์˜ ๋ชฉ์ ์€ ์—ฐ๊ด€๋œ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ์ด์•ผ๊ธฐ ํ˜•์‹์œผ๋กœ ๋ชจ์œผ๋Š” ๊ฒƒ์ด์ง€, ๋‚ด๋ถ€ ์„ค๊ณ„๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
    2. ์œ ์Šค์ผ€์ด์Šค์—์„œ ๊ฐ์ฒด ์„ค๊ณ„๋กœ์˜ ์ „ํ™˜์€ ๊ณตํ•™์ ์ธ ๊ทœ์น™๊ณผ ์›์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ณ€ํ™˜ ์ž‘์—…์ด ์•„๋‹ˆ๋ผ ๊ฒฝํ—˜๊ณผ ์ƒ์‹๊ณผ ์˜์‚ฌ์†Œํ†ต์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฐฝ์กฐ ์ž‘์—…์ด๋‹ค.

์œ ์Šค์ผ€์ด์Šค๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ•๋„, ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•๋„ ์•„๋‹ˆ๋‹ค

์œ ์Šค์ผ€์ด์Šค๊ฐ€ ๋‹จ์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ์Šคํ…œ์˜ ์™ธ๋ถ€ ๊ด€์ ๋งŒ์„ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•˜๋ผ.

์žฌ๋ฃŒ ํ•ฉ์น˜๊ธฐ: ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์กฐ์˜ ํ†ตํ•ฉ

๋„๋ฉ”์ธ ๋ชจ๋ธ, ์œ ์Šค์ผ€์ด์Šค, ๊ทธ๋ฆฌ๊ณ  ์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„

  1. ํ˜‘๋ ฅ์˜ ์ถœ๋ฐœ์„ ์žฅ์‹ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฉ”์‹œ์ง€๋Š” ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ์‹œ์Šคํ…œ์˜ ์ฑ…์ž„์œผ๋กœ ๋ฐ”๊พผ ํ›„ ์–ป์–ด์ง„๋‹ค.
  2. ์‹œ์Šคํ…œ์— ํ• ๋‹น๋œ ์ปค๋‹ค๋ž€ ์ฑ…์ž„์€ ์ด์ œ ์‹œ์Šคํ…œ ์•ˆ์˜ ์ž‘์€ ๊ทœ๋ชจ์˜ ๊ฐ์ฒด๋“ค์ด ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋” ์ž‘์€ ๊ทœ๋ชจ์˜ ์ฑ…์ž„์œผ๋กœ ์„ธ๋ถ„ํ™”๋œ๋‹ค.
  3. ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•  ๊ฒƒ์ธ๊ฐ€? โ†’ ๋„๋ฉ”์ธ ๋ชจ๋ธ
    1. ๋„๋ฉ”์ธ ๋ชจ๋ธ์— ํฌํ•จ๋œ ๊ฐœ๋…์„ ์€์œ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.
  4. ํ˜‘๋ ฅ์„ ์™„์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์‹๋ณ„ํ•˜๋ฉด์„œ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์ฑ…์ž„์„ ํ•œ๋‹นํ•ด ๋‚˜๊ฐ„๋‹ค.
  5. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์†์ƒ๊ณผ ํ•จ๊ป˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์ด ์™„์„ฑ๋œ ๊ฒƒ์ด๋‹ค.

๊ฐ์ฒด ์„ค๊ณ„๋Š” ๊ฐ€๋” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋˜๊ธฐ๋„ ํ•œ๋‹ค.

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

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„๋Š” ์œ ์Šค์ผ€์ด์Šค๋กœ๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ ๋ฉ”์‹œ์ง€์™€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ฌ์„ฑํ•˜๋ ค๋Š” ๋ชฉํ‘œ๋ฅผ, ๋„๋ฉ”์ธ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๊ธฐ๋Šฅ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ •์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต๋ฐ›์•„ ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ํ˜‘๋ ฅ ๊ณต๋™์ฒด๋ฅผ ์ฐฝ์กฐํ•œ๋‹ค.

๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์„ ํก์ˆ˜ํ•˜๋Š” ์•ˆ์ •์ ์ธ ๊ตฌ์กฐ

๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์ด์œ ๋Š” ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด ์•ˆ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋„๋ฉ”์ธ ๋ชจ๋ธ์ด ์•ˆ์ •์ ์ธ ์ด์œ : ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ

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

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

์—ฐ๊ฒฐ์™„์ „์„ฑ, ๊ฐ€์—ญ์„ฑ reversibility

๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋„๋ฉ”์ธ์„ ๋ชจ๋ธ๋งํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•๊ณผ ๋„๋ฉ”์ธ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ด ๋™์ผํ•˜๋‹ค๋Š” ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง์—์„œ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด์™€ ๊ฐœ๋…์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ค๊ณ„์—์„œ์˜ ๊ฐ์ฒด์™€ ํด๋ž˜์Šค๋กœ ๋งค๋„๋Ÿฝ๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.


7์žฅ. ํ•จ๊ป˜ ๋ชจ์œผ๊ธฐ

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

  • ๊ฐœ๋… ๊ด€์  Conceptual Perspective
    • ์—์„œ ์„ค๊ณ„๋Š” ๋„๋ฉ”์ธ ์•ˆ์— ์กด์žฌํ•˜๋Š” ๊ฐœ๋…๊ณผ ๊ฐœ๋…๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
    • ๋„๋ฉ”์ธ์ด๋ž€ ์‚ฌ์šฉ์ž๋“ค์ด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠน์ • ๋ถ„์•ผ๋‚˜ ์ฃผ์ œ๋ฅผ ๋งํ•˜๋ฉฐ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋„๋ฉ”์ธ์— ์กด์žฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ๋‹ค.
    • ์ด ๊ด€์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋„๋ฉ”์ธ์„ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ์„ ๋ฐ˜์˜ํ•œ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์‹ค์ œ ๋„๋ฉ”์ธ์˜ ๊ทœ์น™๊ณผ ์ œ์•ฝ์„ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•˜๊ฒŒ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค.
  • ๋ช…์„ธ ๊ด€์  Specification Perspective
    • ์‚ฌ์šฉ์ž์˜ ์˜์—ญ์ธ ๋„๋ฉ”์ธ์„ ๋ฒ—์–ด๋‚˜ ๊ฐœ๋ฐœ์ž์˜ ์˜์—ญ์ธ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ดˆ์ ์ด ์˜ฎ๊ฒจ์ง„๋‹ค.
    • ๋„๋ฉ”์ธ์˜ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ์•ˆ์—์„œ ์‚ด์•„ ์ˆจ์‰ฌ๋Š” ๊ฐ์ฒด๋“ค์˜ ์ฑ…์ž„์— ์ดˆ์ ์„ ๋งž์ถ”๊ฒŒ ๋œ๋‹ค.
    • ์ฆ‰, ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ๋œ๋‹ค.
    • ์•ˆํƒ€๊น๊ฒŒ๋„ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์„ ํด๋ž˜์Šค ์•ˆ์œผ๋กœ ์„ž์–ด ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์„ค๊ณ„์ž๋“ค์ด ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณค ํ•œ๋‹ค.
    • ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๋ถ„์•ผ์˜ ์˜ค๋ž˜๋œ ๊ฒฉ์–ธ: โ€œ๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ผ.โ€
  • ๊ตฌํ˜„ ๊ด€์  Implementation Perspective
    • ๊ฐ์ฒด๋“ค์ด ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    • ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๊ฐ์ฒด์˜ ์ฑ…์ž„์„ โ€˜์–ด๋–ป๊ฒŒโ€™ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ๊ฐ€์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ํด๋ž˜์Šค์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  1. ์ฒซ ๋ฒˆ์งธ ๋ชฉํ‘œ๋Š” ๋„๋ฉ”์ธ ๋ชจ๋ธ์—์„œ ์‹œ์ž‘ํ•ด์„œ ์ตœ์ข… ์ฝ”๋“œ๊นŒ์ง€์˜ ๊ตฌํ˜„ ๊ณผ์ •์„ ๊ฐ„๋žตํ•˜๊ฒŒ๋‚˜๋งˆ ์„ค๋ช….
  2. ๋‘ ๋ฒˆ์งธ ๋ชฉํ‘œ๋Š” ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ ๊ฐœ๋… ๊ด€์ , ๋ช…์„ธ ๊ด€์ , ๊ตฌํ˜„ ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์„ค๋ช….

์ปคํ”ผ ์ „๋ฌธ์  ๋„๋ฉ”์ธ


์ปคํ”ผ ์ „๋ฌธ์ ์ด๋ผ๋Š” ์„ธ์ƒ

์ปคํ”ผ ์ „๋ฌธ์  ์•ˆ์—๋Š” ๋ฉ”๋‰ดํŒ์ด ์กด์žฌํ•œ๋‹ค.

  • ๋ฉ”๋‰ดํŒ
    • ์•„๋ฉ”๋ฆฌ์นด๋…ธ 1500์›
    • ์นดํ‘ธ์น˜๋…ธ 2000์›
    • ์นด๋ผ๋ฉœ ๋งˆํ‚ค์•„๋˜ 2500์›
    • ์—์Šคํ”„๋ ˆ์†Œ 2500์›

๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ด€์ ์—์„œ ๋ฉ”๋‰ดํŒ์€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด.

๋ฉ”๋‰ดํŒ์€ ๋„ค ๊ฐœ์˜ ๋ฉ”๋‰ด ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ โ†’ ๋ฉ”๋‰ด ํ•ญ๋ชฉ๋“ค ์—ญ์‹œ ๊ฐ์ฒด๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, ๋ฉ”๋‰ดํŒ์€ ๋„ค ๊ฐœ์˜ ๋ฉ”๋‰ด ํ•ญ๋ชฉ ๊ฐ์ฒด๋“ค์„ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์†๋‹˜์€ ๋ฉ”๋‰ดํŒ์„ ๋ณด๊ณ  ๋ฐ”๋ฆฌ์Šคํƒ€์—๊ฒŒ ์ฃผ๋ฌธํ•œ๋‹ค.

๊ฐ์ฒด์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์†๋‹˜, ๋ฐ”๋ฆฌ์Šคํƒ€ ์—ญ์‹œ ๊ฐ์ฒด๋“ค์ด๋‹ค.

์ข…ํ•ฉํ•ด ๋ณด๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ด€์ ์—์„œ ์ปคํ”ผ ์ „๋ฌธ์ ์ด๋ผ๋Š” ๋„๋ฉ”์ธ์€ ์†๋‹˜ ๊ฐ์ฒด, ๋ฉ”๋‰ด ํ•ญ๋ชฉ ๊ฐ์ฒด, ๋ฉ”๋‰ดํŒ ๊ฐ์ฒด, ๋ฐ”๋ฆฌ์Šคํƒ€ ๊ฐ์ฒด, ์ปคํ”ผ ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑ๋œ ์ž‘์€ ์„ธ์ƒ์ด๋‹ค.

Untitled

์ƒํƒœ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋™์ผํ•˜๊ฒŒ ํ–‰๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋“ค์€ ๋™์ผํ•œ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์†๋‹˜ ๊ฐ์ฒด๋Š” โ€˜์†๋‹˜ ํƒ€์ž…โ€™์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋ฆฌ์Šคํƒ€ ๊ฐ์ฒด๋Š” โ€˜๋ฐ”๋ฆฌ์Šคํƒ€ ํƒ€์ž…โ€™ ์ธ์Šคํ„ด์Šค๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ฉ”๋ฆฌ์นด๋…ธ ์ปคํ”ผ, ์—์Šคํ”„๋ ˆ์†Œ ์ปคํ”ผ, ์นดํ‘ธ์น˜๋…ธ ์ปคํ”ผ๋Š” ๋ชจ๋‘ โ€˜์ปคํ”ผ ํƒ€์ž…โ€™์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋‰ดํŒ ๊ฐ์ฒด๋Š” โ€˜๋ฉ”๋‰ดํŒ ํƒ€์ž…โ€™์˜ ์ธ์Šคํ„ด์Šค๋‹ค. ๋ฉ”๋‰ดํŒ ๊ฐ์ฒด๋Š” ์•„๋ฉ”๋ฆฌ์นด๋…ธ, ์—์Šคํ”„๋ ˆ์†Œ, ์นดํ‘ธ์น˜๋…ธ๋ผ๋Š” ๋„ค ๊ฐœ์˜ ๋ฉ”๋‰ด ํ•ญ๋ชฉ ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค. ๋„ค ๊ฐœ์˜ ๋ฉ”๋‰ด ํ•ญ๋ชฉ ๊ฐ์ฒด ์—ญ์‹œ ๋ชจ๋‘ ๋™์ผํ•œ โ€˜๋ฉ”๋‰ด ํ•ญ๋ชฉ ํƒ€์ž…โ€™์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์˜์—ญ์ธ ๋„๋ฉ”์ธ์„ ๋‹จ์ˆœํ™”ํ•ด์„œ ํ‘œํ˜„ํ•œ ๋ชจ๋ธ์„ ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด์ฒ˜๋Ÿผ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์˜์—ญ์ธ ๋„๋ฉ”์ธ์„ ๋‹จ์ˆœํ™”ํ•ด์„œ ํ‘œํ˜„ํ•œ ๋ชจ๋ธ์„ ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋งˆ๋ฆ„๋ชจ๋Š” ํฌํ•จ(containment) ๊ด€๊ณ„ ๋˜๋Š” ํ•ฉ์„ฑ(composition) ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ, ๋ฉ”๋‰ด ํ•ญ๋ชฉ์ด ๋ฉ”๋‰ดํŒ์— ํฌํ•จ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํ‘œํ˜„ํ•œ๋‹ค. ๋ฉ”๋‰ด ํ•ญ๋ชฉ ์ขŒ์ธก ์•„๋ž˜์˜ ์ˆซ์ž๋Š” ๋ฉ”๋‰ดํŒ์— ํฌํ•จ๋˜๋Š” ๋ฉ”๋‰ด ํ•ญ๋ชฉ์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ํ•œ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํฌํ•จํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์„œ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ฒฝ์šฐ ์ด๋ฅผ ์—ฐ๊ด€(association) ๊ด€๊ณ„๋ผ๊ณ  ํ•œ๋‹ค. ์†๋‹˜-๋ฉ”๋‰ดํŒ, ์†๋‹˜-๋ฐ”๋ฆฌ์Šคํƒ€, ๋ฐ”๋ฆฌ์Šคํƒ€-์ปคํ”ผ.

์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ


์ปคํ”ผ๋ฅผ ์ฃผ๋ฌธํ•˜๊ธฐ ์œ„ํ•œ ํ˜‘๋ ฅ ์ฐพ๊ธฐ

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

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

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

์ธํ„ฐํŽ˜์ด์Šค ์ •๋ฆฌํ•˜๊ธฐ

๊ฐ์ฒด๊ฐ€ ์ˆ˜์‹ ํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์•ˆ์— ๋ฉ”์‹œ์ง€์— ํ•ด๋‹นํ•˜๋Š” ์˜คํผ๋ ˆ์ด์…˜์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๊ฐ์ฒด๋“ค์„ ํฌ๊ด„ํ•˜๋Š” ํƒ€์ž…์„ ์ •์˜ํ•œ ํ›„ ์‹๋ณ„๋œ ์˜คํผ๋ ˆ์ด์…˜์„ ํƒ€์ž…์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

๊ฐ์ฒด์˜ ํƒ€์ž…์„ ๊ตฌํ˜„ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค์— ํฌํ•จ๋œ ์˜คํผ๋ ˆ์ด์…˜ ์—ญ์‹œ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ณต์šฉ(public)์œผ๋กœ ์„ ์–ธ๋ผ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

class Customer {
	public void order(String menuName) {}
}

class MenuItem {
}

class Menu {
    public MenuItem choose(String name) {}
}

class Barista {
    public Coffee makeCoffee(MenuItem menuItem) {}
}

class Coffee {
    public Coffee(MenuItem menuItem) {}
}

๊ตฌํ˜„ํ•˜๊ธฐ

ํด๋ž˜์Šค์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‹๋ณ„ํ–ˆ์œผ๋ฏ€๋กœ, ์ด์ œ ์˜คํผ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฉ”์„œ๋“œ๋กœ ๊ตฌํ˜„ํ•˜์ž.

class Customer {
    public void order(String menuName, Menu menu, Barista barista) {
        MenuItem menuItem = menu.choose(menuName);
        Coffee coffee = barista.makeCoffee(menuItem);
        ...
    }
}

Customer ๊ฐ์ฒด๋Š” ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ๋“  ์ž์‹ ๊ณผ ํ˜‘๋ ฅํ•˜๋Š” Menu ๊ฐ์ฒด์™€ Barista ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ์–ป๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” Customer์˜ order() ๋ฉ”์„œ๋“œ์˜ ์ธ์ž๋กœ Menu์™€ Barista ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค.

class Menu {
    private List<MenuItem> items;

    public Menu(List<MenuItem> items) {
        this.items = items;
    }

    public MenuItem choose(String name) {
        for(MenuItem each : items) {
            if (each.getName().equals(name)) {
                return each;
            }
        }
				return null;
    }
}

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

class Barista {
    public Coffee makeCoffee(MenuItem menuItem) {
        Coffee coffee = new Coffee(menuItem);
        return coffee;
    }
}

class Coffee {
    private String name;
    private int price;

    public Coffee(MenuItem menuItem) {
        this.name = menuItem.getName();
        this.price = menuItem.cost();
    }
}

class MenuItem {
    private String name;
    private int price;

    public MenuItem(String name, int price) {
        this.name = name;
        this.price = price;
    }

    public int cost() {
        return price;
    }

    public String getName() {
        return name;
    }
}

Untitled 3

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

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

์ฝ”๋“œ์™€ ์„ธ ๊ฐ€์ง€ ๊ด€์ 


์ฝ”๋“œ๋Š” ์„ธ ๊ฐ€์ง€ ๊ด€์ ์„ ๋ชจ๋‘ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค

  • ๊ฐœ๋… ๊ด€์ 
    • ๋„๋ฉ”์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…๊ณผ ๊ด€๊ณ„๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค
    • ์†Œํ”„ํŠธ์›จ์–ด ํด๋ž˜์Šค๊ฐ€ ๋„๋ฉ”์ธ ๊ฐœ๋…์˜ ํŠน์„ฑ์„ ์ตœ๋Œ€ํ•œ ์ˆ˜์šฉํ•˜๋ฉด ๋ณ€๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ปคํ”ผ๋ฅผ ์ œ์กฐํ•˜๋Š” ๊ณผ์ •์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋ฉด? Barista ํด๋ž˜์Šค
  • ๋ช…์„ธ ๊ด€์ 
    • ํด๋ž˜์Šค์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค.
      • ํด๋ž˜์Šค์˜ public ๋ฉ”์„œ๋“œ๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ํ˜‘๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋“œ๋Ÿฌ๋‚ธ๋‹ค. ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์™ธ๋ถ€์˜ ๊ฐ์ฒด๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ถ€๋ถ„์ด๋‹ค.
      • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•˜๋Š” ๋ชจ๋“  ๊ฐ์ฒด์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.
      • ๊ฐ์ฒด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ˆ˜์ •ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
      • ๋ณ€ํ™”์— ์•ˆ์ •์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๊ณผ ๊ด€๋ จ๋œ ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ตฌํ˜„ ๊ด€์ 
    • ํด๋ž˜์Šค์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๋ฐ”๋ผ๋ณธ๋‹ค.
    • ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ์†์„ฑ์€ ๊ตฌํ˜„์— ์†ํ•˜๋ฉฐ, ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ๋‹ค.
    • ๋ฉ”์„œ๋“œ์˜ ๊ตฌํ˜„๊ณผ ์†์„ฑ์˜ ๋ณ€๊ฒฝ์€ ์›์น™์ ์œผ๋กœ ์™ธ๋ถ€์˜ ๊ฐ์ฒด์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์ณ์„œ๋Š” ์•ˆ ๋œ๋‹ค.
      • ๋ฉ”์„œ๋“œ์™€ ์†์„ฑ์€ ์ฒ ์ €ํ•˜๊ฒŒ ๋‚ด๋ถ€๋กœ ์บก์ˆ ํ™” ํ•œ๋‹ค.

๋„๋ฉ”์ธ ๊ฐœ๋…์„ ์ฐธ์กฐํ•˜๋Š” ์ด์œ 

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

์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ•ญ์ƒ ๋ณ€ํ•œ๋‹ค. ์„ค๊ณ„๋Š” ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๊ธฐ๋Šฅ์„ ๋ถ„ํ• ํ•˜๊ณ  ํด๋ž˜์Šค ์•ˆ์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌํ•˜๋Š” ์ด์œ ๋Š” ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ์ˆ˜์›”ํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๊ธธ ๊ฐ„์ ˆํžˆ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ํด๋ž˜์Šค๊ฐ€ ๋„๋ฉ”์ธ ๊ฐœ๋…์„ ๋”ฐ๋ฅด๋ฉด ๋ณ€ํ™”์— ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌํ•˜๋ผ

ํด๋ž˜์Šค๋ฅผ ๋ดค์„ ๋•Œ ํด๋ž˜์Šค๋ฅผ ๋ช…์„ธ ๊ด€์ ๊ณผ ๊ตฌํ˜„ ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์บก์Šํ™”๋ฅผ ์œ„๋ฐ˜ํ•ด์„œ ๊ตฌํ˜„์„ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ–์œผ๋กœ ๋…ธ์ถœํ•ด์„œ๋„ ์•ˆ ๋˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ๋ฆฟํ•˜๊ฒŒ ์„ž์–ด๋†“์•„์„œ๋„ ์•ˆ๋œ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published