1 minute read

ํด๋ฆฐ ์ฝ”๋“œ

์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹ 

์ €์ž: ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด

10. ํด๋ž˜์Šค

์ž๋ฐ” ๊ด€๋ก€์— ๋”ฐ๋ฅด๋ฉด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ ์•„๋ž˜์˜ ์ˆœ์„œ๋กœ ๋‚˜์˜จ๋‹ค.

  1. ๋ณ€์ˆ˜ ๋ชฉ๋ก(์ •์  ๊ณต๊ฐœ ์ƒ์ˆ˜ - ์ •์  ๋น„๊ณต๊ฐœ ๋ณ€์ˆ˜ - ๋น„๊ณต๊ฐœ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)
  2. ๊ณต๊ฐœ ํ•จ์ˆ˜
  3. ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜(์ž์‹  ํ˜ธ์ถœํ•˜๋Š” ๊ณต๊ฐœ ํ•จ์ˆ˜ ์งํ›„) ์ถ”์ƒํ™” ๋‹จ๊ณ„๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚ด๋ ค๊ฐ€์„œ ์‹ ๋ฌธ ๊ธฐ์‚ฌ์ฒ˜๋Ÿผ ์ฝํžŒ๋‹ค.

ํด๋ž˜์Šค ์ฒด๊ณ„

๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค ์„ค๊ณ„ ์›์น™์ธ DIPDependency Inversion Principle๋ฅผ ๋”ฐ๋ฅด๋Š” ํด๋ž˜์Šค๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ DIP๋Š” ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ธํ•œ ๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์ถ”์ƒํ™”์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

์บก์Šํ™”

์บก์Šํ™”๋ฅผ ํ’€์–ด์ฃผ๋Š” ๊ฒฐ์ •์€ ์–ธ์ œ๋‚˜ ์ตœํ›„์˜ ์ˆ˜๋‹จ์ด๋‹ค.

ํด๋ž˜์Šค๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค!

ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.

ํด๋ž˜์Šค ์ด๋ฆ„์€ ํ•ด๋‹น ํด๋ž˜์Šค ์ฑ…์ž„์„ ๊ธฐ์ˆ ํ•ด์•ผ ํ•œ๋‹ค. ์ž‘๋ช…์€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ์ฒซ ๋ฒˆ์งธ ๊ด€๋ฌธ์ด๋‹ค.

๋‹จ์ผ ์ฑ…์ž„ ์›์น™

ํด๋ž˜์Šค๋‚˜ ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•  ์ด์œ ๊ฐ€ ๋‹จ ํ•˜๋‚˜๋ฟ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

๋„๊ตฌ ์ƒ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์€๊ฐ€? ์ž‘์€ ์„œ๋ž์„ ๋งŽ์ด ๋‘๊ณ  ๊ธฐ๋Šฅ๊ณผ ์ด๋ฆ„์ด ๋ช…ํ™•ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜๋ˆ  ๋„ฃ๊ณ  ์‹ถ์€๊ฐ€? ์•„๋‹ˆ๋ฉด ํฐ ์„œ๋ž ๋ช‡ ๊ฐœ๋ฅผ ๋‘๊ณ  ๋ชจ๋‘๋ฅผ ๋˜์ ธ ๋„ฃ๊ณ  ์‹ถ์€๊ฐ€?

์‘์ง‘๋„Cohesion

ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ˆ˜๊ฐ€ ์ž‘์•„์•ผ ํ•œ๋‹ค. ๊ฐ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ• ์ˆ˜๋ก ๋ฉ”์„œ๋“œ์™€ ํด๋ž˜์Šค๋Š” ์‘์ง‘๋„๊ฐ€ ๋” ๋†’๋‹ค.

๋•Œ๋•Œ๋กœ ๋ช‡๋ช‡ ๋ฉ”์„œ๋“œ๋งŒ์ด ์‚ฌ์šฉํ•˜๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์•„์ฃผ ๋งŽ์•„์ง„๋‹ค. ์ด๋Š” ์‹ญ์ค‘ํŒ”๊ตฌ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋กœ ์ชผ๊ฐœ์•ผ ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ๋‹ค. ์‘์ง‘๋„๊ฐ€ ๋†’์•„์ง€๋„๋ก ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ ์ ˆํžˆ ๋ถ„๋ฆฌํ•ด ์ƒˆ๋กœ์šด ํด๋ž˜์Šค ๋‘์„ธ ๊ฐœ๋กœ ์ชผ๊ฐœ์ค€๋‹ค.

์‘์ง‘๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด ์ž‘์€ ํด๋ž˜์Šค ์—ฌ๋Ÿฟ์ด ๋‚˜์˜จ๋‹ค

ํฐ ํ•จ์ˆ˜๋ฅผ ์ž‘์€ ํ•จ์ˆ˜ ์—ฌ๋Ÿฟ์œผ๋กœ ์ชผ๊ฐœ๋‹ค ๋ณด๋ฉด ์ข…์ข… ์ž‘์€ ํด๋ž˜์Šค ์—ฌ๋Ÿฟ์œผ๋กœ ์ชผ๊ฐค ๊ธฐํšŒ๊ฐ€ ์ƒ๊ธด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์— ์ ์  ๋” ์ฒด๊ณ„๊ฐ€ ์žกํžˆ๊ณ  ๊ตฌ์กฐ๊ฐ€ ํˆฌ๋ช…ํ•ด์ง„๋‹ค.

๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ํด๋ž˜์Šค

OCP๋ž€ ํด๋ž˜์Šค๋Š” ํ™•์žฅ์— ๊ฐœ๋ฐฉ์ ์œผ๊ณ  ์ˆ˜์ •์— ํ์‡„์ ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

์ƒˆ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๊ฑด๋“œ๋ฆด ์ฝ”๋“œ๊ฐ€ ์ตœ์†Œ์ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋žŒ์งํ•˜๋‹ค.

์ด์ƒ์ ์ธ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•  ๋ฟ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ

ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•  ์ •๋„๋กœ ์‹œ์Šคํ…œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋ฉด ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ๋„ ๋”์šฑ ๋†’์•„์ง„๋‹ค. ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ๋‹ค๋Š” ์†Œ๋ฆฌ๋Š” ๊ฐ ์‹œ์Šคํ…œ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ๋กœ๋ถ€ํ„ฐ ๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ์ž˜ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ์‹œ์Šคํ…œ ์š”์†Œ๊ฐ€ ์„œ๋กœ ์ž˜ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฉด ๊ฐ ์š”์†Œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ๋„ ๋” ์‰ฌ์›Œ์ง„๋‹ค.

์ข€ ๋” ์ฐจ์› ๋†’์€ ๋‹จ๊ณ„๊นŒ์ง€ ์‹ ๊ฒฝ ์จ๋ณด์ž.