다음 코드처럼 객체가 사용할 의존 대상을 내부에서 생성하지 않고 외부에서 전달받는 기법의 명칭을 쓰시오.
interface Reader {
String read();
}
class Parser {
private final Reader reader;
Parser(Reader reader) {
this.reader = reader;
}
}모범답안
의존성 주입(Dependency Injection, DI)
풀이와 판단 근거
의존성 주입은 객체가 필요한 협력 객체를 직접 생성하지 않고 생성자, 설정자 또는 컨테이너를 통해 외부에서 전달받는 방식이다. Parser는 구체 Reader를 직접 만들지 않으므로 파일·메모리 등 다른 구현으로 교체하기 쉽고 테스트 대역도 주입할 수 있다.
제어의 역전은 더 넓은 원리이며, 코드에 나타난 구체적인 제공 방식은 생성자 의존성 주입이다.
자주 틀리는 지점
- 제어의 역전만 답하고 구체 기법을 쓰지 않음
- 서비스 로케이터로 답함
- 상속을 이용한 구현 재사용으로 설명
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.