낙관적 업데이트란?

규갓 God Gyu·2024년 12월 19일

면접질문

목록 보기
32/142

성공적인 상태 업데이트가 이뤄질 거라는 가정 하에 서버 응답 이전에 UI를 미리 업데이트하는 방법
사용자 요청을 서버가 성공적으로 처리할거라고 미리 예상 후, UI를 즉각적으로 변경해서 사용자에게 빠른 반응을 보여줌

ex- 좋아요 기능
좋아요 버튼 클릭 시 서버 응답 기다리지 않고, 화면에 바로 좋아요 클릭에 대한 상태 보여줌
이후 서버 응답이 성공적으로 돌아오면 그대로 두고, 혹시나 실패하면 UI에서 해당 좋아요 상태 롤백하거나 오류 메세지 보여주는 방식

낙관적 업데이트의 장점은 서버 응답 속도와 관계 없이 즉각적인 피드백 제공해서 사용자들이 시스템을 빠르게 쓸 수 있음.
네트워크 상태가 좋지 않거나 응답 시간이 길어도 사용자 경험엔 영향 덜 미침
but
서버 오류 발생 시 잠시 화면에 잘못된 정보가 표시됨
따라서 이 경우를 대비한 오류 핸들링(롤백) 로직을 같이 설계해야 하는 주의점

그렇다고 마냥 많은 곳에 적용하는게 좋은 건 아님.
요청이 성공할 가능성이 높고, 사용자 경험을 즉시 개선하는 데 큰 장점이 있을 때 사용하는게 적합
ex-결제나 거래 내역과 같이 중요한 데이터를 다루는 경우 낙관적 업데이트가 오히려 사용자 경험을 저해할 수 있음
그래서 요청에 실패시 민감도 높은 정보가 순간적으로 잘못 표시되면서 사용자 경험을 크게 저해할 수 있음

또한 네트워크 환경이 불안정한 경우 요청에 대한 실패율이 높이지기 때문에 잦은 롤백이 발생함
이럴 때는 오히려 서버 응답을 기다리는 것이 더 나은 판단

profile
웹 개발자 되고 시포용

0개의 댓글