개발자

프론트엔드 개발 관련 서버와 동기화 문제로 인해 질문 남깁니다!

2024년 03월 13일조회 125

안녕하세요! 초기 스타트업에서 현재 notion과 같은 블록 에디터 기반 기능을 가진 보고서 서비스를 만들고 있습니다. 먼저 문제가 발생하기 전까지의 과정을 말씀드리면 1. 작성되어 있는 글 사이에 새로운 글을 작성하기 위해 글 사이룰 개행하여 새로운 블록을 만든다. 2. 만들어진 블록에 글을 작성하고 Enter를 누른다. 3. 변화된 블록들의 객체를 서버에 전송한다. 4. 서버에서 현재 상태에 대해 DB를 최신화하고 프론트에 전송한다. 여기서 문제가 발생하는데 3~4번의 과정 중에 유저가 빠르게 새로운 블록을 재생산하거나 기존의 에디터 상태와 DB에서 최신화된 에디터 상태가 다른 경우 새로운 블록을 재생산한 화면에서 DB를 최신화한 블록 상태로 변경되는 이슈가 있습니다. 해결하기 위해 떠오르는 여러 가지 방법들 (ex. 캐싱과 webworker )을 적용하기 전에 이런 상황들을 경험했을 선배 개발자분들께 먼저 고견을 여쭙고 진행하는 것이 현명하다고 생각하여 질문을 먼저 올렸습니다! ( 사수가 없는 상황입니다..! ) 이런 비슷한 경험을 어떻게 해결했는지 경험이라도 공유해주시면 너무너무 감사하겠습니다! :) 좋은 하루 보내세요! ( 메일 : reblackraven@gmail.com )

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

포크코딩님의 프로필 사진

적어주신 내용만 보면 캐싱이나 부가적인 동작보다 디바운싱이나 쓰로틀 로직만 만져줘도 문제를 해결하지 싶습니다. P.S Liveblocks의 솔루션들을 참고해 보세요. 여러 문제에 대해 영감을 얻기에 충분할듯 합니다. https://liveblocks.io/

곽세진님의 프로필 사진

곽세진

작성자

프론트엔드 개발자2024년 03월 21일

답변을 늦게 봤습니다! 말씀하신 디바운싱 쓰로틀 적용, 메모이제이션, 낙관적 업데이트 등의 기술로 해결했습니다! 답변 감사합니다 :)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!