의존성이 없는 query-core 패키지에 핵심 로직들이 있고
react-query, vue-query, svelte-query 등등 의존성이 포함되어있는 패키지가 존재\\
즉 query-core는 프레임워크에 종속되지 않은 상태로 로직을 처리하고
각각의 프레임워크별 query에서 프레임워크에 맞게 core를 동작시키는 형태
이형태를 Framework Agnostic 라이브러리 라고 하며.
- 웹프레임워크 에 종속되지 않는 라이브러리
- query-core (코어) {framework}-query(어댑터)의 구성
장단점
장점
- 프레임워크의 변화에 어댑터만 수정하여 사용가능 (사용 용이성)
- 각각 독립적으로 개발되고 유지보수되어 효율성이 좋음 (독립성)
단점
- 각각 프레임워크별 어댑터를 개발해야함 (러닝커브)
- 어댑터가 코어에 종속적인형태라 코어가 변경될때 모든 어탭터들이 변경되어야 할 수 있음. (종속성)
React-Query
<aside>
💡
React Application에서 서버의 상태를 불러오고, 캐싱하며, **지속적으로 동기화**하고 업데이트 하는 작업을 도와주는 라이브러리
</aside>
- 컴포넌트 내부에서 서버와 통신할 수 있는 훅을 제공.
server state의 생명주기나 caching같은것들을 선언적으로 관리하기 위해 사용하는 라이브러리
server state
- 데이터를 서버에서 가져와 클라이언트에서 사용되는 동안 이루어지는 단계
- 데이터 fetching : 훅으로 처리
- 캐싱 : 서버에서 가져온 데이터를 클라이언트 메모리에 저장. (키를 통해)
- 갱신(refetching) : stale한 상태의 데이터는 다시 서버에서 가져옴
- 무효화(invalidation): 특정 조건에서 캐싱된 데이터를 무효화하고 최신으로 가져옴