본문 바로가기
웹개발/spring && springboot

스프링의 Dependency Injection(DI)

by 지구별 여행자 임탱 2024. 2. 28.
728x90

스프링의 Dependency Injection(DI) 
스프링 프레임워크의 DI(Dependency Injection, 의존성 주입)는 자바 엔터프라이즈 어플리케이션 개발에 있어 핵심적인 원칙 중 하나입니다. 

Dependency Injection 개념 도입:

DI 는 Martin Fowler에 의해 정의된 객체 지향 프로그래밍에서의 디자인 패턴입니다. 이 패턴은 의존성을 직접 생성하지 않고 외부에서 받아 사용하는 방법을 말합니다. 클래스 자체적으로 높은 결합도를 갖거나, 의존성을 내부에서 생성하는 것은 소프트웨어 설계에서 원하는 유연성과 재사용성을 저해할 수 있습니다.


DI의 구현 메커니즘:
Setter Injection: 객체의 setter 메서드를 이용하여 의존성을 주입합니다. 이 방법은 선택적 의존성이 존재하는 경우 적합합니다.
Constructor Injection: 객체 생성 시점에 생성자를 통해 의존성을 주입합니다. 이 방법은 의존성이 필수적인 경우에 적합하며, 불변성을 보장합니다.

DI의 이점: 

DI를 사용함으로써 코드는 더 모듈화되며, 단위 테스트가 용이해지고, 결합도가 낮아져 유지 보수성이 향상됩니다.
스프링 프레임워크와 DI: 스프링 프레임워크는 DI를 통해 객체 간의 결합을 줄이며, 개발자가 객체 관리의 복잡성으로부터 자유롭게 해, 보다 직관적이고 유연한 코드 작성을 가능하게 합니다.