DI, IoC에 대해 설명해주세요.

코코·2023년 10월 27일
0

기술면접 준비

목록 보기
30/42

의존성 주입(Dependency Injection, DI)과 제어의 역전(Inversion of Control, IoC)는 소프트웨어 개발에서 객체 간의 결합을 줄이고 유연성과 유지 보수성을 향상시키는 데 사용되는 개념입니다.

의존성 주입(Dependency Injection, DI)

  1. 의존성 주입은 객체 간의 의존성을 외부에서 주입하는 디자인 패턴입니다.

  2. 클래스는 필요한 의존성을 직접 생성하지 않고, 외부에서 제공받아 사용합니다. 이를 통해 클래스 간의 결합도를 낮출 수 있습니다.

  3. 주로 인터페이스를 통해 의존성을 주입하므로, 코드의 유연성과 확장성을 높일 수 있습니다.

  4. DI는 생성자 주입, 메서드 주입, 속성 주입 등 다양한 방식으로 구현될 수 있습니다.

제어의 역전(Inversion of Control, IoC)

  1. 제어의 역전은 프로그램의 제어 흐름에 대한 권한을 프레임워크나 컨테이너로 넘기는 개념입니다.

  2. 일반적으로 애플리케이션의 흐름은 개발자가 작성한 코드에 의해 제어되지만, 제어의 역전을 통해 프레임워크나 컨테이너가 애플리케이션의 실행 흐름을 제어합니다.

  3. 이는 의존성 주입과 밀접한 관련이 있으며, 의존성 주입을 통해 객체 간의 결합을 완화하는 것이 제어의 역전을 가능하게 합니다.

  4. IoC 컨테이너는 일반적으로 객체의 라이프사이클을 관리하고, 의존성을 주입하여 애플리케이션을 구성합니다.

이러한 개념들은 코드의 재사용성과 유지 보수성을 향상시키며, 유연하고 테스트 가능한 코드를 작성하는 데 도움을 줍니다. 이를 통해 객체 간의 결합을 완화하고, 유연하고 확장 가능한 애플리케이션을 개발할 수 있습니다.

profile
Just Do It

0개의 댓글