
앞서 realtime 구조를 다시 확립하였는데 이 과정 후 UI에 메시지를 전송하고 랜더 되는 과정에 3초 정도 지연되어 표시되는 문제가 발생했다.
메시지를 전송 → Realtime → invalidate → fetch → 렌더
DB에 인식되어 Realtime 을 거쳐 React Query 로 오는 과정에 시간이 많이 걸려 진 것이다.
기존 구조는 사용자가 메시지를 보내면 서버에 저장되고, Supabase Realtime이 변경 사항을 감지하여 클라이언트에 전파하고, 그 후 React Query가 메시지를 다시 불러오는 구조였다.
하지만 이 방식은 전송 후 메시지가 3~4초 지연되어 표시되는 UX 문제를 발생시켰다.


mutation 객체 없음 오류uuid 관련 zod 혼동 (zod.v4 → uuid 설치 필요)ZodUUID is not assignable to string 등)useMutation의 generic 파라미터 누락으로 타입 추론 실패onMutate에서 undefined 가능성 제거 안 해서 타입 충돌TanStack Query 공식 문서 - optimistic
실시간 기능에 대해 개선할 점은 무궁무진 하다고 생각된다.
사용자와 사용자가 작용하는 기능이여서 신경 써야할 부분도 두 배로 많아 진 것 같다.
직접 쓸때는 몰랐지만 구현 하려니 아직 까지도 개선되어야 할 부분이 많이 보인다.
후 에 작업하고 개선된 내용도 작성할 계획이다.