Conversation
- Tag 도메인을 Article 도메인 하위로 통합 - deprecated 엔드포인트 제거 (/all, /all/search, /me/search) - 생성/수정/삭제 API 응답을 204 No Content로 변경 - 생성 API 이미지 필수, 수정 API 이미지 선택으로 변경
- CMissingDataException을 BusinessException + ErrorCode 패턴으로 변경
- MemberController 응답 형식 toNoContent()로 통일 - NotificationSetting 도메인 member 패키지로 이동 - 알림 설정 조회/토글 API 추가
- notificationsetting 도메인을 member 패키지로 통합 - ErrorCode enum 구조 개선 및 중복 제거 - QuerydslConfig, Docker Compose 개발 환경 설정 추가 - AnalyzeStatus, WritingStyle enum 추가 - OAuth 및 각 도메인 서비스 코드 정리
- GET /api/articles: 목록조회 전용 (Pageable만) - GET /api/articles/search: 검색 전용 (keyword, tag, categoryId) - GET /api/articles/me: 내 게시글 목록조회 전용 - GET /api/articles/me/search: 내 게시글 검색 전용 조건문 분기 처리 제거로 단일 책임 원칙 준수
CategoryResponse에 @builder와 from() 정적 팩토리 메서드를 적용하여 객체 생성 방식을 개선하고 전체 코드 포맷팅 정리
- TokenService: reissueToken 로직 수정 (RT 검증 → Redis 대조 → 기존 RT 삭제 → 새 토큰 발급) - LoginResponse, RefreshResponse: record → class + @builder + of() 정적 팩토리 적용 - RefreshTokenService: 미사용 클래스 삭제 - OAuth 관련 클래스 코드 포맷팅 및 정리
|
Caution Review failedThe pull request is closed. Note
|
| Cohort / File(s) | Summary |
|---|---|
토큰 및 인증 관리 src/main/java/com/mylog/domain/auth/service/TokenService.java, src/main/java/com/mylog/external/redis/RedisService.java |
Refresh token과 blacklist 관리를 RedisService로 중앙화했으나, reissueToken에서 제공된 refreshToken을 Redis에 저장된 토큰과 비교하는 로직의 타이밍과 삭제 순서 검증 필요. |
OAuth 사용자 저장 흐름 src/main/java/com/mylog/domain/auth/service/oauth/impl/GoogleOAuthUserService.java, src/main/java/com/mylog/domain/auth/service/oauth/impl/KakaoOAuthUserService.java, src/main/java/com/mylog/domain/auth/service/oauth/impl/NaverOAuthUserService.java, src/main/java/com/mylog/domain/member/service/MemberWriter.java |
authenticate 메서드에서 memberWriter.saveOrUpdate를 호출하는데, saveOrUpdate가 provider/providerId 조회에 실패하면 새 회원 생성. 중복 가입 방지 로직과 provider 필드 업데이트 일관성 확인 필요. |
Article 이미지 처리 src/main/java/com/mylog/domain/article/ArticleService.java |
updateArticle에서 file이 null이거나 empty일 때 imageUrl을 null로 설정하는데, 기존 이미지를 제거할 의도인지 명확하지 않음. 부분 업데이트 시 S3 정리 로직 확인 필요. |
삭제 메서드 리팩토링 src/main/java/com/mylog/domain/member/MemberService.java, src/main/java/com/mylog/domain/member/service/MemberWriter.java |
deleteMember → delete로 변경, writer.delete(member)에서 writer.deleteById(memberId)로 변경. 메시지, 알림, 카테고리 등 FK 제약조건 처리 전략 확인 필요. |
에러 처리 표준화 src/main/java/com/mylog/domain/member/service/NotificationSettingReader.java, src/main/java/com/mylog/domain/comment/service/CommentReader.java, src/main/java/com/mylog/domain/notification/service/NotificationReader.java |
CMissingDataException → BusinessException + ErrorCode로 변경했으나, 일부 메서드가 null을 반환하는 stub으로 변경됨. getComments1 메서드명이 부자연스러우며 실제 구현 상태 확인 필요. |
CommentRepositoryCustom 제거 src/main/java/com/mylog/domain/comment/repository/CommentRepositoryCustom.java |
findMyArticlesComments 메서드가 제거되었으나, 이를 대체하는 쿼리가 명확하지 않음. CommentReader.getComments 구현 완료 필요. |
Tag 도메인 이동 src/main/java/com/mylog/domain/article/entity/Tag.java, src/main/java/com/mylog/domain/article/service/TagWriter.java |
Tag.from(tagname) 팩토리 메서드 추가, TagWriter 새로 추가되었으나 saveTag 메서드 본문이 비워있음. 비동기 저장 로직 구현 상태 확인 필요. |
Configuration 추가 .serena/project.yml, src/main/java/com/mylog/config/QuerydslConfig.java, compose.dev.yml |
Serena 프로젝트 설정 및 QuerydslConfig 추가되었으나, QuerydslConfig가 빈 설정 클래스. Querydsl 의존성 필요 시 설정 누락 확인. |
Estimated code review effort
🎯 4 (Complex) | ⏱️ ~75 minutes
Possibly related PRs
- refactor(common): 머지 충돌 해결 및 보안 코드 정리 #50: JWT 토큰 만료 시간 처리, RedisService refresh token 메서드, JwtAuthenticationFilter 변경 등 토큰 관리 핵심 로직이 동일하게 수정됨.
- Refactor(article): API 스펙 개선 및 구조 리팩토링 #56: ArticleController와 ArticleService의 createArticle 파일 파라미터 필수화, ArticleRepositoryImpl 멤버 타입 변경 등 article 도메인 변경이 겹침.
- Refactor: 폴더 구조 및 코드 리팩토링 #47: OAuth 서비스 주석(OAuthServiceType), ErrorCode, SuccessResponse 등 공통 인프라 변경이 동일.
Poem
🔄 회원과 토큰, 태그를 정리하고
🎯 응답은 204로 맞춰서
🔐 Redis에서 토큰을 지키고
🚀 OAuth 사용자를 우아하게 담아내네
✨ 구조는 깔끔해졌지만, 빈 구현이 노크하고 있어
✨ Finishing Touches
- 📝 Generate docstrings (stacked PR)
- 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Post copyable unit tests in a comment
- Commit unit tests in branch
dev
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.
Comment @coderabbitai help to get the list of available commands and usage tips.
Summary by CodeRabbit
릴리스 노트
새로운 기능
개선사항
기타