Revert "feat: 이미지 로딩 시에 webp가 존재하면 로딩 아니면 원본 로딩 기능 추가"#1168
Revert "feat: 이미지 로딩 시에 webp가 존재하면 로딩 아니면 원본 로딩 기능 추가"#1168lepitaaar merged 1 commit intodevelop/befrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning
|
| Cohort / File(s) | Summary |
|---|---|
DTO 단순화 backend/src/main/java/moadong/club/payload/dto/ClubDetailedResult.java |
ImageDisplayUrlResolver 종속성을 제거하고, 공개 오버로드 메서드 삭제. 로고, 커버, 피드 필드를 ClubRecruitmentInformation에서 직접 할당하도록 구현 변경. |
서비스 리팩토링 backend/src/main/java/moadong/club/service/ClubProfileService.java, backend/src/main/java/moadong/club/service/ClubSearchService.java |
ImageDisplayUrlResolver 및 ClubImageUrlPersistenceService 종속성 제거. 클럽 검색 및 상세 조회에서 URL 해석 및 지속성 로직 삭제. 공개 API는 변경 없음. |
이미지 해석기 제거 backend/src/main/java/moadong/media/resolver/ImageDisplayUrlResolver.java, backend/src/main/java/moadong/media/resolver/NoOpImageDisplayUrlResolver.java, backend/src/main/java/moadong/media/resolver/PreferWebpImageDisplayUrlResolver.java |
ImageDisplayUrlResolver 인터페이스와 두 구현체(NoOp, PreferWebp) 완전 삭제. S3 HEAD 요청 기반 WebP 변환 로직 제거. |
지속성 서비스 제거 backend/src/main/java/moadong/club/service/ClubImageUrlPersistenceService.java |
비동기 예약 기반의 해석된 URL 지속성 메커니즘 전체 삭제. 클럽 저장소 의존성 및 null 체크 로직 제거. |
구성 변경 backend/src/main/java/moadong/global/config/AsyncConfig.java |
fcmAsyncExecutor 메서드 이름을 taskExecutor로 변경. imageUrlAsyncExecutor 빈 설정 삭제. 큐 용량 및 거부 정책 설정 제거. |
테스트 정리 backend/src/test/java/moadong/club/service/ClubImageUrlPersistenceServiceTest.java, backend/src/test/java/moadong/club/service/ClubSearchServiceTest.java, backend/src/test/java/moadong/media/resolver/PreferWebpImageDisplayUrlResolverTest.java, backend/src/test/java/moadong/unit/club/ClubProfileServiceTest.java |
삭제된 컴포넌트 관련 테스트 전체 제거. 모킹된 의존성 제거 및 스텁 정리. |
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
- feat: 이미지 로딩 시에 webp가 존재하면 로딩 아니면 원본 로딩 기능 추가 #1134: 메인 PR은
#1134에서도입한 ImageDisplayUrlResolver, 구현체, ClubImageUrlPersistenceService, 비동기 빈을 정확히 제거하며, 이전 변경 사항을 되돌리는 직접적 관련성이 있습니다. - [feature] React Native 알림 기능 구현 API #792: 동일한 AsyncConfig 클래스를 수정하여 fcm 비동기 executor 빈 변경 및 imageUrl 비동기 executor 제거 시 관련이 있습니다.
- [feature] cover image 업로드 및 삭제 기능 구현 #537: ClubDetailedResult의 cover 필드 추가 및 ClubRecruitmentInformation에서 초기화하는 변경으로, 메인 PR의 커버/로고 데이터 처리 단순화와 코드 레벨 관련성이 있습니다.
Suggested labels
🔨 Refactor, 💾 BE
Suggested reviewers
- Zepelown
- seongwon030
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | PR 제목이 변경 내용과 명확하게 관련되어 있으며, 이전에 추가된 기능을 되돌리는 revert임을 명시하고 있습니다. |
| Linked Issues check | ✅ Passed | 연결된 이슈 MOA-593은 이미지 컨버팅 서버 구축 기능 구현을 다루고 있으며, 이 PR은 해당 기능을 완전히 제거하는 revert이므로 요구사항과 일치합니다. |
| Out of Scope Changes check | ✅ Passed | 모든 변경 사항은 이미지 URL 해석(resolver) 및 URL 지속성(persistence) 로직 제거와 관련된 것으로, 이전 기능 구현을 되돌리는 범위 내에 있습니다. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ 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
revert-1134-feature/#1133-image-convert-MOA-593
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.
Test Results72 tests 72 ✅ 18s ⏱️ Results for commit 5ed1bd4. |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
backend/src/main/java/moadong/global/config/AsyncConfig.java (1)
15-25:⚠️ Potential issue | 🟠 Major리버트가 불완전함: 빈 이름이 원본 상태로 복원되지 않음
메서드명
taskExecutor()는 올바르게 원본 상태로 복원되었으나, 빈 이름이"fcmAsync"로 유지되어 있습니다. 원본 코드(ac4c3b3)에서는@Bean(name = "taskExecutor")였으므로, 빈 이름도"taskExecutor"로 복원해야 합니다.현재 상태는 다음 문제를 야기합니다:
@Qualifier("taskExecutor")로 자동 주입하는 코드가 빈을 찾을 수 없음- PR
#1134이전에 이 빈을 참조하는 코드들이 제대로 복원되지 않을 가능성빈 이름을
"taskExecutor"로 수정하여 완전한 리버트를 완료해주세요.
🤖 Fix all issues with AI agents
In `@backend/src/test/java/moadong/unit/club/ClubProfileServiceTest.java`:
- Around line 28-34: The test is missing mocks for two constructor-injected
dependencies of ClubProfileService which prevents `@InjectMocks` from fully
satisfying its `@AllArgsConstructor`: add `@Mock` declarations for
ClubSearchRepository and RecruitmentStateCalculator alongside the existing
ClubRepository and Javers mocks so that ClubProfileService is constructed
correctly; ensure the test class declares `@Mock` private ClubSearchRepository
clubSearchRepository; and `@Mock` private RecruitmentStateCalculator
recruitmentStateCalculator; so future tests like updateClubRecruitmentInfo and
others that rely on those collaborators will not fail injection.
🧹 Nitpick comments (1)
backend/src/test/java/moadong/unit/club/ClubProfileServiceTest.java (1)
33-34:Javersmock의 접근 제어자 누락다른
@Mock필드는private으로 선언되어 있으나,Javers만 접근 제어자가 빠져 있습니다 (package-private). 일관성을 위해private을 추가해 주세요.제안
`@Mock` -Javers javers; +private Javers javers;
| @Mock | ||
| private ClubRepository clubRepository; | ||
| @Mock | ||
| private ClubSearchRepository clubSearchRepository; | ||
| @Mock | ||
| private RecruitmentStateCalculator recruitmentStateCalculator; | ||
| @Mock | ||
| private Javers javers; | ||
| @Mock | ||
| private ImageDisplayUrlResolver imageDisplayUrlResolver; | ||
| @Mock | ||
| private ClubImageUrlPersistenceService clubImageUrlPersistenceService; | ||
|
|
||
| @InjectMocks | ||
| private ClubProfileService clubProfileService; | ||
|
|
||
| @Mock | ||
| Javers javers; |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's find the ClubProfileService class
fd -e java -path "*club*" -name "ClubProfileService.java"Repository: Moadong/moadong
Length of output: 227
🏁 Script executed:
# Let's also locate the test file
fd -e java -path "*test*" -name "ClubProfileServiceTest.java"Repository: Moadong/moadong
Length of output: 227
🏁 Script executed:
# Once we have paths, let's examine the ClubProfileService class structure
rg -A 30 "public class ClubProfileService" --type javaRepository: Moadong/moadong
Length of output: 13028
🏁 Script executed:
# Check the constructor annotation and parameters
rg -B 5 -A 20 "class ClubProfileService" --type javaRepository: Moadong/moadong
Length of output: 10448
🏁 Script executed:
# Let's see the complete test file to check all test methods
cat -n backend/src/test/java/moadong/unit/club/ClubProfileServiceTest.javaRepository: Moadong/moadong
Length of output: 2426
ClubProfileService의 필수 의존성에 대한 @Mock 선언 누락
ClubProfileService는 @AllArgsConstructor를 사용하며 생성자 주입으로 ClubRepository, ClubSearchRepository, RecruitmentStateCalculator, Javers 4개의 의존성을 필요로 합니다. 현재 테스트에서 ClubSearchRepository와 RecruitmentStateCalculator의 @Mock 선언이 누락되어 있어, @InjectMocks가 모든 생성자 파라미터를 만족하지 못해 제대로 된 의존성 주입이 실패할 수 있습니다.
현재 테스트 메서드들(updateClubInfo)이 이 두 의존성을 직접 사용하지 않아 통과하고 있지만, 향후 다른 메서드(updateClubRecruitmentInfo 등)를 테스트할 때 문제가 발생합니다.
🔧 누락된 Mock 추가 제안
`@Mock`
private ClubRepository clubRepository;
+@Mock
+private ClubSearchRepository clubSearchRepository;
+@Mock
+private RecruitmentStateCalculator recruitmentStateCalculator;
`@InjectMocks`
private ClubProfileService clubProfileService;
`@Mock`
Javers javers;🤖 Prompt for AI Agents
In `@backend/src/test/java/moadong/unit/club/ClubProfileServiceTest.java` around
lines 28 - 34, The test is missing mocks for two constructor-injected
dependencies of ClubProfileService which prevents `@InjectMocks` from fully
satisfying its `@AllArgsConstructor`: add `@Mock` declarations for
ClubSearchRepository and RecruitmentStateCalculator alongside the existing
ClubRepository and Javers mocks so that ClubProfileService is constructed
correctly; ensure the test class declares `@Mock` private ClubSearchRepository
clubSearchRepository; and `@Mock` private RecruitmentStateCalculator
recruitmentStateCalculator; so future tests like updateClubRecruitmentInfo and
others that rely on those collaborators will not fail injection.
Reverts #1134
Summary by CodeRabbit
릴리스 노트
Refactor
Chores