사실 api 캐싱 레이어로 예전에 리덕스를 많이 사용해왔는데, 간단한 api 캐시 구현임에도 불구하고 기반 코드(boilerplate)가 많이 필요해서(물론 redux toolkit 등 이걸 리덕스
사실 api 캐싱 레이어로 예전에 리덕스를 많이 사용해왔는데, 간단한 api 캐시 구현임에도 불구하고 기반 코드(boilerplate)가 많이 필요해서(물론 redux toolkit 등 이걸 리덕스 내에서 해결하려는 접근도 많지만 여전히 복잡하다고 생각합니다) 요즘은 잘 사용하지 않는 추세입니다. 리액트 쿼리(https://tanstack.com/query/latest, 리액트 이외에도 지원하고 싶어서인지 tanstack query로 이름을 바꿨더군요)라는 라이브러리가 이 문제를 잘 해결했다고 생각해서 사용해보시면 좋겠습니다. next.js 를 만든 vercel 의 SWR(https://swr.vercel.app/ko)도 같은 접근 방식인데, 리액트 쿼리 쪽이 더 기능이 풍부합니다. 프로젝트가 무거워진다는 건 런타임에서의 메모리 사용량을 말씀하시는 걸까요? 리덕스의 경우는 https://redux.js.org/faq/performance#will-having-one-state-tree-cause-memory-problems-will-dispatching-many-actions-take-up-memory 에 설명하고 있기는 한데 기본적인 자바스크립트의 가비지 컬렉션에 의지할 뿐 사용되지 않는 상태에 대한 가비지 컬렉션은 기본적으로 제공하지 않는 것으로 보입니다. 리액트 쿼리의 경우에는 훅의 호출이 일정 시간 동안 이루어지지 않으면 해당 키의 캐시값을 비우는 가비지 컬렉션 로직이 있습니다. 자세한 건 문서를 참고해주세요. https://tanstack.com/query/v4/docs/react/guides/caching