Skip to content

Conversation

@tkdtn4657
Copy link
Collaborator

@tkdtn4657 tkdtn4657 commented Dec 15, 2024

✨ 작업 내용

  • 신고 CRUD
  • 게시글 신고
  • 댓글 신고
  • 리뷰 신고 - 리뷰 완료된 후 pull 하여 추가 예정
  • 유저 블럭
  • 예외 처리

✨ 코멘트

  • 각 게시글, 댓글, 리뷰, 유저의 신고횟수 누적에 따라 삭제 및 제재처리 되도록 구현하였습니다.
  • data.sql에 오타있는 부분 같이 수정했습니다!(,가 없던 부분)
  • 제재되었을 때 카운트를 기록하는 컬럼을 추가하였습니다.
alter table `users` add column `report_sanction_count` INT NOT NULL DEFAULT 0;
alter table `post` add column `report_sanction_count` INT NOT NULL DEFAULT 0;
alter table `post_comment` add column `report_sanction_count` INT NOT NULL DEFAULT 0;
alter table `review` add column `report_sanction_count` INT NOT NULL DEFAULT 0;

Git Close

@tkdtn4657 tkdtn4657 added the 🔥 Feat 새로운 기능 추가 label Dec 15, 2024
@tkdtn4657 tkdtn4657 self-assigned this Dec 15, 2024
Copy link
Contributor

@LeeYulhee LeeYulhee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

신고 테이블의 값을 JOIN해서 COUNT 값으로 5회 이상 누적인지 확인하는 게 아니고 post, commet, review 쪽에 컬럼을 추가하는 방식으로 구현하셨네요! 혹시 이유를 알 수 있을까요?
그리고 유저 Block 처리는 어드민이 수동으로 하는 형태로 구현하신 게 맞을까요?

Copy link
Collaborator

@leebuwon leebuwon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

@tkdtn4657
Copy link
Collaborator Author

신고 테이블의 값을 JOIN해서 COUNT 값으로 5회 이상 누적인지 확인하는 게 아니고 post, commet, review 쪽에 컬럼을 추가하는 방식으로 구현하셨네요! 혹시 이유를 알 수 있을까요? 그리고 유저 Block 처리는 어드민이 수동으로 하는 형태로 구현하신 게 맞을까요?

@LeeYulhee

설명 드리기에 앞서, 신고 flow부터 말씀 드리겠습니다.

  • 신고 테이블은 신고 데이터를 기록하며, 신고처리가 되었을 때는 visible 값이 바뀌도록
  1. 리뷰, 게시글, 댓글 등 최초 신고
  2. 신고된 테이블 기준으로 어드민이 신고처리
  3. 신고처리 될 때 누적 카운트를 보고 일정 수 이상 신고 시 차단
    의 순서로 진행되는 상태이며,
    신고처리를 반드시 거쳐야만 블록된다고 생각했었습니다.

그런데, 얘기해주신 것을 다시 생각해보니, 신고 처리가 된 것 외에도 일반 신고 누적횟수로도 정지가 되는 게 맞았던 것 같습니다.
이번 로직은 어드민 기준 신고처리를 진행한 것으로 봐주시고,
추후 기능 추가(신고 누적에 따른 block)를 같이 하는 것으로 진행하겠습니다!

하기 내용은 질문 주셨던 것의 답변입니다.

  1. 각 컬럼에 카운트를 추가하는 방식
    신고 자체가 누적될 때마다, 카운트 조회 처리를 시행하는 것이 비효율적으로 느껴졌습니다.
  • 신고 트랜잭션이 동작할 때 엔티티를 최초 조회
  • 컬럼 추가 시
    • 조회된 엔티티에서 컬럼 하나만을 비교
  • 컬럼 미 추가 시
    • 조회된 엔티티에서 해당 신고ID 기준으로 쿼리 추가동작

두 가능성 중 컬럼 하나만을 비교하는 것이 select 쿼리가 적게 들어가기에 효율적이라 판단하고 구현했습니다.

  1. 유저 Block 처리
    신고된 게시글이나, 댓글, 리뷰의 작성유저의 누적 여부를 확인, 일정 횟수 신고처리 누적될 시 정지

입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔥 Feat 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

신고기능 추가

4 participants