의존성 관계 설정 - Dependency Injection
Last updated
Last updated
Dependency Injection
Asp.net Core와 Axus는 IoC(Inversion of Control)을 통해서 종속성 주입(Dependency Injection 이하 DI)을 사용하여 필요한 객체를 생성자에서 받아 사용하면 됩니다.
의존성 주입(Dependency Injection)은 소프트웨어 개발에서 중요한 개념 중 하나입니다. 이것은 객체 지향 프로그래밍과 관련이 있으며, 주로 코드의 재사용성, 테스트 용이성, 유지 보수성을 향상시키는 데 사용됩니다.
의존성 주입은 다른 객체나 모듈로부터 필요한 의존성을 외부에서 주입하는 디자인 패턴입니다. 이것은 주로 인터페이스나 추상 클래스를 사용하여 구현됩니다. 주요 목표는 결합도를 낮추고 의존성을 관리하기 쉽게 만드는 것입니다.
의존성 주입에는 여러 가지 형태가 있으며, 주로 세 가지 유형이 있습니다.
생성자 주입(Constructor Injection): 의존성을 객체 생성 시 생성자를 통해 주입합니다. 이 방법은 가장 일반적이며 명시적입니다.
메서드 주입(Method Injection): 의존성을 메서드를 통해 주입합니다. 이 방법은 객체가 생성된 후에도 의존성을 변경할 수 있습니다.
속성 주입(Property Injection): 의존성을 객체의 속성을 통해 주입합니다. 이 방법은 가장 느슨한 결합을 제공하지만 일부 런타임 오류 가능성이 있습니다.
의존성 주입을 사용하면 코드의 결합도를 낮추고 더 모듈화된 소프트웨어를 작성할 수 있으므로, 소프트웨어 아키텍처와 설계에 중요한 영향을 미칩니다.
위와 같이 사용하기 위해서는 ISampleRepository 인터페이스를 상속 받으면서 'ITransient' 인터페이스를 상속받으면 Module이 실행이 되면서 자동으로 IoC에 등록이 되어 DI 할 수 있게 됩니다.
모듈에서는 아래 코드를 통해 자동으로 등록이 됩니다.
모듈을 초기화 시 RegisterAssembly 호출하여 모듈내 모든 객체가 초기화가 되면 모든 객체가 등록이 된 상태이다. 브라우저에서 '/app/api/Sample'을 호출 하였을 때 SampleAppController 클래스의 생성자에서 ISampleRepository의 객체를 확인하면 된다. 만약 잘못 등록 되었거나 규칙에 맞지 않았다면 에러가 발생이 됩니다.