Skip to content

Conversation

@joyewon0705
Copy link
Collaborator

📌 개요

  • 댓글에 대한 좋아요 및 좋아요 취소 기능을 구현했습니다.
  • 좋아요 관련 API 전반(Controller, Service, Repository, DTO, Exception, Swagger, Test)을 포함합니다.

🔨 작업 내용

  1. Controller

    • CommentLikeController 추가

      • POST /api/posts/{postId}/comments/{commentId}/like: 댓글 좋아요 등록
      • DELETE /api/posts/{postId}/comments/{commentId}/like: 댓글 좋아요 취소
  2. Service

    • CommentLikeService 구현
    • 사용자 및 댓글 검증 로직 추가
    • 중복 좋아요 시 COMMENT_005 예외 발생
    • 좋아요 취소 시 COMMENT_006 예외 처리 및 likeCount 감소 반영
  3. Repository

    • CommentLikeRepository 추가
    • existsByUserIdAndCommentId, findByUserIdAndCommentId 메서드 구현
  4. Entity

    • Comment 엔티티에 likeCount 필드 추가 (@Column(nullable = false, default = 0))
    • increaseLikeCount(), decreaseLikeCount() 메서드 추가
  5. DTO

    • CommentLikeResponse 추가 (commentId, likeCount 반환)
  6. ErrorCode

    • COMMENT_005: 이미 좋아요한 댓글입니다.
    • COMMENT_006: 좋아요 기록이 없습니다.
  7. GlobalExceptionHandler

    • HttpRequestMethodNotSupportedException, NoHandlerFoundException 처리 추가 (400으로 변환)
  8. Swagger 문서 (CommentLikeControllerDocs)

    • 좋아요 등록/취소 API 명세 작성
    • 성공 및 에러 응답 예시를 실제 테스트 결과와 동일하게 반영

🔗 관련 이슈

Closes #181

📝 참고 사항

  • Comment 엔티티에 likeCount 필드 추가 -> 노션 ERD에 반영해두었습니다.
  • 추후 트래픽 증가 시 비동기 카운팅(Redis 등)으로 확장 가능.
  • CommentRepositoryImplTODO 주석 추가: QueryDSL 조회 시 likeCount 포함 개선 예정.

✅ 체크리스트

  • 기능 동작 확인
  • 테스트 코드 작성
  • 문서/주석 추가 및 최신화

@github-actions github-actions bot changed the title Feat: 댓글 좋아요/취소 API 구현 Feat: 댓글 좋아요/취소 API 구현 (#181) Oct 7, 2025
@joyewon0705 joyewon0705 changed the title Feat: 댓글 좋아요/취소 API 구현 (#181) Feat: 댓글 좋아요/좋아요 취소 API 구현 (#181) Oct 7, 2025
@joyewon0705 joyewon0705 merged commit fd6f8bf into dev Oct 7, 2025
4 checks passed
@github-actions github-actions bot deleted the Feat/181 branch October 7, 2025 08:11
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.

4 participants