You Can Become A
๋ฆ๊ฒ ์์ํด๋ ๋๊ตฌ๋ ์ง ๋ ธ๋ ฅํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ด์ !
ํฉ์ฑ
๐ ์๋ฒฝํ๊ฒ ์ดํดํ๋ DIP (์์กด ์ญ์ ์์น)
์์กด ์ญ์ ์์น - DIP (Dependency Inversion Principle) DIP ์์น์ด๋ ๊ฐ์ฒด์์ ์ด๋ค Class๋ฅผ ์ฐธ์กฐํด์ ์ฌ์ฉํด์ผํ๋ ์ํฉ์ด ์๊ธด๋ค๋ฉด, ๊ทธ Class๋ฅผ ์ง์ ์ฐธ์กฐํ๋ ๊ฒ์ด ์๋๋ผ ๊ทธ ๋์์ ์์ ์์(์ถ์ ํด๋์ค or ์ธํฐํ์ด์ค)๋ก ์ฐธ์กฐํ๋ผ๋ ์์น์ด๋ค. ๊ฐ์ฒด๋ค์ด ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ์์กด ๊ด๊ณ๊ฐ ํ์ฑ๋๋๋ฐ, ์ด ๋ ๊ฐ์ฒด๋ค์ ๋๋ฆ๋๋ก์ ์์น์ ๊ฐ๊ณ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ ์ฝ์์ด ์๋ค. ์ฌ๊ธฐ์ ๋๋ฆ๋๋ก์ ์์น์ด๋ ์ถ์์ฑ์ด ๋ฎ์ ํด๋์ค๋ณด๋ค ์ถ์์ฑ์ด ๋์ ํด๋์ค์ ํต์ ์ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋๋ฐ ์ด๊ฒ์ด DIP ์์น์ด๋ค. ํด๋์ค ๊ฐ ์์กด ๊ด๊ณ๋, ํ ํด๋์ค๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ์ํํ๋ ค๊ณ ํ ๋, ๋ค๋ฅธ ํด๋์ค์ ์๋น์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ๋ํ์ ์ผ๋ก A ํด๋์ค์ ๋ฉ์๋์์ ๋งค๊ฐ..
๐ ์์์ ์์ ํ๊ณ ํฉ์ฑ(Composition)์ ์ด์ฉํ์
์์๊ณผ ํฉ์ฑ ๊ฐ๋ ์ ๋ฆฌ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๊ฐ์ฅ ์ ๊ฒฝ ์จ์ผ ํ ๊ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก ์ฝ๋ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ์ฌ์ฌ์ฉ ํจ์ผ๋ก์จ ๋ณ๊ฒฝ, ํ์ฅ์ ์ฉ์ดํ๊ฒ ๋ง๋๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ ๊ด์ ์์ ์์๊ณผ ํฉ์ฑ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฝ๋ ์ฌ์ฌ์ฉ ๊ธฐ๋ฒ์ด๋ค. ์์(Inheritance) ํฉ์ฑ(Composition) ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค ์ฌ์ด์ ์์กด์ฑ์ ์ปดํ์ผ ํ์์ ํด๊ฒฐ ๋ ๊ฐ์ฒด ์ฌ์ด์ ์์กด์ฑ์ ๋ฐํ์์ ํด๊ฒฐ is-a ๊ด๊ณ has-a ๊ด๊ณ ๋ถ๋ชจํด๋์ค์ ๊ตฌํ์ ์์กด ๊ฒฐํฉ๋๊ฐ ๋์. ๊ตฌํ์ ์์กดํ์ง ์์. ๋ด๋ถ์ ํฌํจ๋๋ ๊ฐ์ฒด์ ๊ตฌํ์ด ์๋ ์ธํฐํ์ด์ค์ ์์กด. ํด๋์ค ์ฌ์ด์ ์ ์ ์ธ ๊ด๊ณ ๊ฐ์ฒด ์ฌ์ด์ ๋์ ์ธ ๊ด๊ณ ๋ถ๋ชจ ํด๋์ค ์์ ๊ตฌํ๋ ์ฝ๋ ์์ฒด๋ฅผ ๋ฌผ๋ ค ๋ฐ์ ์ฌ์ฌ์ฉ ํฌํจ๋๋ ๊ฐ์ฒด์ ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฌ์ฉ ..