pile·
프론트엔드·크리에이트립크리에이트립·

GraphQL 커스텀 디렉티브로 만드는 선언적 지연 로딩

문제SSR 환경에서 캐시된 페이지를 모든 사용자에게 제공하되, 로그인 사용자의 개인화 데이터(좋아요 여부 등)는 하이드레이션 후 별도로 갱신해야 해 중복 요청이 발생했다.
접근GraphQL 커스텀 @lazy 디렉티브 구현. Apollo Link가 쿼리 AST를 파싱해 @lazy 필드를 제거하고, 하이드레이션 후 해당 필드만 엔티티별 배치 요청. Apollo Client 정규화 캐싱이 동일 ID 객체를 자동으로 병합한다.
결과불필요한 데이터 전송 감소. 백엔드 P95 응답시간 약 20% 개선. 개발자는 @lazy 마커만 붙이면 되는 선언적 API로 복잡성을 은폐했다.
크리에이트립
크리에이트립 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·여기어때 (GC컴퍼니)여기어때 (GC컴퍼니)·

    항공 프론트엔드 구축기 (7/10): 창구를 하나만 두었습니다

    여기어때 항공 서비스 프론트엔드가 웹과 앱 웹뷰 두 환경에서 동일한 함수 호출로 동작하는 앱 브릿지 추상화 레이어를 설계한 과정을 다룬다. iOS·안드로이드 규약 차이와 "웹에 존재하지 않는 브릿지를 어떻게 호출하나"라는 문제를 단일 추상화 층으로 해결한 구현 사례다.

    요약 이어보기
    #react#typescript#webview+2