๐Ÿ“˜ํด๋ฆฐ์ฝ”๋“œ (2022.02.10) - ํด๋ž˜์Šค (2)

์‹ ์œค์ฒ ยท2022๋…„ 2์›” 10์ผ
0

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

๋ชฉ๋ก ๋ณด๊ธฐ
18/22

DAY 21

์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„

10์žฅ ํด๋ž˜์Šค ~p191

๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์จ๋ณด์„ธ์š”.

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

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

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

๐Ÿ™„์˜ค๋Š˜ ์ฝ์€ ์†Œ๊ฐ์€? ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ์„ ๊ฐ€๋ณ๊ฒŒ ์ ์–ด๋ณด์„ธ์š”

  • ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ• ๋•Œ ์ฃผ์–ด์ง„ ์ƒํ™ฉ์ด ์žˆ์œผ๋ฉด ๊ทธ ์ƒํ™ฉ์„ ์ตœ๋Œ€ํ•œ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„์„ ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์˜ค๋Š˜ ์ฑ…์„ ๋ณด๊ณ  ๋งŽ์€ ๊ฒƒ์„ ๋А๊ผˆ๋‹ค.
    ๊ทธ ์ƒํ™ฉ๋งŒ ํ•ด๊ฒฐํ•˜๋ฉด ๋งŒ์•ฝ ๋น„์Šทํ•œ ๋‹ค๋ฅธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์˜€์„์‹œ ๋˜ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ• ์ˆ˜๋„ ์žˆ๋‹ค.
    ๋ฌธ์ œ๋ฅผ ํฌ๊ฒŒ ๋ณด๊ณ  ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”์ƒ์ ์ธ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.
    ์ถ”์ƒํ™”.. ํ•ญ์ƒ ๋ฐฐ์› ๋˜ ๋ง์ธ๋ฐ ์˜ค๋Š˜ ๋‹ค์‹œํ•œ๋ฒˆ ๊ทธ ์ค‘์š”์„ฑ์„ ๋А๊ผˆ๋‹ค.

๐Ÿ”Ž ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์ ์–ด๋ณด์„ธ์š”.

  • DIP : Dependency Inversion Principle์˜ ์•ฝ์ž๋กœ '์˜์กด์„ฑ ์—ญ์ „ ์›์น™'์ด๋ผ ํ•œ๋‹ค.
    ์ƒ์œ„ ๋ชจ๋“ˆ์€ ํ•˜์œ„๋ชจ๋“ˆ์— ์œ„์กดํ•ด์„  ์•ˆ๋˜๊ณ , ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ธํ•œ ๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์ถ”์ƒํ™”์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.
    DIP์˜ ํ•ต์‹ฌ์€ ์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ ๋ณ€ํ™”ํ•˜๊ธฐ ์‰ฌ์šด ๊ฒƒ(์ƒ์„ธ๊ตฌํ˜„)์— ์˜์กดํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ๋ณ€ํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ(์ถ”์ƒํ™”)์— ์˜์กดํ•˜๋ผ๋Š” ์›์น™์ด๋‹ค!
    (https://huisam.tistory.com/entry/DIP)

โœ ์†Œ๊ฐ 3์ค„ ์š”์•ฝ

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

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