tRPC란?
REST·GraphQL 같은 별도 스키마를 작성하지 않고, TypeScript 타입이 클라이언트-서버 간 자동으로 공유되는 RPC 프레임워크다.
예
// 서버
const userRouter = router({
byId: publicProcedure.input(z.string()).query(({input}) => getUser(input))
});
// 클라이언트 — 타입 자동
const user = await trpc.user.byId.query("123");
언제 유리한가
- Next.js 등 풀스택 TS 앱
- 모노레포 — 서버·클라 같은 저장소
- 빠른 프로토타이핑
한계
공개 API에는 부적합 (TS 클라이언트만), GraphQL 대비 캐싱·구독 약함, 다른 언어 클라에 불친화.