
무한 스크롤을 구현하기 위해 updateQuery를 사용하여 캐시에 있는 이전 데이터에 새로 받아오는(fetchMoreResult) 데이터를 추가하던 중, 무한스크롤이 작동하지 않는 이슈가 간헐적으로 발생했다!
계속 안되는 것도 아니고 되다 안되다 함..
콘솔의 에러메세지를 통해 캐시 데이터가 손실되었다는 것을 알 수 있었고,
실제로 처음 받아오는 데이터는 정상이지만 관리자 도구의 apollo 디버깅 툴을 사용하여 캐시의 데이터를 확인해보니,
실제로 무한 스크롤 이후에 비어있는 데이터가 있었다!!


무한스크롤이 동작할 때 위의 두 개의 쿼리로 두 개의 요청을 보내고 있다.
두 쿼리 모두 각각 user 객체가 포함되어 있는데,
이 객체를 요청할 때 id값을 부르지 않고 있기 때문에
캐시에 데이터가 저장되는 과정에서 서로 일치하는 데이터를 찾지 못해서 데이터 손실이 발생된다.


쿼리에 id를 추가하거나, 동일한 키를 리턴하도록 작성하면 해결된다!
💡 왜 하필 id ??
userId와 nickName도 unique한 값인데, userId나 nickName만 적어서는 해결되지 않는 이유가 궁금했다,,
그 이유는 apollo에서 id 혹은 _id를 이름으로 가지는 키를 기준으로 선별하도록 정해져있기 때문이다!