Skip to content

Conversation

@joyewon0705
Copy link
Collaborator

📌 개요

  • 게시글에 대한 북마크(즐겨찾기) 기능을 구현했습니다.
  • 사용자는 게시글을 북마크에 추가하거나 취소할 수 있으며, Swagger 문서 및 통합 테스트를 포함합니다.

🔨 작업 내용

1. Controller

  • PostBookmarkController 추가

    • POST /api/posts/{postId}/bookmark : 게시글 북마크 등록
    • DELETE /api/posts/{postId}/bookmark : 게시글 북마크 취소
  • PostBookmarkControllerDocs 작성

    • Swagger 문서 정의 (200, 400, 401, 404, 409, 500 응답 예시 포함)

2. Service

  • PostBookmarkService 구현

    • 북마크 등록 로직

      • 사용자/게시글 검증
      • 중복 북마크 시 BOOKMARK_ALREADY_EXISTS 예외 발생
      • 등록 시 bookmarkCount 증가
    • 북마크 취소 로직

      • 북마크 존재하지 않으면 BOOKMARK_NOT_FOUND 예외 발생
      • 삭제 시 bookmarkCount 감소

3. Repository & Entity

  • PostBookmarkRepository

    • existsByUserIdAndPostId(Long userId, Long postId)
    • findByUserIdAndPostId(Long userId, Long postId)
  • PostBookmark 엔티티 수정

    • (post_id, user_id) 복합 Unique 제약 조건 추가
    • @AllArgsConstructor 추가

4. DTO

  • PostBookmarkResponse
    • 게시글 ID와 북마크 수를 응답으로 반환
    • 정적 팩토리 메서드 from(Post post) 제공

5. Exception

  • ErrorCode에 북마크 관련 예외 코드 추가
    • BOOKMARK_ALREADY_EXISTS (POST_007)
    • BOOKMARK_NOT_FOUND (POST_008)

6. Test

  • PostBookmarkServiceTest

    • 등록/취소 성공 및 예외 케이스(존재하지 않는 게시글, 중복, 북마크 없음) 검증
  • PostBookmarkControllerTest

    • 모든 명세 기반 케이스 (성공, 400, 401, 404, 409) 통합 테스트 구현

🔗 관련 이슈

Closes #210

📝 참고 사항

✅ 체크리스트

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

@github-actions github-actions bot changed the title Feat: 게시글 북마크/북마크 취소 API 구현 Feat: 게시글 북마크/북마크 취소 API 구현 (#210) Oct 8, 2025
@joyewon0705 joyewon0705 merged commit a234851 into dev Oct 8, 2025
3 checks passed
@github-actions github-actions bot deleted the Feat/210 branch October 8, 2025 08:53
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