낙관적 업데이트

귤녹차·2025년 2월 5일

1️⃣낙관적 업데이트

성공적인 업데이트가 진행될 것이라는 가정 하에 서버 응답 이전에 UI를 미리 업데이트하는 것이다.

이는 사용자의 요청에 따라 UI를 즉작적으로 변경하여 사용자에게 빠른 반응을 보여준다.

2️⃣대표적인 예시

좋아요 기능 - 사용자가 좋아요 버튼을 클릭하면 바로 화면에 하트가 채워지는 것을 확인할 수 있다. 서버 응답 이전에 미리 반응을 사용자에게 보여준 뒤 서버 응답이 성공적으로 돌아온다면 화면을 유지하고 서버 응답이 실패라면 UI를 원상복구하거나 오류 메세지를 보여주는 등의 반응을 보여준다.

3️⃣장점

  1. 사용자 경험 향상 - 서버 응답 속도와 관계없이 즉각적인 피드백을 사용자에게 전달하여 반응성을 높일 수 있다.
  2. 네트워크 지연 대응 - 네트워크 지연 상황에서의 자연스러운 인터랙션을 통해 네트워크 지연에 대한대응을 할 수 있다.
  3. 서버 부하 감소 - 일시적으로 클라이언트 측에서 상태를 관리함으로써 서버의 부하를 줄일 수 있다.

4️⃣주의점

많은 곳에 낙관적 업데이트를 적용하는 것이 항상 좋은 것이 아니다. 낙관적 업데이트는 요청이 성공할 가능성이 높고, 사용자 경험을 즉시 개선하는 데 큰 장점이 있는 곳에 사용해야 한다.

적용 시 고려사항:

  • 중요한 데이터 처리: 결제나 거래 내역과 같이 중요한 데이터를 다루는 경우에는 낙관적 업데이트가 오히려 사용자 경험을 저해할 수 있다.
  • 실패 가능성: 낙관적 업데이트를 적용하였을 때 요청의 실패 가능성이 높거나 실패 시 복구가 어려운 경우에는 신중히 고려해야 한다.

잠재적 위험:

  1. 복잡성 증가: 낙관적 가정과 서버 실제 응답 간 차이 발생 시 처리 복잡도가 증가한다.
  2. 데이터 정합성 위험: 오프라인 상태 지속 시 데이터 무결성 위협을 고려해야 한다.

이러한 요소들을 종합적으로 고려하여 낙관적 업데이트의 적용 여부를 결정해야 한다

profile
배우는 과정에 즐거움을 느끼고 있습니다.

0개의 댓글