피드로 돌아가기
RSC as a serializer, not a model
Dev.toDev.to
Frontend

RSC를 모델이 아닌 JSON 한계를 극복하는 Serializer로 활용한 설계 분석

RSC as a serializer, not a model

Viktor Lázár2026년 4월 27일14advanced

Context

기존 JSON 기반 캐시 시스템의 한계로 인해 React Element, Map, Set, Date 등 복잡한 타입 및 비동기 값의 직렬화 불가 문제 발생. RSC의 Wire Format이 가진 강력한 직렬화 능력을 활용하여 일반 JSON이 처리하지 못하는 데이터 구조의 캐싱 필요성 대두.

Technical Solution

  • RSC를 애플리케이션의 전체 구성 모델(Substrate)이 아닌 특정 시점에 호출하는 Programmatic Primitive로 정의
  • React Server Components Renderer를 단순 Serializer로 격하하여 "UI 포함 트리 $\rightarrow$ 저장 가능한 문자열" 변환 로직 구현
  • createServerFncreateCompositeComponent를 통한 명시적 프로토콜 제어로 서버-클라이언트 간 Payload 전송 구조 설계
  • 런타임 기반의 암시적 캐싱 대신 개발자가 직접 직렬화 시점과 리하이드레이션(Rehydration) 지점을 관리하는 API 노출
  • use cache와 같은 선언적 Directive 방식 대신 함수형 API를 통한 명시적 데이터 흐름 제어 채택

1. 복잡한 데이터 타입(Map, Set, Promise 등)의 캐싱이 필요할 때 표준 JSON 외의 직렬화 프로토콜 검토

2. 프레임워크 도입 시 해당 기술이 제공하는 '모델'과 '기능적 프리미티브'를 구분하여 오버헤드 최소화

3. 명시적 API 설계 시 직렬화-전송-리하이드레이션 전 과정의 타입 일관성 유지 전략 수립

원문 읽기