개발하는 체대생

DI(Dependency Injection)란? 본문

취업스터디

DI(Dependency Injection)란?

개발하는체대생
질문 : DI(Dependency Injection)에 대한 설명과 해당 기술의 장점에 대해 설명해주세요.
답변 : DI(Dependency Injection)란 의존성 주입이라는 의미로 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식입니다.
DI(의존성 주입)를 사용하면 모듈 간의 결합도가 낮아지고 유연성이 높아지며 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있다는 장점이 있습니다.

DI(Dependency Injection)란?

DI(Dependency Injection)는 소프트웨어 개발에서 사용되는 디자인 패턴 중 하나로, 의존성을 주입하는 것을 의미합니다. 의존성은 한 객체가 다른 객체에 의존하는 상황을 말합니다. 이러한 상황에서 의존하는 객체를 직접 생성하거나 참조하는 것보다, DI를 통해 외부에서 해당 객체를 주입하여 의존성을 해결할 수 있습니다.

DI는 다음과 같은 방식으로 사용됩니다.

  1. 생성자 주입(Constructor Injection): 생성자를 통해 의존성을 주입하는 방식입니다.
  2. 메서드 주입(Method Injection): 메서드를 통해 의존성을 주입하는 방식입니다.
  3. 속성 주입(Property Injection): 속성을 통해 의존성을 주입하는 방식입니다.

 

DI(Dependency Injection)의 장점

  1. 유연성: DI를 사용하면 객체 간의 결합도를 낮출 수 있어, 유연한 코드를 작성할 수 있습니다. 의존성을 외부에서 주입하기 때문에 객체를 변경하더라도 영향을 최소화할 수 있습니다.
  2. 테스트 용이성: DI를 사용하면 의존하는 객체를 모의(mock) 객체로 대체하여 테스트를 수행할 수 있습니다. 이렇게 하면 의존성을 가진 객체를 변경할 필요 없이 해당 객체의 행동을 테스트할 수 있습니다.
  3. 코드 재사용성: DI를 사용하면 의존성을 주입하는 부분을 별도로 분리하여 코드를 재사용할 수 있습니다. 이렇게 하면 유지보수 비용을 줄일 수 있습니다.

 

 

또한 DI는 객체지향 5대 설계 원칙 중 하나인 의존성 역전 원칙(Dependency Inversion Principle)과 밀접한 관련이 있습니다.

 

*의존역전원칙(Dependency Inversion Principle)

이 원칙은 상위 수준의 모듈이 하위 수준의 모듈에 의존해서는 안 되며, 추상화된 인터페이스에 의존해야 한다는 원칙입니다. 예를 들어, 삼성핸드폰이라는 하위 수준의 모듈의 의존하는 것이 아니라 핸드폰이라는 추상화된 인터페이스에 의존해야한다는 원칙입니다.

'취업스터디' 카테고리의 다른 글

제네릭이란?  (0) 2023.03.29
MSA(Micro Service Architecture)란?  (0) 2023.03.29
DB에서 Index란?  (0) 2023.03.28
RESTful API란?  (0) 2023.03.27
객체지향 프로그래밍(OOP)에 대한 설명  (0) 2023.03.27
Comments