728x90
- 스프링에서의 의존성 주입이란
- 스프링에서는 어떻게 구현하는가?
- 왜 의존성 주입을 사용해야 하는가?
스프링에서의 의존성 주입이란
- 객체 지향 프로그래밍에서 중요한 기술.
- 객체가 다른 객체들에 의존할 때 필요한 의존 객체들을 외부에서 주입해주는 방법
스프링에서는 어떻게 구현하는가?
- 생성자 주입
생성자를 통해 의존성을 주입받음. 객체가 생성될 때 필요한 모든 의존성이 제공되어야 하므로, 객체는 항상 완전하게 초기화 된 상태로 사용될 수 있음. - 세터 주입
세터 메소드를 통해 의존성을 주입받음. 이 방법은 객체 생성 후에도 의존성을 변경할 수 있어 유연성을 제공하지만, 객체가 완전히 초기화 되지 않은 상태로 사용될 가능성이 있음. - 필드주입
필드에 직접 의존성을 주입함. 이 방법은 코드가 간결해지지만, 테스트와 코드 재사용 측면에서는 권장되지는 않음.
스프링 프레임워크는 이러한 의존성 주입 기능을 내부적으로 구현하기 위해 리플렉션, 프록시, 빈 라이프사이클 관리 등 다양한 기술을 사용함.
왜 의존성 주입을 사용해야 하는가?
- 결합도 감소
객체들 사이의 의존 관계가 완화되어, 각 객체의 변경이 다른 객체에 미치는 영향을 줄일 수 있음. - 코드 재사용 증가
각 객체가 특정 구현에 덜 의존적이기 때문에, 다양한 시나리오에서 재사용할 수 있음. - 테스트 용이성 향상
의존성을 외부에서 주입할 수 있으므로, 테스트용 구현이나 모의 객체(Mock objects) 를 쉽게 주입하여 테스트가 용이해짐. - 코드의 가독성 및 유지보수성 향상
의존성이 명확하게 구분되어 관리되므로, 코드의 이해와 수정이 쉬워짐.
728x90
'99클럽 TIL' 카테고리의 다른 글
24일차 TIL Spring Bean (0) | 2024.05.11 |
---|---|
99클럽 코테 스터디 23일차 TIL Spring AOP (0) | 2024.05.10 |
99클럽 코테 스터디 21일차 TIL Spring DI 와 IoC, DI와 DIP (1) | 2024.05.08 |
99클럽 코테 스터디 20일차 TIL Spring 의존성 주입 (0) | 2024.05.07 |
99클럽 코테 스터디 19일차 TIL Spring 제어의 역전(IoC) (0) | 2024.05.06 |
Comment