컴퓨터 분야에 사용되는 용어로, 데이터를 미리 복사해 놓는 임시 장소를 가리킨다
-나무위키-
캐시는 일반적으로 일시적인 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층입니다
-aws공식사이트-
와 같이 여러가지 개념과 설명들이 있다! 하지만 이들이 공통적으로 얘기해주는 정보는
데이터의 기본 스토리지에서 엑세스 할때보다 더 빠르게 요청을 처리할수 있다
이다
데이터에 접근하는 시간을 줄여주고 값을 다시 계산하는 시간을 절약할수 있게 해줌
캐시서버 또는 캐시 메모리등 캐시가 붙은 기능에 저장된 데이터는 지워질수 있다는것을 전제로한다. 즉 영구적인 메모리 공간이 아니다. 또한 캐시는 되도록 빈도수는 높고 양은 많지않은 데이터에 적합하며 용량에 비해 비용이 비싸며, 캐시가 커질수록 주소해독에 대한 주변회로가 복잡해져 성능이 마냥 좋아지기만 하는 것은 아니다.
그렇다면 현재 공부하고 있는 프론트엔드 분야에서 캐시는 어떨때 필요할까?
1) Memoization
: memoization은 주어진 입력값에 대한 결과를 저장함으로써 같은 입력값에 대해 함수가 한번만 실행되는 것을 보장하며, 본질적으로 캐싱이라 할수있다. -> useMemo, useCallback등의 함수가 이 개념을 사용한다.
2) react-query의 캐싱기능
: react-query의 useQuery훅을 사용하면 staleTime과 caceTime을 설정할 수 있다. staleTime은 데이터가 상하기(?)전 까지의 시간을 설정해주는 것이고, cacheTIme은 inactive된 시점 부터 stale되기 전까지의 데이터가 캐시메모리에 남아있는 시간을 지정하는 것이다.
즉 cacheTIme으로 지정한 시간동안 useQuery로 불러온 데이터들은 cache에 남아 있게 되고 재요청없이 빠르게 참조 가능하다