의존성 주입정의 : 객체 간의 의존 관계를 외부에서 주입하는 설계 패턴 원칙상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야 한다.두 모듈은 모두 추상화에 의존해야 한다추상화는 세부사항에 의존하지 않아야 한다.장점모듈화와 재사용성객체 간의 결합도를 낮추어 모듈화가 쉬워지고, 코드의 재사용성을 높일 수 있다테스트 용이성의존성을 외부에서 주입받기 때문에, 테스트시 Mock 객체를 쉽게 주입할 수 있다.유지보수성객체 간의 직접적인 결합이 줄어들어, 변경 사항이 다른 객체에 미치는 영향을 최소화 할 수 있다.코드 가독성의존성을 명시적으로 주입하므로 코드의 의도를 파악하기 쉽다확장성객체를 쉽게 교체하거나 확장할 수 있기 때문에, 유연한 시스템 설계가 가능하다. 단점초기 설정 복잡성Spring과 같은 DI 컨..