이슈

페이징을 원래는 API → UI 로 제공했었다.

Remote만 사용하고 Local DB는 사용하지 않았다.

image.png

image.png

  1. 왼쪽의 리스트 화면에는 가게의 기본 정보들이 제공된다.
  2. 오른쪽의 상세화면은 (1)에서 특정 가게를 클릭하면 이동된다.
  3. 만약 상세화면에서 즐겨찾기를 클릭하면, 즐겨찾기의 개수가 추가된다.
  4. 뒤로 가기를 눌러 리스트 화면에 들어와있을 때에는 즐겨찾기의 개수가 동기화 되어있지 않고, 과거의 개수로 되어 있다. (서버로 부터 다시 리스트 내용을 호출하지 않았기 때문)

해결방안 1 : 상시 데이터 요청

리스트 화면에 들어오게 되면 항상 서버에게 데이터를 요청하는 방법이다.

장점으로는 항상 최신화된 데이터를 수신받을 수 있다.

다만, 서버의 트래픽이 증가된다는 단점을 가진다. 만원짜리 서버에겐 벅차요…

안티패턴은 아니지만, 즐겨찾기 개수를 최신화 하기 위해서 항상 서버로 데이터를 요청하는건…

배보다 배꼽이 더 큰 행위라고 판단했다.

해결방안 2 : Bundle 전달

상세 화면에서 즐겨찾기의 변화가 생겼을 때 refresh 정보를 Bundle에 담아 뒤로 가기를 눌러 리스트 화면에 도착했을 때 전달할 수 있다. 리스트 화면에서는 Bundle에 refresh 키워드가 true라면 강제 새로고침을 수행하는 방법이다.

방법 1에 비해 서버로 데이터 요청을 줄일 수 있다는 장점을 가진다. 그럼에도 불구하고, 즐겨찾기의 개수를 최신화 하기 위해서 페이징 데이터를 새로 요청한다는 여전히 배보다 배꼽이 더 큰 행위라고 판단했다.