본문 바로가기
반응형

GraphQL2

Apollo Client - Cache 사용하기 👻 Cache란? HTTP의 캐싱 HTTP는 Cache 기능을 적용해 불필요한 리소스 재요청을 방지한다. 아래와 같은 여러 가지 Cache 방법을 가지고 있다. Cache-Control ETag Last-Modified HTTP는 이러한 정책들을 각각의 URL에 설정하는 형식으로 캐싱이 이루어진다. 즉, 각 엔드포인트마다 Cache 방법을 설정할 수 있다. Rest API는 HTTP의 기능을 모두 사용할 수 있기 때문에 캐싱 역시 가능하다. 그러나 GraphQL은 Endpoint가 하나(/graphql이라는 URL)이기 때문에 HTTP에서 제공하는 캐싱 기능을 사용할 수 없다. 그렇기 때문에 같은 리소스를 요청하더라도 실제로 네트워크를 거쳐야 한다. 이러한 점을 보완하기 위해 Apollo Client에서.. 2022. 8. 14.
Apollo Client - Cache 기본 개념 Apollo Client에서는 GraphQL 쿼리의 응답 내용을 구조화시켜 로컬 InMemoryCache에 저장한다. 이를 통해 서버에서 응답을 받기 전에 캐시를 참조해 데이터를 받아오는 등의 기능이 가능하기 때문에 서버와의 통신 없이도 쿼리 응답을 받을 수 있어 좀 더 빠른 응답을 받을 수 있다. 👀 Cache를 어떻게 저장할까? Apollo Client의 InMemoryCache는 flat lookup table를 가지고 있는데 이 테이블은 각 Object의 참조값을 가지고 있어 이를 통해 각 object를 찾아갈 수 있다. 응답 데이터의 hierarchical한 구조를 flat한 lookup table에 저장하기 위해 아래와 같은 구조화의 과정을 거친다. 참고) Apollo Client의 공식 문서.. 2021. 8. 27.
반응형