반응형
취준생 대상 면접질문에 대한, 저같은 팀장 입장에서 어떤 대답을 원하는지 알려드립니다.
- 정확한 개념 설명 → "객체 간 의존을 외부에서 주입"
- 코드 구조까지 언급 → new B()가 아닌 외부 주입으로 느슨한 결합
- 장점 언급 → 유지보수성, 테스트 용이성, Mock 주입 가능
- 자기 경험 → "저는 @Autowired 또는 생성자 주입을 주로 사용했습니다"로 실전에서 고민한 흔적까지 보여줌
저는 다음처럼 대답하는 지원자라면, 뽑습니다.
"의존성 주입은 객체 간의 의존 관계를 외부에서 주입해주는 설계 패턴으로, 스프링에서는 주로 컨테이너가 객체를 대신 생성하고 필요한 곳에 넣어주는 역할을 합니다.
만약 A라는 클래스가 B라는 클래스를 직접 new B()로 생성하면, A는 B에 강하게 결합되어 변경에 유연하지 못합니다. 하지만 DI를 통해 외부에서 B를 주입받으면 A는 B에 직접 의존하지 않고, 인터페이스 기반으로 느슨하게 연결될 수 있습니다.
이렇게 하면 유지보수성이 좋아지고, 나중에 B를 C로 교체하거나 테스트할 때 Mock 객체를 쉽게 주입해서 단위 테스트도 편해집니다.
예를 들어, 스프링에서는 @Autowired나 생성자 주입을 통해 Service나 Repository 같은 빈을 주입받아서 사용했습니다. 특히, 저는 실무에서 주로 생성자 주입을 사용해서 불변성 유지와 테스트의 용이성을 고려했습니다."
반응형
'취준생대상' 카테고리의 다른 글
머신러닝의 성능평가는 어떻게 했나요? - 면접질문 (0) | 2025.03.25 |
---|---|
Restful API 에 대해서 설명하세요 - 면접질문 (0) | 2025.03.17 |
자바의 클래스 상속에 대해서 설명하세요 - 면접질문 (1) | 2025.03.17 |
Null Pointer Exception 이란? - 면접질문 (0) | 2025.03.17 |
Java에서 스택과 힙 메모리에 대해서 설명하세요. - 면접질문 (0) | 2025.03.17 |