<aside> 📑

</aside>

문제 상황

실시간 협업(Writer/Reviewer) 화면에서, 서버가 TEXT_REPLACE_ALL 이벤트를 정상적으로 내려주고 클라이언트도 해당 메시지를 정상 수신했다.

즉, 소켓 연결/구독 자체는 문제가 없었고 received message 로그도 확인됐다.

그런데 사용자 입장에서는 다음 현상이 발생했다.


목표: TEXT_REPLACE_ALL 수신 시, 해당 QnA의 화면이 최신 상태로 반영되도록 한다.

당시 기대 동작은 명확했다.

  1. TEXT_REPLACE_ALL 수신
  2. 수신 payload(version, content)로 상태 갱신
  3. 해당 상태를 구독하는 컴포넌트 리렌더
  4. 화면 텍스트가 최신 내용으로 교체

하지만 실제로는 1번까지만 확인되고 2~4번이 체감상 일어나지 않아,

초기에는 “소켓은 받았는데 반영이 안 된다”는 이슈로 인지되었다.


당시 구현 방식