Frontend/Apollo

    useLazyQuery,  GraphQL 쿼리를 즉시 실행하지 않고 필요할 때 호출

    useLazyQuery, GraphQL 쿼리를 즉시 실행하지 않고 필요할 때 호출

    useLazyQueryhttps://www.apollographql.com/docs/react/data/queries/#manual-execution-with-uselazyqueryuseLazyQuery는 Apollo Client에서 제공하는 React 훅으로, GraphQL 쿼리를 즉시 실행하지 않고, 필요할 때 호출할 수 있는 방법을 제공해 준다.일반적인 useQuery는 컴포넌트가 마운트 될 때 자동으로 쿼리를 실행하지만, useLazyQuery는 사용자가 명시적으로 실행할 때까지 대기하는 차이가 있다.  useLazyQuery를 사용할 때는 다음과 같은 형태로 사용된다:const [getQueryResult, { loading, data, error }] = useLazyQuery(MY_QUERY..

    GraphQL 서버와 통신하지 않고 Apollo Client 캐시에서 직접 데이터를 읽고 쓰기

    GraphQL 서버와 통신하지 않고 Apollo Client 캐시에서 직접 데이터를 읽고 쓰기

    client.writeFragment을 사용해 사용자의 이메일 인증 상태를 즉시 반영 시키기import { useApolloClient } from "@apollo/client";const client = useApolloClient();client.writeFragment({ id: `User:${userData.me.id}`, // 수정할 객체의 ID fragment: gql` fragment VerifiedUser on User { verified } `, data: { verified: true // 캐시에 'verified' 필드를 true로 업데이트 }}); https://www.apollographql.com/docs/react/caching/cache-..

    Apollo Link 개요와 주요 기능

    Apollo Link 개요와 주요 기능

    Apollo Link Apollo Client에서 GraphQL 요청을 전송하고 응답을 처리하는 과정을 확장하거나 수정할 수 있는 유연한 미들웨어 시스템이다.링크 체인을 구성하여 다양한 기능을 수행할 수 있다.  요청 수정각 요청에 대해 헤더나 인증 토큰 등을 추가하거나, 변형할 수 있다.에러 처리요청 중에 발생하는 에러를 처리하거나, 재시도 로직을 구현할 수 있다.캐시 관리캐시를 관리하거나 요청을 캐시를 사용해 최적화할 수 있다.네트워크 요청HTTP를 통해 요청을 보내거나 WebSocket을 사용하여 실시간 통신을 할 수 있다.  Apollo Link는 여러 개의 링크를 체인으로 연결하여 각 단계마다 처리 로직을 추가할 수 있다.HttpLink는 기본적으로 HTTP 요청을 보내는 역할을 하고,Error..

    Apollo Client 캐시 동작과 관리 방법

    Apollo Client 캐시 동작과 관리 방법

    Apollo Client의 캐시 GraphQL 데이터를 효율적으로 저장하고 관리하기 위한 메커니즘이다.이를 통해 네트워크 요청을 최소화하고, 사용자 경험을 개선할 수 있다.Apollo Client의 기본 캐시는 InMemoryCache로, 이는 데이터를 메모리에 저장하고, 이를 통해 빠르게 데이터에 접근할 수 있다.  주요 특징과 사용 방법 기본적인 캐싱 동작 Apollo Client는 쿼리 요청 시 서버로부터 데이터를 받아 캐시에 저장한다.이후 동일한 쿼리가 발생하면 캐시에서 데이터를 불러오기 때문에 네트워크 요청을 다시 보내지 않아도 된다.  import { ApolloClient, InMemoryCache, gql } from '@apollo/client';const client = new Apol..