스프링 의존 관계 (Dependency)



의존 관계 (Dependency)


그림 1

위 그림에서 A ClassB Service를 의존’ 한다.
(A Class 내부에서 B Service를 생성하거나, 멤버/로컬 변수로 사용하거나, B의 메서드를 호출하는 것들을 의미)

class A_Class {
    
    B_Service b_service;
    
    function() {
        ...
        b_service = new B_Service();
        b_service.doIt(3L);
        ...
    }
}

class B_Service {
    function(Long arg) {
        ...
    } 
}


만약 B Service가 변경되면 A Class 내부에서 사용되는 로직중 B Service와 관련된 로직은 전부 변경되어야 함을 의미한다.
A Class재사용하기 어렵다. (= Component/Service가 될 수 없다)

Component 란, 소스 코드의 아무런 수정 없이 ‘재사용이 가능한’ 수준의 모듈