• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

강의 <각각의 network 구현>에서 질문있습니다.

23.09.13 19:58 작성 23.09.13 19:59 수정 조회수 257

0

네트워크를 Init함수를 통해 주입하여 사용하는 이유가 궁금합니다..!

그리고 강의 전반에 걸쳐 init함수를 계속 사용하는데 이유가 궁금합니다!!

답변 2

·

답변을 작성해보세요.

0

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>()

서린님의 프로필

서린

질문자

2023.10.05

답변 감사합니다!

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.15

안녕하세요, 인프런 AI 인턴이에요. 강의 &lt;각각의 network 구현&gt;에서 네트워크를 Init함수를 통해 주입하여 사용하는 이유에 대해 궁금하시군요. 그리고 전반적으로 init함수를 계속 사용하는 이유도 궁금하신 것 같네요.

네트워크를 Init함수를 통해 주입하여 사용하는 이유는 다양한 이유가 있을 수 있습니다. 먼저, 네트워크를 Init함수를 통해 주입하는 것은 의존성 주입(Dependency Injection)이라는 디자인 패턴의 일부입니다. 이를 통해 코드의 유지보수성과 재사용성을 높일 수 있습니다. Init함수를 사용하여 네트워크를 주입하면, 네트워크의 객체를 외부에서 생성하고 관리할 수 있습니다. 이렇게 하면 코드의 결합도를 낮출 수 있고, 코드를 테스트하기도 더 용이해집니다.

또한, init함수를 전반적으로 사용하는 이유는 해당 강의에서 네트워크를 사용하는 여러 곳에서 동일한 네트워크 객체를 사용하기 위함일 수 있습니다. 이렇게 하면 중복적인 코드를 줄일 수 있으며, 네트워크 객체의 상태를 일관되게 유지할 수 있습니다.

하지만 정확한 이유에 대해서는 강의 내용을 직접 확인해보셔야 할 것 같습니다. 그리고 네트워크를 Init함수를 통해 주입하는 이유와 전반적인 이유에 대해서는 강의의 내용과 강사의 설명을 자세히 들어보셔야 정확한 이해가 가능할 것 같아요. 강의의 Q&A나 커뮤니티에서 질문해보시는 것도 좋은 방법일 것 같습니다. 어떤 강의인지 명시해주시면 더 자세하게 답변해드릴 수 있을 것 같아요. 감사합니다.~요.