๋” ํฐ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋‚˜ ํด๋ž˜์Šค๋ฅผ ์ž‘์€ ๊ฐ์ฒด๋‚˜ ํด๋ž˜์Šค๋กœ ์กฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•

Composition์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ๊ฐœ๋…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

  1. Has-A ๊ด€๊ณ„: ํŠน์ • ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ โ€œ์‚ฌ์šฉโ€ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ž๋™์ฐจ ๊ฐ์ฒด๋Š” ์—”์ง„ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  2. ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๋ชจ๋“ˆํ™”: ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฐœ๋…์ด ๋“ค์–ด๊ฐ”์œผ๋ฏ€๋กœ, ๋‹น์—ฐํžˆ ์ด๋ฅผ ๋–ผ์–ด๋ƒˆ์„ ๊ฑฐ๋ผ๋Š” ์ƒ์ƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋–ผ์–ด๋‚ธ๋‹ค๋Š” ๊ฒƒ์€ ๊ณง ๋‹ค๋ฅธ ๊ฐ์ฒด์—์„œ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.
  3. ์˜์กด์„ฑ ๊ด€๋ฆฌ: ์ƒ์†์€ ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๊ต‰์žฅํžˆ ๊ฐ์ฒด๊ฐ„์˜ ๋ˆ์ ํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋งŒ๋“ ๋‹ค. Composition์€ โ€œ์กฐํ•ฉโ€์˜ ๊ฐœ๋…์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ๊ฒฐํ•ฉ๋„๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
  4. ๋™์ ์ธ ๊ตฌ์„ฑ: ๋Ÿฐํƒ€์ž„์— ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

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

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

Reference