🍞 매일메일/프론트엔드

[매일메일] 낙관적 업데이트란

박빵이 2025. 2. 19. 08:50

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

 

낙관적 업데이트의 대표적인 예시로 좋아요 기능을 들 수 있습니다. 예를 들어, 사용자가 좋아요 버튼을 클릭하면 서버 응답을 기다리지 않고, 화면에 바로 좋아요 클릭에 대한 상태를 보여주는 것입니다. 서버 응답이 성공적으로 돌아오면 그대로 두고, 혹시나 실패하면 UI에서 해당 좋아요 상태를 다시 해제하거나 오류 메시지를 보여주는 방식입니다.

 

낙관적 업데이트의 장점은, 서버 응답 속도와 관계없이 즉각적인 피드백을 제공해서 사용자들이 시스템을 빠르게 쓸 수 있다는 점입니다. 특히 네트워크 상태가 좋지 않거나 응답시간이 길어도 사용자 경험에는 영향을 덜 미치게 합니다.

 

다만, 서버에서 오류가 발생하면 잠시동안 화면에 잘못된 정보가 표시될 수 있습니다. 따라서 이 경우를 대비한 오류 핸들링(롤백) 로직을 같이 설계해야한다는 주의점이 있습니다.

 

🤔 좋은 사용성을 위해서는 낙관적 업데이트를 가능한 한 많이 적용하는 것이 좋겠네요?

 

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

 

예를 들어 결제나 거래 내역과 같이 중요한 데이터를 다루는 경우에는 낙관적 업데이트가 오히려 사용자 경험을 저해할 수 있습니다. 낙관적 업데이트를 적용했을 때, 요청에 실패한다면 민감도 높은 정보가 순간적으로 잘못 표시되면서 사용자 경험을 크게 저해할 수 있기 때문입니다.

 

또한, 네트워크 환경이 불안정한 경우에는 요청에 대한 실패율이 높아지기 때문에 잦은 롤백이 발생할 수 있습니다. 이 경후 역시 사용자 경험을 저해할 수 있기 때문에 오히려 서버 응답을 기다리는 것이 더 나은 판단일 수 있습니다.