DIP2 Spring - ์ง๊ธ๊น์ง์ ์ ์ฒด ํ๋ฆ ์ ๋ฆฌ ์ง๊ธ๊น์ง์ ์ฝ๋ ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ ์๋ก์ด ํ ์ธ ์ ์ฑ ์ ์ฉ๊ณผ ๋ฌธ์ ์ (dip, ocp ์๋ฐ) ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ (์ถ์ํ์๋ง ์์กด, ๊ตฌ์ฒดํ์๋ ์์กด๋ ์๋๋ก) AppConfig ๋ฆฌํฉํฐ๋ง (์ ์ฒด ์ฑ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ ๋ฐ๋ก appconfig๋ก ๋นผ๋ ) ์๋ก์ด ๊ตฌ์กฐ์ ํ ์ธ ์ ์ฑ ์ ์ฉ ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ ๋คํ์ฑ ๋๋ถ์ ์๋ก์ด ์ ๋ฅ ํ ์ธ ์ ์ฑ ์ฝ๋๋ฅผ ์ถ๊ฐ๋ก ๊ฐ๋ฐํ๋ ๊ฒ ์์ฒด๋ ์๋ฌด ๋ฌธ์ ๊ฐ ์์ ์๋ก์ด ํ ์ธ ์ ์ฑ ์ ์ฉ๊ณผ ๋ฌธ์ ์ ์๋ก ๊ฐ๋ฐํ ์ ๋ฅ ํ ์ธ ์ ์ฑ ์ ์ ์ฉํ๋ ค๊ณ ํ๋ ํด๋ผ์ด์ธํธ ์ฝ๋์ธ ์ฃผ๋ฌธ ์๋น์ค ๊ตฌํ์ฒด๋ ํจ๊ป ๋ณ๊ฒฝํด์ผํจ ์ฃผ๋ฌธ ์๋น์ค ํด๋ผ์ด์ธํธ๊ฐ ์ธํฐํ์ด์ค์ธ DiscountPolicy ๋ฟ๋ง ์๋๋ผ, ๊ตฌ์ฒด ํด๋์ค์ธ FixDiscountPolicy ๋ ํจ๊ป ์์กด -> DIP ์๋ฐ AppConfig ๋ฆฌํฉํฐ๋ง ๊ตฌ์ฑ .. 2023. 7. 7. Spring - DIP, OCP๋ฅผ ์งํค๋ ๋๋ฉ์ธ ์๋น์ค ๊ธฐ์กด ์ฝ๋๋ ์ด๋ ๊ฒ ์ถ์ํ์ ๊ตฌํ์ฒด์ ๋ชจ๋ ์์กดํ๊ณ ์์ง๋ง ์ด๋ฅผ ์์ฑ์๋ฅผ ํตํด์ ๋ถ๋ฆฌํด์ฃผ๋ฉด ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ๋๋ฉด์ MemberServiceImpl์์๋ MemoryMemberRepository()์ธ ๊ตฌํ์ฒด์ ๋ํด์๋ ์์กดํ์ง ์๊ธฐ ๋๋ฌธ์, DIP๋ฅผ ์๋ฐํ์ง ์๊ฒ๋๋ค. ๋์ AppConfig์์ MemberService์ธํฐํ์ด์ค๋ ๊ทธ์ ๊ตฌํ์ฒด์ธ MemberServiceImpl์ ๋ถ๋ฅด๊ณ , ๊ตฌํ์ฒด๋ฅผ ๋ถ๋ฅผ๋ ์ธ์๋ฅผ ํตํด MemoryMemberRepository๋ฅผ ์์ฑํด์ ๋ฃ์ด์ฃผ๊ฒ ๋๋ค. (์์ฑ์ ์ฃผ์ ) ์ค๊ณ ๋ณ๊ฒฝ์ผ๋ก MemberServiceImpl ์ MemoryMemberRepository ๋ฅผ ์์กดํ์ง ์๋๋ค! ๋จ์ง MemberRepository ์ธํฐํ์ด์ค๋ง ์์กดํ๋ค. MemberServiceImpl ์ ์ฅ.. 2023. 7. 7. ์ด์ 1 ๋ค์