Optimistic Updates 예제

← Actions 예제로 돌아가기

🎯 핵심 포인트

첫 번째 포스트

Optimistic Updates 예제입니다.

2024. 1. 1.

댓글 (2개)

김철수2024. 1. 1. 오전 10:00:00

좋은 포스트네요!

이영희2024. 1. 1. 오전 11:00:00

도움이 되었습니다.

💬 댓글 작성

두 번째 포스트

즉각적인 UI 반응을 경험해보세요.

2024. 1. 2.

댓글 (0개)

첫 번째 댓글을 작성해보세요!

💬 댓글 작성

💡 Optimistic Updates 패턴

// 1. useOptimistic 사용
const [optimisticLikes, setOptimisticLikes] = useOptimistic(
    currentLikes,
    (current, increment) => current + increment
);

// 2. 액션 실행 시 즉시 UI 업데이트
const handleLike = async () => {
    setOptimisticLikes(1); // 즉시 UI에 반영
    
    try {
        const result = await likePost();
        if (!result.success) {
            setOptimisticLikes(-1); // 실패 시 롤백
        }
    } catch {
        setOptimisticLikes(-1); // 에러 시 롤백
    }
};

// ✅ 결과:
// - 버튼 클릭 즉시 좋아요 수 증가
// - 서버 처리 완료까지 기다리지 않음
// - 실패 시 자동으로 원래 값으로 복원

🚀 사용자 경험 개선

기존 방식
  • • 클릭 → 로딩 → 결과 표시
  • • 서버 응답까지 대기 필요
  • • 느린 체감 성능
  • • 답답한 사용자 경험
Optimistic Updates
  • • 클릭 → 즉시 결과 → 서버 동기화
  • • 즉각적인 피드백
  • • 빠른 체감 성능
  • • 자연스러운 사용자 경험

💡 체험해보기: 위의 좋아요 버튼을 클릭하면 즉시 숫자가 증가하고, 서버 처리가 완료되면 실제 값으로 동기화됩니다. 가끔 실패하는 경우도 체험할 수 있습니다!