Skip to content

✨Feat: 댓글 목록/카운트 Redis 캐시 적용#40

Merged
angoroa merged 1 commit intodevelopfrom
feat/redis
Feb 2, 2026
Merged

✨Feat: 댓글 목록/카운트 Redis 캐시 적용#40
angoroa merged 1 commit intodevelopfrom
feat/redis

Conversation

@angoroa
Copy link
Copy Markdown
Member

@angoroa angoroa commented Feb 2, 2026

#️⃣ Issue Number

  • closed #

📝 요약(Summary)

댓글 도메인에 Redis 캐시를 적용하기 위해 응답 구조와 서비스 시그니처를 정리했습니다.

  • 댓글 목록 조회 응답을 ListCommentListResponse로 래핑하여 캐시 안정성 확보
  • 댓글 목록(commentList) 및 댓글 수(commentCount)에 Redis 캐시 적용
  • 댓글 생성/삭제 시 관련 캐시를 함께 무효화하여 데이터 정합성 유지
  • commentList 캐시에 대해 전용 Serializer 및 TTL 설정 추가

🛠️ PR 유형

어떤 변경 사항이 있나요?

  • 새로운 기능 추가
  • 코드 리팩토링
  • 버그 수정
  • CSS 등 사용자 UI 디자인 변경
  • 코드에 영향을 주지 않는 변경사항
  • 주석 추가 및 수정
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정
  • 파일 혹은 폴더명 수정
  • 파일 혹은 폴더 삭제

📸스크린샷 (선택

💬 공유사항 to 리뷰어

  • 댓글 목록 캐시는 List<CommentResponse> 대신
    CommentListResponse로 래핑하여 직렬화/역직렬화 타입을 명확히 했습니다.
  • 댓글 생성/삭제 시 commentList, commentCount를 함께 evict 하여
    캐시 불일치가 발생하지 않도록 처리했습니다.
  • commentCount는 단순 타입(Long)이므로 별도 CacheConfig 없이 기본 설정을 사용했습니다.

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • 커밋 메시지 컨벤션에 맞게 작성했습니다.
  • 변경 사항에 대해 로컬 테스트를 진행했습니다.

Summary by CodeRabbit

릴리스 노트

  • 성능 개선
    • 댓글 목록 조회 성능을 향상시키기 위해 캐싱을 추가했습니다.
    • 댓글 관련 작업(생성, 삭제, 조회, 개수 확인)에 캐싱을 적용하여 응답 속도가 개선됩니다.

@angoroa angoroa self-assigned this Feb 2, 2026
@angoroa angoroa merged commit a1286c2 into develop Feb 2, 2026
1 check was pending
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 2, 2026

Caution

Review failed

The pull request is closed.

둘러보기

이 PR은 댓글 기능에 Redis 캐싱을 도입하고 응답 구조를 개선합니다. 새로운 CommentListResponse 래퍼를 도입하여 댓글 목록을 반환하고, 서비스 메서드에 @Cacheable@CacheEvict 어노테이션을 추가하며, Redis 캐시 설정을 확장하여 댓글 데이터의 직렬화를 지원합니다.

변경사항

전체 / 파일(s) 요약
컨트롤러 업데이트
src/main/java/com/be/sportizebe/domain/comment/controller/CommentController.java
getComments 반환 타입을 BaseResponse<List<CommentResponse>>에서 BaseResponse<CommentListResponse>로 변경하고, deleteComment 호출 시 postId 파라미터 추가.
응답 DTO
src/main/java/com/be/sportizebe/domain/comment/dto/response/CommentListResponse.java
새로운 레코드 CommentListResponse 추가: List<CommentResponse> comments 필드와 정적 팩토리 메서드 of() 포함.
서비스 인터페이스 및 구현체
src/main/java/com/be/sportizebe/domain/comment/service/CommentService.java, src/main/java/com/be/sportizebe/domain/comment/service/CommentServiceImpl.java
getCommentsByPostId 반환 타입을 CommentListResponse로 변경, deleteComment 시그니처에 postId 파라미터 추가, @Cacheable@CacheEvict 어노테이션으로 캐싱 구성.
Redis 캐시 설정
src/main/java/com/be/sportizebe/global/config/RedisCacheConfig.java
CommentListResponse 직렬화 지원 추가, "commentList" 캐시 항목(TTL 30초) 및 "commentCount" 캐시 설정 추가, ObjectMapper 설정 확대.

예상 코드 리뷰 노력도

🎯 3 (Moderate) | ⏱️ ~25 minutes

관련 PR

🐰 캐시 속에 댓글이 소복이 담기고,
래퍼에 감싸인 목록들이 춤을 추네.
Redis의 마법으로 속도는 더욱 빠르고,
응답은 구조화되어 아름답기까지.
다섯 파일의 조화로운 변화, 축하하노라! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/redis

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

1 participant