작성
·
217
0
안녕하세요 좋은 강의 만들어 주셔서 감사합니다.
많은 분들이 비슷한 질문을 해주신 것으로 생각되는데, Util성 클래스와 Holder인터페이스를 구현한 구체클래스의 의존주입의 사용 기준에 대해 여쭤보려고 합니다.
강의에서 예로 들어주신 SystemClockHolder의 경우 많은 예제에서 Util클래스로 만들어 사용할 것이라고 생각됩니다.
하지만 이렇게 되면 강의에서 말씀해주신 것처럼 메소드 내부에 사용자가 예측할 수 없는 값이 들어가게 되어 테스트하기 어려워지는 신호가 될 수 있다고 생각합니다.
반면 이러한 Holder가 너무 많아질 경우 서비스 계층에서 의존주입 받아야할 Holder가 너무 많아지지는 않을까 하는 고민도 되었습니다.
강사님께서는 어떤 기준으로 Util클래스와 인터페이스 기반의 의존주입 클래스를 구분하시는지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
소중한 질문 주셔서 감사합니다, skehdxhd님.
Util 클래스와 인터페이스 기반의 의존주입 클래스를 구분할 때 고려할 수 있는 몇 가지 기준을 말씀드리겠습니다.
단점으로 말씀하신, Holder 인터페이스 구현체의 의존주입 대상이 많아질 경우에 대해서는 Spring Framework의 ApplicationContext
를 통한 통합 테스트와 같이 애플리케이션 컨텍스트 단위로 테스트를 수행하거나 Testcontainers와 같은 도구를 사용하여 실제 의존성을 포함하는 통합 환경에서 테스트를 진행할 수 있습니다.
관련 내용은 Spring Boot Reference Documentation에 자세히 나와 있습니다. 예를 들어, Spring Boot v3.1.5의 18.16. Testing부터 테스트 관련하여 자주 묻는 질문들에 대한 답변이 있고, 인터페이스를 기반으로 Testcontainers를 사용하는 방법은 7.8.4. Testcontainers의 Using Testcontainers at Development Time 섹션에서 찾아볼 수 있습니다.
이러한 문서들을 통해 더 깊이 있게 학습하시면 도움이 될 것입니다.