한 줄 요약 - 서버 응답을 기다리지 않고 화면을 먼저 바꿔(전송 중 표시) 빠르게 느껴지게 하고, 저장이 끝나면 확정합니다.
이럴 때 필요해요
좋아요/댓글/할 일 추가처럼 결과가 거의 항상 성공하는 동작에서, 응답을 기다리는 빈 시간을 없애고 싶을 때.
어떻게 동작하나
useOptimistic(실제상태, 합치는함수)로 화면용 값을 만든다.
form action 안에서 addOptimistic으로 임시 항목을 먼저 추가.
서버 저장이 끝나면 실제 상태를 갱신해 임시값이 실제값으로 정착.
핵심은 이거예요
로딩/임시 상태를 직접 관리하지 않습니다. React가 action이 끝날 때까지 임시값을 유지하고 자동으로 되돌립니다.
놓치기 쉬운 것
실패 가능성이 높은 작업엔 부적합(되돌림 UX 필요).
React 19 + 클라이언트 컴포넌트 필요.
이런 곳에 써요
채팅/댓글 전송, 좋아요 토글, 장바구니 담기