의존이란 무엇인가?
의존이란, 한 기능을 구현하기 위해 다른 구성 요소를 필요로 하는 것을 의미한다. 예를 들어 객체를 생성하거나, 메서드를 호출하거나, 데이터를 사용하는 것들이 이에 해당한다.
의존의 특징은 무엇인가?
의존의 주요 특징은 다음과 같다:
- 순환 의존은 좋지 않다. 이는 변경이 연쇄적으로 전파될 수 있기 때문이다.
- 의존하는 대상은 가급적 적을 수록 좋다.
의존 대상을 줄이는 방법은 무엇인가?
의존 대상을 줄이는 방법에는 다음과 같은 것들이 있다:
- 기능 별로 분리를 고려한다.
- 여러 의존 대상을 단일 기능으로 묶어 생각해본다.
의존 대상 객체를 직접 생성하면, 생성 클래스가 바뀔 때 의존하는 코드도 바뀌게 된다.
의존 대상 객체를 직접 생성하지 않는 방법은 무엇인가?
의존 대상 객체를 직접 생성하지 않는 방법에는 다음과 같은 것들이 있다:
- 팩토리나 빌더를 사용한다.
- 의존 주입(Dependency Injection)을 활용한다. 이는 생성자나 메서드를 이용하여 의존 대상을 주입하는 방식이다.
- 서비스 로케이터(Service Locator)를 사용한다.
DI의 장점은 무엇인가?
DI의 주요 장점은 다음과 같다:
- 상위 타입을 사용할 경우, 의존 대상이 바뀔 때 설정만 변경하면 된다.
- 의존하는 객체 없이 대역 객체를 사용해 테스트를 할 수 있다.