개발툴/Unity

의존성 주입(Dependency Injection)

가든_ 2023. 12. 18. 00:51

✅ 의존성 주입(Dependency Injection)

객체간의 의존성을 외부에서 주입하는 방식으로 소프트웨어 디자인 패턴 중 하나이다.

의존성

  • 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다.
public class Store {

    private Pencil pencil;

}
출처: <https://mangkyu.tistory.com/150> [MangKyu's Diary:티스토리]

의존성 주입

  • 두 객체 간의 관계(의존성)을 맺어주는 것을 의존성 주입이라고 한다.
  • 생성자 주입, 필드 주입, 수정자 주입등 다양한 주입 방법이 있다.

의존성 주입의 필요성

  • 강한 결합의 문제
    • 유연하지 못해서 제약이 많고 확장성이 떨어진다.
  • 객체끼리가 아닌 클래스끼리 관계 맺음의 문제
    • 객체지향적 설계라고 볼 수 없다.

의존성 주입 방법

  • Interface를 만들어 다형성을 통해 해결한다.
  • (예시 코드는 참고자료에 잘 적혀있음)
의존성 역전(IOC)
인터페이스를 사용해서 의존성의 방향을 바꾸는 것
이를 통해 코드 변경없이 유연하게 클래스간 변경이 가능하다

📜참고자료

DI (Dependency Injection) 의존성 주입을 왜 하나요?

[Spring] 의존성 주입(Dependency Injection, DI)이란? 및 Spring이 의존성 주입을 지원하는 이유