본문 바로가기

graphql

React 앱에 GraphQL 캐싱 전략 도입하기 GraphQL은 필요한 데이터만 요청할 수 있다는 장점이 있지만, 캐싱 전략을 설계하지 않으면 네트워크 비용과 렌더링 지연이 커집니다. 이 글은 React 앱에 실무적으로 적용 가능한 GraphQL 캐싱 전략을 단계별로 정리합니다. Apollo Client 중심으로 설명하고, urql/Relay 대안도 간단히 비교합니다.1. 캐싱이 어려운 이유와 목표GraphQL 응답은 뷰에 최적화된 형태로 조합되기 때문에, 전통적인 REST 경로 기반 캐싱이 어렵습니다. 목표는 다음과 같습니다: 1) 엔티티 단위 정규화로 중복을 제거합니다. 2) fetchPolicy로 UX와 신선도를 균형 있게 관리합니다. 3) 페이지네이션/뮤테이션 시 캐시 정합성을 유지합니다. 4) 앱 재실행/SSR에도 캐시를 재활용합니다.2. 어.. 더보기
React에서 GraphQL Subscription으로 실시간 데이터 처리하기 React 애플리케이션에서 실시간 데이터를 처리할 때 GraphQL Subscription은 매우 유용한 도구입니다. Subscription을 사용하면 서버에서 데이터가 변경될 때마다 클라이언트가 자동으로 업데이트를 받을 수 있어 사용자 경험을 크게 향상시킬 수 있습니다.1. GraphQL Subscription 기본 개념Subscription은 GraphQL 쿼리 방식 중 하나로, 클라이언트가 서버에 구독 요청을 보내면 서버에서 데이터 변동이 있을 때마다 실시간으로 업데이트를 푸시해줍니다. WebSocket 프로토콜을 주로 사용합니다.2. React에서 Apollo Client 설정React에서 GraphQL Subscription을 사용하려면 Apollo Client와 WebSocketLink를 함께.. 더보기
React와 GraphQL Apollo Client 연동하기 React에서 GraphQL을 사용한다면 Apollo Client는 요청, 캐싱, 상태 관리까지 깔끔하게 해결해주는 표준 도구입니다. 실무에서 바로 쓰기 좋은 최소 설정과 패턴을 정리합니다.1. 설치GraphQL 스키마가 준비되어 있다는 가정하에 Apollo Client와 graphql 패키지를 설치합니다.// npmyarn add @apollo/client graphql// 또는npm install @apollo/client graphql2. Apollo Client와 Provider 설정HTTP 링크, 캐시, 기본 fetch 정책을 설정하고 애플리케이션 루트에 ApolloProvider를 연결합니다.// src/apollo.jsimport { ApolloClient, InMemoryCache, Htt.. 더보기