결합도와 인터페이스
스프링의 사용 목적은 클래스 간의 결합도를 낮추는 것이다.
결합도란 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 나타내는 것.
클래스 간의 연결이 많다면 하나의 수정을 위해 많은 클래스를 수정해야 할 것.
결합도를 낮추기 위해 다형성을 이용한다.
다형성 ()
인터페이스를 만들고 상속받는 함수를 구현하여
DI (Dependency Indection)
: 객체를 직접 생성하는 것이 아닌 객체를 외부에서 생성한 후 주입시켜주는 방식.
DI를 통해 모듈 간의 결합도가 낮아지고 유연성이 높아진다.
일체형인 것을 바꾸는 것보다 조립형 부품을 끼우는 방식
조립하는 역할은 스프링이 하는 것. 원하는 부품이 무엇인지 부품들이 어떤 결합을 원하는지만 설정하면 스프링이 결과를 내어 줄 것
객체 주입 방법
1) setter 이용
2) 생성자 이용
[참고]
https://hazung.tistory.com/192?category=980190
https://velog.io/@gillog/Spring-DIDependency-Injection