개발자
안녕하세요! 현재 진행 중인 사이드 프로젝트에서 게시글 신고 기능을 구현하고 있습니다. 1. 게시글이 누적 신고를 받으면 모든 유저한테 안 보입니다. 2. 유저가 특정 게시글을 신고했을 때 해당 유저한테는 신고한 게시글이 안 보입니다. 1번의 경우에는 신고가 될 때마다 count를 해서 일정 횟수 누적이 되면 해당 게시글을 soft delete를 합니다. 2번의 경우에는 게시글 조회 시 신고 테이블을 outer join 해서 해당 유저가 신고하지 않은 게시글만 조회합니다. 신고 특성상 순간적으로 발생하는 경우가 많을 것 같아서 redis를 사용해볼까 하는 생각도 드는데 조언, 피드백 좀 주시면 정말 감사하겠습니다!
답변 1
제가 생각하는 방식을 전달해드립니다. 유저가 신고시 신고테이블에 Insert 및 Async하게 후속작업을 진행 후속작업은 count를 증가시키고, count가 일정수 이상일경우 softdelete 진행하도록 변경. count 증가는 count = 숫자 업데이트가 아닌 count = count + 1 식이 될수 있도록 변경. 별도 Count 컬럼이 없을경우는 신고테이블 count만 진행하여 softdelete 진행 위 방식은 어떤가요?
익명
작성자
2024년 03월 08일
생각하지 못했던 부분을 많이 배워가네요.. 클라이언트에서 신고 누적을 계산하고 처리하는 작업을 기다릴 필요가 없고 신고 관련 별도의 count 칼럼은 없지만 다른 부분에서 count 칼럼을 optimistic lock으로 업데이트를 하고 있었는데 count = count +1 식으로 업데이트하면 애플리케이션 레벨에서 락을 안 걸어도 될 것 같네요 좀 더 공부하고 적용해 보겠습니다. 감사합니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!