DI2 Spring - ๋ค์ํ ์์กด๊ด๊ณ ์ฃผ์ ๋ฐฉ๋ฒ 1. ์์ฑ์ ์ฃผ์ ์ด๋ฆ ๊ทธ๋๋ก ์์ฑ์๋ฅผ ํตํด์ ์์กด ๊ด๊ณ๋ฅผ ์ฃผ์ ๋ฐ๋ ๋ฐฉ๋ฒ ํน์ง ์์ฑ์ ํธ์ถ์์ ์ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค. ๋ถ๋ณ, ํ์ ์์กด๊ด๊ณ์ ์ฌ์ฉ @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; t.. 2023. 7. 12. Spring - ์ง๊ธ๊น์ง์ ์ ์ฒด ํ๋ฆ ์ ๋ฆฌ ์ง๊ธ๊น์ง์ ์ฝ๋ ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ ์๋ก์ด ํ ์ธ ์ ์ฑ ์ ์ฉ๊ณผ ๋ฌธ์ ์ (dip, ocp ์๋ฐ) ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ (์ถ์ํ์๋ง ์์กด, ๊ตฌ์ฒดํ์๋ ์์กด๋ ์๋๋ก) AppConfig ๋ฆฌํฉํฐ๋ง (์ ์ฒด ์ฑ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ ๋ฐ๋ก appconfig๋ก ๋นผ๋ ) ์๋ก์ด ๊ตฌ์กฐ์ ํ ์ธ ์ ์ฑ ์ ์ฉ ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ ๋คํ์ฑ ๋๋ถ์ ์๋ก์ด ์ ๋ฅ ํ ์ธ ์ ์ฑ ์ฝ๋๋ฅผ ์ถ๊ฐ๋ก ๊ฐ๋ฐํ๋ ๊ฒ ์์ฒด๋ ์๋ฌด ๋ฌธ์ ๊ฐ ์์ ์๋ก์ด ํ ์ธ ์ ์ฑ ์ ์ฉ๊ณผ ๋ฌธ์ ์ ์๋ก ๊ฐ๋ฐํ ์ ๋ฅ ํ ์ธ ์ ์ฑ ์ ์ ์ฉํ๋ ค๊ณ ํ๋ ํด๋ผ์ด์ธํธ ์ฝ๋์ธ ์ฃผ๋ฌธ ์๋น์ค ๊ตฌํ์ฒด๋ ํจ๊ป ๋ณ๊ฒฝํด์ผํจ ์ฃผ๋ฌธ ์๋น์ค ํด๋ผ์ด์ธํธ๊ฐ ์ธํฐํ์ด์ค์ธ DiscountPolicy ๋ฟ๋ง ์๋๋ผ, ๊ตฌ์ฒด ํด๋์ค์ธ FixDiscountPolicy ๋ ํจ๊ป ์์กด -> DIP ์๋ฐ AppConfig ๋ฆฌํฉํฐ๋ง ๊ตฌ์ฑ .. 2023. 7. 7. ์ด์ 1 ๋ค์