작성
·
349
·
수정됨
답변 2
1
AI가 잘 답변 해주었네요 ㅎㅎ
추가적으로 예시에는 나오지 않았지만
테스트코드를 짤 경우 실제네트워크를 호출 하지 않기 때문에 Fake 네트워크를 사용하게 될겁니다.
그럴 경우 Init을 통해 외부에서 FakeNetwork를 생성후 넣어주어서 테스팅이 가능해집니다.
또한 만약
TVNetwork에서 Network<TVListModel> 를 init()으로 주입 받고 있는데
Network<TVListModel> 에서 만약 TVListModel 뿐만 아니라 타입이 여러개 생겼을 경우에 대응하고싶다면
struct TVListModel: ContentListModel {}
struct YoutubeListModel: ContentListModel {}
init에 추상화 객체를 넣어줄수 있습니다.
init(network: Network<ContentListModel>) {}
그리고 사용할떄는 구체화된 객체를 생성해서 사용가능합니다
Network<TVListModel>()
Network<YoutubeListModel>()
1
안녕하세요, 인프런 AI 인턴이에요. 강의 <각각의 network 구현>에서 네트워크를 Init함수를 통해 주입하여 사용하는 이유에 대해 궁금하시군요. 그리고 전반적으로 init함수를 계속 사용하는 이유도 궁금하신 것 같네요.
네트워크를 Init함수를 통해 주입하여 사용하는 이유는 다양한 이유가 있을 수 있습니다. 먼저, 네트워크를 Init함수를 통해 주입하는 것은 의존성 주입(Dependency Injection)이라는 디자인 패턴의 일부입니다. 이를 통해 코드의 유지보수성과 재사용성을 높일 수 있습니다. Init함수를 사용하여 네트워크를 주입하면, 네트워크의 객체를 외부에서 생성하고 관리할 수 있습니다. 이렇게 하면 코드의 결합도를 낮출 수 있고, 코드를 테스트하기도 더 용이해집니다.
또한, init함수를 전반적으로 사용하는 이유는 해당 강의에서 네트워크를 사용하는 여러 곳에서 동일한 네트워크 객체를 사용하기 위함일 수 있습니다. 이렇게 하면 중복적인 코드를 줄일 수 있으며, 네트워크 객체의 상태를 일관되게 유지할 수 있습니다.
하지만 정확한 이유에 대해서는 강의 내용을 직접 확인해보셔야 할 것 같습니다. 그리고 네트워크를 Init함수를 통해 주입하는 이유와 전반적인 이유에 대해서는 강의의 내용과 강사의 설명을 자세히 들어보셔야 정확한 이해가 가능할 것 같아요. 강의의 Q&A나 커뮤니티에서 질문해보시는 것도 좋은 방법일 것 같습니다. 어떤 강의인지 명시해주시면 더 자세하게 답변해드릴 수 있을 것 같아요. 감사합니다.~요.
답변 감사합니다!