DI

Lee·2023년 3월 28일
0

면접 스터디

목록 보기
3/18

의존관계

한 객체가 다른 객체를 사용하는 경우 의존관계가 있다고 한다.

public class Store {
	private Book book;
}

// Store 객체가 Book 객체에 의존관계가 있다.

DI

  • 각 객체들 사이에 의존관계가 있을 때 의존 객체를 직접 생성하여 의존관계를 해결하는 것이 아니라 외부에서 생성된 객체를 주입받아 사용하는 방법
public class Service{
	// 개발자가 직접 주입
	private Repository repository = new RepositoryImpl();

	// 스프링에서 주입받아 사용
	private final Repository repository;

    @Autowired
	public Service(Repository repository){
		this.repository = repository;
	}
}

장점

  1. 객체 간 결합도가 줄어든다.
    DI를 사용하지 않고 내부에서 의존관계를 주입할 경우 의존대상이 변할 때 고려해야할 점이 많아지는데 DI를 사용하게 되면 이 경우에 구현을 수정할 일이 없어진다.

  2. 재사용성이 높은 코드가 된다.

  3. 테스트하기 좋은 코드가 된다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글