의존성 주입 (DI)
의존성은 어떤 코드가 다른 코드에 의존하는 것을 의미한다. 예를 들어, 클래스 A가 클래스 B를 사용해야 한다면, 클래스 A는 B에 의존하고 있다고 할 수 있다.
DI(Dependency Injection)는 이런 의존성을 코드 내에서 직접 생성하는 대신, 외부에서 주입하는 방식으로 해결한다.
Spring은 다음과 같은 두 가지 방법으로 DI를 지원한다.
- 생성자 주입: 의존성이 필요한 객체를 생성자에서 받아서 주입하는 방식이다. 이 방식은 객체가 생성될 때 필요한 의존성을 미리 설정할 수 있어 더 안전한 방식으로 여겨진다.
- Setter 주입: 기본 생성자를 호출한 후, 필요할 때 setter를 통해 의존성을 주입하는 방식이다. 이 방법은 유연성을 제공하지만, 객체가 완전하지 않은 상태에서 사용될 수 있다는 단점이 있다.
Spring에서 DI를 사용하는 이유
DI를 사용하면 코드의 유연성과 테스트 용이성이 높아진다.
의존성을 외부에서 주입받기 때문에 코드 간의 결합도를 낮출 수 있고, 변경에 더 강한 구조를 만들 수 있다.
또한 테스트 시 목의 객체(Mock Object)를 사용하여 독립적으로 테스트할 수 있는 장점도 있다.
'Spring' 카테고리의 다른 글
[Spring] DispatcherServlet, ViewResolver , DI 방식 정리 (0) | 2024.10.07 |
---|---|
[Spring] Spring DI와 비즈니스 로직 (2) | 2024.10.06 |
[Spring] Spring에서의 객체 관리: XML 설정 파일 vs 어노테이션 기반 DI (4) | 2024.10.04 |
[Spring] 스프링 프레임워크 (1) | 2024.10.01 |
스프링 프레임워크 (0) | 2024.08.19 |