의존성 주입(Dependency Injection, DI)
의존성이란 간단하게 설명해서 두 객체간의 관계가 서로 독립적인 정도를 말한다.
A라는 라이브러리를 사용하기 위해 B라는 라이브러리가 필요할 때 의존성이 있다고 말한다.
의존성 주입은 프로그램 디자인이 결합도를 느슨하게 되도록하고 분리하는 것이다.
만약 한가지 라이브러리에 모든 기능을 넣는다면 그 프로젝트의 거시적인 이해가 굉장히 쉬워지겠지만,
이후의 유지 보수 과정을 생각하면 굉장히 좋지 못하다고 할 수 있다.
따라서 모듈간의 응집도를 높이고 결합도를 느슨하게 되도록 해야한다.
의존성 주입의 기본적인 의미는 ‘외부'에서 클라이언트에게 서비스를 제공(주입)하는 것이다.
다시 말해, 객체가 필요로 하는 어떤 것을 객체 내에서 해결하는 것이 아닌 외부에서 전달해주는 것으로 볼 수 있다.
의존성 주입의 장점
- 코드간 재사용성 증가
- 클래스간 결합도를 낮춰 하나의 클래스에 문제가 생겨도 다른 클래스를 볼 필요가 없어진다.
- 유지 보수에 용이
- 확장성 증가
단점
- 전체 구조가 복잡해진다.
- 빌드 시간이 오래 걸린다.
- 초기 개발 비용이 많이 든다.
'수업 내용 > [Spring] Spring' 카테고리의 다른 글
트랜잭션 (Transaction) (0) | 2023.08.07 |
---|---|
MVC 패턴 controller와 service 차이 (0) | 2023.08.04 |
[spring] 0. 환경설정 (0) | 2023.06.26 |