DI (Dependency Injection) 란?
- 소프트웨어 디자인 패턴 중 하나
- 객체 간의 의존성을 줄여 코드의 유연성과 유지보수성을 높임
// DI 사용 X
class A {
B b = new B(); // A가 B에 강하게 결합돼 있음
public void doSomething() {
b.someMethod(); // B의 기능을 사용함
}
}
- A 클래스가 B 클래스의 기능을 필요로 한다면 A가 B를 직접 생성해서 사용해야 함
- 그러나 이 방법은 A와 B가 강하게 결합 됨
- 즉, 나중에 B를 다른 걸로 교체, 확장성 저하, 유지보수, 테스트 등이 어렵게 됨
A 클래스가 B 클래스의 메서드를 사용한다면, A는 B에 `의존` 하고 있다고 표현 함
// DI 사용 O
class A {
private B b;
// 생성자 주입
public A(B b) {
this.b = b;
}
public void doSomething() {
b.someMethod(); // 여전히 B의 기능을 사용하지만, B가 뭔지는 모름
}
}
DI의 3가지 방식
1. 필드 주입 (Field Injection)
2. 수정자 주입 (Setter Injection)
3. 생성자 주입 (Constructor Injection)
'Information Technology > Spring' 카테고리의 다른 글
[Spring] View Templates, mustache, thymeleaf란? (0) | 2024.09.29 |
---|---|
[Spring] 점프 투 스프링부트 - 2 (0) | 2023.07.28 |
[Spring] 점프 투 스프링부트 - 1 (2) | 2023.07.26 |
[Spring] MVC 패턴이란? (1) | 2023.05.13 |
[Spring] 생성자 주입이란? (0) | 2023.05.12 |