본문 바로가기

의존성주입2

DI (Dependency Injection) 의존성 주입 코루틴으로 기존 프로그램 구조를 변경하다가, DI에 대해 다시 재정리가 필요할 것 같아서 재정리..합니다 DI (Dependency Injection) 의존성 주입 직접 객체를 생성하지 않고, 외부로부터 주입받는 방법 (객체의 의존성을 주입) 왜 이런 개념을 사용해야하는지 알아보겠습니다 (공식문서 참조) 의존성을 주입하지 않는 예시(클래스에서 인스턴스를 직접 생성) class Car { private val engine = Engine() fun start() { engine.start() } } fun main(args: Array) { val car = Car() car.start() } 위 코드에서의 문제점은 😱 Car, Engine이 너무 밀접하게 연결됨 (테스트가 어려움) 😱 Car에서 Engi.. 2022. 12. 5.
[Dagger2] #1 DI 기본개념 안녕하세요 오랜만입니다 ㅎㅎ 오늘은 자주 사용되는 의존성 주입에 대해 정리해보고자 합니다 :) 함께 DI를 정복해봅시다!📚 ✅ DI (Dependency Injection) 의존성 주입의 개념과 필요성에 대해 알아봅시다 🔍 의존성 주입이란 ? - 구성요소간 의존관계가 소스코드 내부가 아닌, 외부를 통해 정의 예를 들어, 왼쪽은 A 객체에서 직접 B를 생성 오른쪽은 A 객체 외부에서 B를 생성 후 setter() 혹은 constructor를 통해 A에 주입 즉, 오른쪽과 같은 경우가 의존성 주입이 적용된 사례라고 생각하면 됩니다 여기서 객체를 생성하고 넘겨주는 외부 역할을 하는 것을 DI Framework 라 합니다 또한 객체의 생성 제어를 외부 Framework에서 담당하는 것을 IoC라 합니다 * IO.. 2022. 3. 2.