1️⃣낙관적 업데이트
성공적인 업데이트가 진행될 것이라는 가정 하에 서버 응답 이전에 UI를 미리 업데이트하는 것이다.
이는 사용자의 요청에 따라 UI를 즉작적으로 변경하여 사용자에게 빠른 반응을 보여준다.
2️⃣대표적인 예시
좋아요 기능 - 사용자가 좋아요 버튼을 클릭하면 바로 화면에 하트가 채워지는 것을 확인할 수 있다. 서버 응답 이전에 미리 반응을 사용자에게 보여준 뒤 서버 응답이 성공적으로 돌아온다면 화면을 유지하고 서버 응답이 실패라면 UI를 원상복구하거나 오류 메세지를 보여주는 등의 반응을 보여준다.
3️⃣장점
- 사용자 경험 향상 - 서버 응답 속도와 관계없이 즉각적인 피드백을 사용자에게 전달하여 반응성을 높일 수 있다.
- 네트워크 지연 대응 - 네트워크 지연 상황에서의 자연스러운 인터랙션을 통해 네트워크 지연에 대한대응을 할 수 있다.
- 서버 부하 감소 - 일시적으로 클라이언트 측에서 상태를 관리함으로써 서버의 부하를 줄일 수 있다.
4️⃣주의점
많은 곳에 낙관적 업데이트를 적용하는 것이 항상 좋은 것이 아니다. 낙관적 업데이트는 요청이 성공할 가능성이 높고, 사용자 경험을 즉시 개선하는 데 큰 장점이 있는 곳에 사용해야 한다.
적용 시 고려사항:
- 중요한 데이터 처리: 결제나 거래 내역과 같이 중요한 데이터를 다루는 경우에는 낙관적 업데이트가 오히려 사용자 경험을 저해할 수 있다.
- 실패 가능성: 낙관적 업데이트를 적용하였을 때 요청의 실패 가능성이 높거나 실패 시 복구가 어려운 경우에는 신중히 고려해야 한다.
잠재적 위험:
- 복잡성 증가: 낙관적 가정과 서버 실제 응답 간 차이 발생 시 처리 복잡도가 증가한다.
- 데이터 정합성 위험: 오프라인 상태 지속 시 데이터 무결성 위협을 고려해야 한다.
이러한 요소들을 종합적으로 고려하여 낙관적 업데이트의 적용 여부를 결정해야 한다