DacheQL - 오픈소스 GraphQL 캐싱 도구
(github.com/oslabs-beta)- Redis(LFU) 또는 자체 캐쉬(LRU)를 활용한 사용하기 쉬운 경량 캐싱 도구
- Node/Express + Typescript + Chart.js + Jest + React + Webpack
코드를 좀 봤는데 의아한 부분이 꽤 많네요. 잘 동작할지 모르겠습니다. 캐시가 있는지 확인하고 없으면 다시 POST 리퀘스트를 서버에서 endpoint 로 날리는 구조라서, endpoint 를 두개 둬야 하고 graphql query 를 풀 캐시 하는거라 유즈케이스도 많지 않을거 같아요.
그...러면, graphql 캐시를 어떻게 구성하는게 좋은가요? GraphQL 요청 파라메터가 케이스별로 달라질 수 있을테니 제가 캐시를 직접 구성하더라도 서버쪽 캐시를 구성한다면 DacheQL과 별반 다르지 않을거 같은데, 좀 더 좋은 방법이 있을까요? 갑자기 궁금해져서 질문드립니다!
보통은 리소스 레벨 데이터로더를 써서 캐시를 하는 것 같아요. 저런 방식을 못쓴다는건 아니고, 이 라이브러리를 쓸 유즈케이스가 적고 엔드포인트가 두개로 나눠지니 공격받기도 좋고 단점이 많습니다. 리소스 요청할때 key 하나만 생겨도 캐시를 못타니까요.