피드로 돌아가기
Dev.toFrontend
원문 읽기
RSC를 모델이 아닌 JSON 한계를 극복하는 Serializer로 활용한 설계 분석
RSC as a serializer, not a model
AI 요약
Context
기존 JSON 기반 캐시 시스템의 한계로 인해 React Element, Map, Set, Date 등 복잡한 타입 및 비동기 값의 직렬화 불가 문제 발생. RSC의 Wire Format이 가진 강력한 직렬화 능력을 활용하여 일반 JSON이 처리하지 못하는 데이터 구조의 캐싱 필요성 대두.
Technical Solution
- RSC를 애플리케이션의 전체 구성 모델(Substrate)이 아닌 특정 시점에 호출하는 Programmatic Primitive로 정의
- React Server Components Renderer를 단순 Serializer로 격하하여 "UI 포함 트리 $\rightarrow$ 저장 가능한 문자열" 변환 로직 구현
createServerFn및createCompositeComponent를 통한 명시적 프로토콜 제어로 서버-클라이언트 간 Payload 전송 구조 설계- 런타임 기반의 암시적 캐싱 대신 개발자가 직접 직렬화 시점과 리하이드레이션(Rehydration) 지점을 관리하는 API 노출
use cache와 같은 선언적 Directive 방식 대신 함수형 API를 통한 명시적 데이터 흐름 제어 채택
실천 포인트
1. 복잡한 데이터 타입(Map, Set, Promise 등)의 캐싱이 필요할 때 표준 JSON 외의 직렬화 프로토콜 검토
2. 프레임워크 도입 시 해당 기술이 제공하는 '모델'과 '기능적 프리미티브'를 구분하여 오버헤드 최소화
3. 명시적 API 설계 시 직렬화-전송-리하이드레이션 전 과정의 타입 일관성 유지 전략 수립