현재 테커에서 진행하고 있는 팀프로젝트인 Graphy의 POC 기능 개발을 마치고, 중간 점검 겸 각 팀 프로젝트의 진행 상황을 공유하는 '테커인의 낮' 행사가 있었다. 그때 공유했던 내용을 블로그에 기록하려고 한다.
Graphy에 대하여 간단하게 말하자면, 개발자가 완성했던 프로젝트를 사용했던 기술 스택 태그와 함께 소개하고, 간단하게 기록 및 공유하는 플랫폼 서비스이다.
백엔드 개발에서는 댓글 관련하여 꽤나 긴 여정을 보냈었다.
우리는 위처럼 댓글과 답글
이 있는 형식의 댓글 기능을 원했고, 삭제 같은 경우에도 답글은 삭제 시에 화면에서 보이지 않게 하고, 댓글 같은 경우에는 삭제해도, 저렇게 "삭제된 댓글입니다"
라고 보이길 원했다.
따라서 처음에 설계한 로직은 아래와 같다.
사실 딱 봐도 너무 복잡하고, 효율이 떨어질 것 같은 로직이다.
다중 if문까지 사용해가며 구현해보았지만, 서버에 부담이 될 수도 있고, 응답 속도 저하가 우려되어 백엔드는 상의 하에 개선하기로 결정했다.
삭제된 댓글입니다
로 표시하도록 결정삭제된 댓글입니다
으로 마스킹하는 것을 서버 내 로직이 아닌, 조회시 쿼리문을 이용해 삭제된 댓글을 마스킹하는 것으로 해결결론
서버 내에서 처리했던 로직을 최대한 쿼리문으로 처리하도록 변경했다
현재 글 하나의 댓글을 조회할 때 댓글과, 답글 모두 한 번에 조회하는 방식은 괜찮은가?
우리 모두의 친구 Youtube
의 댓글을 참고하여 댓글만 먼저 조회하고, 사용자가 클릭 시에 답글을 pagination
을 적용해 조회하는 것으로 결정하였다.
결과적으로는 위와 같은 개선 결과를 얻을 수 있었다!
우리 프로젝트 특성상, 텍스트 에디터가 필요했고, Quill 에디터를 선택하게 되었다.
직접 사용해본 결과, 이미지를 넣은 글의 포스팅 속도가 오래 걸린다는 것을 알 수 있었다.
따라서, 이미지 처리 방식을 아래와 같이 변경하였다.
결론적으로는 아래와 같은 로딩 시간 개선을 얻을 수 있었다.