• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

의존성 주입 방법들 장단점

22.03.27 02:00 작성 조회수 343

0

각 DI 방법들 중 저는 개발할때 private final 키워드를 사용해서 @RequiredArgsConstructor로 주입하는데 이게 생성자 주입이고 테스트케이스 때는 필드주입을 사용하는데 제가 이렇게 사용하는게 주변 친구들과 관례때문에 이렇게 사용하는데 이것도 문제죠 알지도 못하면서 일단 쓰는게,, 서론이 너무 길네요 죄송합니다

 

각설하고 제 질문에 대해 말하자면 생성자 주입을 권장하는 이유가 이 final이란 키워드를 사용할 수 있어서 인가요? 보니까 생성자 주입을 제외한 다른 의존성 주입 방법들은 final 키워드를 못쓰는거 보니까 컴파일 레벨때 의존성 주입을 못하는거 같더라구요 이게 맞나요? 만약 아니시라면 final 키워드는 왜 못쓰는건가요?

 

그리고 테스트케이스에서는 왜 생성자주입 말고 필드 주입을 사용하나요? 테스트케이스는 해당 클래스 단일로 실행되고 테스트되어서 상호참조 문제가 일어나지 않기 때문에 필드주입을 사용하는건가요? 

늦은 시간에 무료 강의에 이렇게 장문 질문남겨 죄송합니다. 유튜브에서도 잘 보고있습니다!!

답변 1

답변을 작성해보세요.

2

음.. 제가 질문을 잘 이해를 못하겠습니다. 테스트건 테스트가 아니건, 생성자 주입을 사용할거냐, 세터 주입을 사용거냐는 해당 의존성이 반드시 필요한 의존성인지 없어도 되는 의존성인지에 따라 달라질 것 같습니다. 반드시 필요한 생성자 주입이 더 적당하죠. 그 의존성 없이는 해당 객체를 못만들테니까, 해당 객체가 반드시 필요로 하는 의존성을 가진 상태로만 객체를 만들 수 있도록 강제할 수 있죠.