상세 컨텐츠

본문 제목

App Architecture. Networking

TIL/App Architecture

by box-jeon 2019. 5. 2. 23:02

본문

Netwoking 기능을 누가 가질 것이냐. Controller-Owned Networking과 Model-Owned Networking 두 가지 방법을 설명하고 있습니다. Architecture는 MVC로 가정하고 설명을 이어가는데, 전반적으로 Model-Owned 방식이 더 낫다고 합니다. 그 이유로

 

1. ViewController의 크기가 줄어듭니다. 늘 ViewController가 너무 크다고 불평했었죠.

2. Networking이 캡슐화됩니다. 이 데이터가 네트워크에서 온 것인지 로컬에서 온 것인지 ViewController가 알아야할 필요가 없어집니다.

3. 여러 ViewController들간에 데이터 공유가 쉬워집니다. Model 레이어에서 해당 데이터를 fetch하거나 observe할 수 있습니다.

 

Fetch한 데이터를 해당 ViewController에서만 사용하는 경우에는 Controller-Owned Networking 방식도 나쁘지 않지만, fetch한 데이터를 다른 ViewController들과 공유해야하는 상황이라면 반드시 Model-Owned Networking을 선택해야 한다고 설명하고 있습니다. 챕터 맨 마지막에 이르러서는 MVC가 아니라 MVVM인 경우에 대해 짤막하게 설명하는데, Model-Owned Networking 방식은 MVC인 경우와 동일하지만, Controller-Owned Networking 방식이 MVVM으로 오면 ViewModel-Owned Networking 방식이 된다고 합니다. 최근 브런치에 시험 중인 방식이 딱 이것인데, networking을 service로 한번 wrap해서 ViewModel이 들고 있도록 하는 방식입니다.

관련글 더보기

댓글 영역