Skip to content

Overview

Soonho Kwon edited this page Jan 27, 2024 · 4 revisions

@biseo/rpc는 Biseo에서 실시간성 데이터 교환 스키마를 정의하고, 사용하고, 핸들링하기 위해 만들어진 커스텀 패키지입니다.

Concepts

이 패키지는 클라이언트와 서버 사이의 데이터 교환을 크게 두 가지 컨셉, mutation, subscription으로 이해합니다.

기존에 사용하던 이벤트 기반 데이터 교환과 비교하기 위해서는 Migration Guide를 참고하세요.

해당 개념들을 앞서 사용하고 있는 graphql, grpc, react-query, tRPC, swr 등의 기술들에서 사용하고 있는 mutationsubscription의 개념을 차용하였으며, 상세 내용들은 해당 기술들의 공식 문서를 참고하세요.

mutation

클라이언트가 서버 상의 리소스를 변경하는 작업입니다. 채팅 보내기, 투표 종료하기 등의 예시가 있습니다. CRUD 중 Create, Update, Delete에 대응합니다.

관련 문서 - Mutations

subscription

클라이언트가 서버로부터 데이터를 구독하는(읽어오고 변경을 반영하는) 작업입니다. 전체 채팅 목록, 내가 받은 알림, 투표 목록 등의 예시가 있습니다. CRUD 중 Read와 제일 비슷하나 다른 점은 서버 데이터의 변경이 발생했을 때 그 변경점이 클라이언트에도 바로 반영된다는 점입니다.

관련 문서 - Subscriptions

Packages

이 패키지는 크게 세 부분으로 나뉘어집니다.

  • @biseo/rpc/schema : 인터페이스 스키마를 정의하기 위한 함수들
  • @biseo/rpc/client : 인터페이스 스키마를 클라이언트에서 사용하기 위한 hook과 provider들
  • @biseo/rpc/server : 정의된 인터페이스의 서버 단 handler를 구현하기 위한 함수들

@biseo/rpc documentation


Clone this wiki locally