Q&A 추천/비추천, Q&A 스크랩 - 바인딩 변수 사용, 쿼리문 및 로직 개선
추천/비추천 로직 개선 Q&A 추천/비추천 로직을 이전에는 아래와 같이 작성했다. 기존 추천/비추천 로직은 다음과 같다. qnaId, memberId를 이용해 추천/비추천 데이터를 findById로 받아온다. 만약 데이터가 있는 경우, 아래와 같이 데이터를 처리한다. (추천 로직 기준으로 설명한다.) , 여부를 받아온다. 만약 상태가 추천이라면, 삭제가 안 된 경우 추천 취소로 인식하고 해당 데이터를 삭제한다. 상태가 추천인데 삭제된 경우 다시 복구 시킨다. (다시 추천) 상태가 비추천인 경우, 만약 해당 데이터가 삭제되었으면 복구 후 추천 상태로 변경한다. (B → G) 데이터가 없는 경우 새로 만들어준다. 하지만 생각해보니,, 데이터를 굉장히 비효율적으로 처리한다는 생각이 들었다. 🥲 일반적으로 쿼리를 두번 사용하는 것보다 한 번에 요청하는 것이 더 효율적인 것으로 알고 있다. 그래서 고민 끝에 쿼리를 아래와 같이 수정해 로직을 개선했다. 개선한 점은 다음과 같다. , 여부…