Skip to content

[4주차] 이교형/[feat] 게시글/댓글/신고 도메인 기반 추가 API 작성#168

Open
LGH0507 wants to merge 13 commits intoLeets-Official:mainfrom
LGH0507:이교형/4주차

Hidden character warning

The head ref may contain hidden characters: "\uc774\uad50\ud615/4\uc8fc\ucc28"
Open

[4주차] 이교형/[feat] 게시글/댓글/신고 도메인 기반 추가 API 작성#168
LGH0507 wants to merge 13 commits intoLeets-Official:mainfrom
LGH0507:이교형/4주차

Conversation

@LGH0507
Copy link
Copy Markdown

@LGH0507 LGH0507 commented Apr 28, 2026

1. 과제 요구사항 중 구현한 내용

  • 게시글 신고 기능
  • 댓글 신고 기능
  • 게시글 숨김 처리 기능
  • 댓글 숨김 처리 기능
  • 신고 완료 처리 기능
  • 게시글/ 댓글 상태 복구 기능

2. 핵심 변경 사항

  • 게시물/댓글/신고 도메인을 기반으로 CRUD를 포함한 추가 API 구현
  • 동일한 요청에 대한 중복 방지 로직 설계
  • 상태 변경(PENDING -> RESOLVED, ACTIVE -> HIDDEN)을 고려한 설계
  • 복구 메서드 추가(HIDDEN -> ACTIVE)

기존 엔티티 수정

  • Post: PostStatus 필드 추가 (ACTIVE/HIDDEN), hide() 메서드, restore() 메서드

3. 실행 및 검증 결과

  • 댓글 생성
image
  • 댓글 숨김(HIDDEN)

  • 댓글 신고 ( 본인 댓글 본인이 신고) - 실패

image image
  • 댓글 신고( 본인 게시글의 다른 사용자의 댓글 신고) - 성공
image
  • 게시글 숨김
image image
  • 게시글 신고( 본인의 게시글 본인이 신고) - 실패
image image
  • 게시글 신고( 다른 사용자가 게시글 신고) - 성공
image image
  • 신고 처리 완료
image
  • 에러 로그
image

4. 완료 사항

  1. 게시글 신고 API 구현 (중복 신고 방지 포함)
  2. 댓글 신고 API 구현 (중복 신고 방지 포함)
  3. 신고 처리 완료 API 구현 (PENDING → RESOLVED 상태 변경)
  4. 댓글 숨김 API 구현 (ACTIVE → HIDDEN 상태 변경)
  5. 게시글 숨김 API 구현 (ACTIVE → HIDDEN 상태 변경)
  6. 상태 변경 복구(HIDDEN -> ACTIVE 상태 변경)

5. 추가 사항

  • 관련 이슈: closed #131

제출 체크리스트

  • PR 제목이 규칙에 맞다
  • base가 {이름}/main 브랜치다
  • compare가 {이름}/{숫자}주차 브랜치다
  • 프로젝트가 정상 실행된다
  • 본인을 Assignee로 지정했다
  • 파트 담당 Reviewer를 지정했다
  • 리뷰 피드백을 반영한 뒤 머지/PR close를 진행한다

Reviewer 참고

@LGH0507 LGH0507 self-assigned this Apr 28, 2026
@LGH0507 LGH0507 requested a review from a team April 28, 2026 15:04
Copy link
Copy Markdown

@yeonjuncho yeonjuncho left a comment

Choose a reason for hiding this comment

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

👍 코드를 깔끔하게 작성해주신 것 같습니다 고생하셨습니다!
Files changed를 보니 파일이 다 추가만 되어 있는데 project 폴더를 다시 만들어서 하신걸까요?

@LGH0507 LGH0507 requested a review from a team April 30, 2026 07:53
@LGH0507
Copy link
Copy Markdown
Author

LGH0507 commented Apr 30, 2026

👍 코드를 깔끔하게 작성해주신 것 같습니다 고생하셨습니다! Files changed를 보니 파일이 다 추가만 되어 있는데 project 폴더를 다시 만들어서 하신걸까요?

감사합니다😄 이전 브랜치에서 완료한 작업을 제 main브랜치에 merge하고 제 main브랜치에서 4주차 브랜치를 파서 했는데 그 과정에서 파일들이 추가 된 것 같습니다. 혹시 연준님께서는 어떻게 하셨는지 물어봐도 될까요?

Comment on lines +43 to +46
REPORT_NOT_FOUND(HttpStatus.NOT_FOUND, "REPORT_4040", "신고를 찾을 수 없습니다."),
REPORT_ALREADY_EXISTS(HttpStatus.CONFLICT, "REPORT_4090", "이미 신고한 대상입니다."),
REPORT_ALREADY_RESOLVED(HttpStatus.CONFLICT, "REPORT_4091", "이미 처리된 신고입니다."),
REPORT_CANNOT_SELF(HttpStatus.BAD_REQUEST, "REPORT_4001", "자신의 게시물/댓글은 신고할 수 없습니다.");
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

본인이 작성한 게시글/댓글은 신고 못하도록 제한해둔 점에서 디테일한 부분까지 신경 많이 쓰신 것 같습니다. 고생 많으셨습니다!

Comment comment = findCommentOrThrow(commentId);
validateCommentBelongsToPost(comment, postId);

comment.updateContent(request.getContent(), currentUserId);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💬 수정 권한 검증(currentUserId)을 엔티티 내부에서 수행하도록 구현하신 것 같습니다. 서비스 레이어가 얇아지고 도메인 로직이 집중되어 응집도가 높아지는 좋은 방식으로 구현하신것 같습니다

@eun-seoo
Copy link
Copy Markdown
Member

image
안녕하세요, 교형님!
현재 base branch가 main으로 설정되어 있습니다 😭
번거로우시겠지만 PR을 close하시고, base branch를 이교형/main 브랜치로 변경해서 다시 올려주시면 감사하겠습니다!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants