TIL
의존성 주입(Dependency Injection)
기주그지마
2024. 6. 10. 17:02
의존성 주입을 쓰는이유
1. 클래스간 결합도를 낮출 수 있다
-> 결합도를 낮춘다는 것(의존성을 줄인다는 것)은 변화에 강하다는것
객체의 생성과 사용을 분리한다
다른 객체를 직접 생성하지않고 외부에서 필요한 객체를 주입받기 때문에 각 역할을 분리할 수 있다
2. 테스트가 가능하다*
-> 테스트코드를 작성하는 것은 별도의 모의 객체를 생성하고 그 객체의 함수가 어떤 값을 반환한다고 가정한다(모킹)
-> 이것도 의존성을 낮춰줘서 가능한일.
의존성 주입을 하지않으면 모의 객체의 함수를 모킹하는것이 아니라 실제 클래스의 함수를 가져와야하는데, 그럼 문제가 발생한다.
실제로 동작하면 안되는 것들이 동작하게 될 수 있다.
실제객체가 아닌 모의객체를 이용한 테스트가 가능해진다
(예시1 : db연결이 실제로 이루어지면 안된다.
1.테스트가 실제 db의 데이터에 영향을 줘서는 안된다
2.어떤 db든 상관없이 로직이 이루어져야한다. )
(예시2 : 메일전송
실제로 메일이 전송되어선 안된다)