이 글은 김영한 강사님의 강의와 자료를 학습한 뒤 정리하는 글입니다 생성자 주입으로 어떻게 DIP를 지키는지 보자. public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository()); } public OrderService orderService() { return new OrderServiceImpl( new MemoryMemberRepository(), new FixDiscountPolicy()); } } 생성자를 통해 외부(AppConfig)에서 구현 객체를 생성하고 연결해준다. MemberServiceImpl의 코드를 보면 인터페이스인 membe..