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