[FEAT] 메이커스팀 구성원 추가 API 개발#604
Conversation
Walkthrough메이커스팀 구성원 생성 요청 DTO와 API가 추가되었습니다. 회원 생성·복구, 메이커스 활동 생성 및 ACTIVE 중복 검증이 연결되었으며, 관련 도메인 타입·JPA 매핑·마이그레이션과 테스트가 확장되었습니다. Changes메이커스팀 구성원 생성
Estimated code review effort: 4 (Complex) | ~45 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
Test Results426 tests 426 ✅ 12s ⏱️ Results for commit 22561b4. |
📊테스트 커버리지
|
There was a problem hiding this comment.
🧹 Nitpick comments (2)
src/main/java/org/ject/support/admin/member/service/AdminMemberMakersUseCase.java (1)
7-7: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value사용하지 않는 import 제거
jakarta.validation.Valid는 이 클래스 내에서 사용되지 않으므로 제거하는 것이 좋습니다. 입력값 검증은 이미 Controller 계층에서@Valid를 통해 수행되고 있습니다.♻️ 수정 제안
-import jakarta.validation.Valid;🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/main/java/org/ject/support/admin/member/service/AdminMemberMakersUseCase.java` at line 7, Remove the unused jakarta.validation.Valid import from AdminMemberMakersUseCase; keep validation responsibility in the Controller layer unchanged.src/main/java/org/ject/support/domain/member/repository/MemberActivityRepository.java (1)
27-34: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueJPQL의 패키지명 하드코딩 리팩토링 제안
JPQL 내부에
org.ject.support.domain.member.MemberType.MAKERS와 같이 패키지 경로를 포함한 FQCN(Fully Qualified Class Name)을 하드코딩하면, 추후 Enum의 패키지나 클래스명이 변경될 때 런타임 에러가 발생할 위험이 있습니다.다음과 같이 Spring Data JPA의 쿼리 메서드(Derived Query)와
default메서드를 조합하여 타입 안정성을 확보하는 방식을 권장합니다.♻️ 쿼리 메서드를 활용한 리팩토링 예시
import org.ject.support.domain.member.ActivityStatus; import org.ject.support.domain.member.MemberType; // ... default boolean existsActiveMakersActivityByMemberId(Long memberId) { return existsByMemberIdAndMemberTypeAndActivityStatus( memberId, MemberType.MAKERS, ActivityStatus.ACTIVE ); } boolean existsByMemberIdAndMemberTypeAndActivityStatus( Long memberId, MemberType memberType, ActivityStatus activityStatus );🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/main/java/org/ject/support/domain/member/repository/MemberActivityRepository.java` around lines 27 - 34, Replace the hard-coded JPQL in existsActiveMakersActivityByMemberId with a derived repository method named existsByMemberIdAndMemberTypeAndActivityStatus, and implement the existing method as a default wrapper that passes MemberType.MAKERS and ActivityStatus.ACTIVE. Add the required enum imports and preserve the current memberId-based behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@src/main/java/org/ject/support/admin/member/service/AdminMemberMakersUseCase.java`:
- Line 7: Remove the unused jakarta.validation.Valid import from
AdminMemberMakersUseCase; keep validation responsibility in the Controller layer
unchanged.
In
`@src/main/java/org/ject/support/domain/member/repository/MemberActivityRepository.java`:
- Around line 27-34: Replace the hard-coded JPQL in
existsActiveMakersActivityByMemberId with a derived repository method named
existsByMemberIdAndMemberTypeAndActivityStatus, and implement the existing
method as a default wrapper that passes MemberType.MAKERS and
ActivityStatus.ACTIVE. Add the required enum imports and preserve the current
memberId-based behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 494bc06b-6662-4f0a-8c8f-244754c8b5b7
📒 Files selected for processing (23)
src/main/java/org/ject/support/admin/member/controller/AdminMemberMakersApiSpec.javasrc/main/java/org/ject/support/admin/member/controller/AdminMemberMakersController.javasrc/main/java/org/ject/support/admin/member/controller/AdminMemberSemesterController.javasrc/main/java/org/ject/support/admin/member/dto/request/CreateMemberMakersRequest.javasrc/main/java/org/ject/support/admin/member/dto/request/CreateMemberRequest.javasrc/main/java/org/ject/support/admin/member/dto/request/CreateMemberSemesterRequest.javasrc/main/java/org/ject/support/admin/member/service/AdminMemberActivityService.javasrc/main/java/org/ject/support/admin/member/service/AdminMemberMakersUseCase.javasrc/main/java/org/ject/support/admin/member/service/AdminMemberSemesterUseCase.javasrc/main/java/org/ject/support/admin/member/service/AdminMemberService.javasrc/main/java/org/ject/support/domain/member/Availability.javasrc/main/java/org/ject/support/domain/member/CareerLevel.javasrc/main/java/org/ject/support/domain/member/MakersTeam.javasrc/main/java/org/ject/support/domain/member/entity/MemberActivity.javasrc/main/java/org/ject/support/domain/member/entity/MemberMakers.javasrc/main/java/org/ject/support/domain/member/exception/MemberErrorCode.javasrc/main/java/org/ject/support/domain/member/repository/MemberActivityRepository.javasrc/main/resources/db/migration/V35__rename_member_makers_team_name_to_makers_team.sqlsrc/test/java/org/ject/support/admin/member/controller/AdminMemberMakersControllerTest.javasrc/test/java/org/ject/support/admin/member/service/AdminMemberActivityServiceTest.javasrc/test/java/org/ject/support/admin/member/service/AdminMemberSemesterUseCaseTest.javasrc/test/java/org/ject/support/domain/member/entity/MemberActivityTest.javasrc/test/java/org/ject/support/domain/member/repository/MemberActivityRepositoryTest.java
#️⃣연관된 이슈
close #588
📝 작업 내용
member_makers컬럼 매핑을 정리했습니다.🙏 리뷰 요구사항 (선택)
변경 범위가 넓어 커밋 단위를 세분화해 두었습니다. 가능하면 커밋 단위로 리뷰 부탁드립니다.
테스트는 관련 범위 기준으로 통과 확인했습니다.
Summary by CodeRabbit
새로운 기능
버그 수정
개선