Skip to content

Comments

Revert "feat: 이미지 로딩 시에 webp가 존재하면 로딩 아니면 원본 로딩 기능 추가"#1168

Merged
lepitaaar merged 1 commit intodevelop/befrom
revert-1134-feature/#1133-image-convert-MOA-593
Feb 9, 2026
Merged

Revert "feat: 이미지 로딩 시에 webp가 존재하면 로딩 아니면 원본 로딩 기능 추가"#1168
lepitaaar merged 1 commit intodevelop/befrom
revert-1134-feature/#1133-image-convert-MOA-593

Conversation

@lepitaaar
Copy link
Contributor

@lepitaaar lepitaaar commented Feb 9, 2026

Reverts #1134

Summary by CodeRabbit

릴리스 노트

  • Refactor

    • 이미지 URL 처리 로직을 단순화하여 코드 복잡도 감소
    • 클럽 상세 정보 및 검색 결과 조회 성능 개선
    • 비동기 처리 구성 최적화 및 불필요한 의존성 제거
  • Chores

    • 관련 테스트 코드 정리 및 불필요한 모의 객체 제거

@vercel
Copy link

vercel bot commented Feb 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
moadong Ready Ready Preview, Comment Feb 9, 2026 3:37am

@lepitaaar lepitaaar added 💾 BE Backend 🚀 hotfix 즉시 릴리즈할 부분 labels Feb 9, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 9, 2026

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Invalid regex pattern for base branch. Received: "**" at "reviews.auto_review.base_branches[0]"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

PR은 이미지 URL 해석 및 지속성 메커니즘을 제거하는 리팩토링입니다. ImageDisplayUrlResolver 인터페이스, 구현체, ClubImageUrlPersistenceService, 관련 비동기 빈 설정과 이들을 사용하는 모든 코드를 삭제하고, 클럽 상세 정보 DTO를 단순화합니다.

Changes

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

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.

❤️ Share

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

@lepitaaar lepitaaar merged commit 9206e16 into develop/be Feb 9, 2026
4 of 5 checks passed
@github-actions
Copy link

github-actions bot commented Feb 9, 2026

Test Results

72 tests   72 ✅  18s ⏱️
14 suites   0 💤
14 files     0 ❌

Results for commit 5ed1bd4.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: Javers mock의 접근 제어자 누락

다른 @Mock 필드는 private으로 선언되어 있으나, Javers만 접근 제어자가 빠져 있습니다 (package-private). 일관성을 위해 private을 추가해 주세요.

제안
 `@Mock`
-Javers javers;
+private Javers javers;

Comment on lines 28 to +34
@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;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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 java

Repository: Moadong/moadong

Length of output: 13028


🏁 Script executed:

# Check the constructor annotation and parameters
rg -B 5 -A 20 "class ClubProfileService" --type java

Repository: 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.java

Repository: Moadong/moadong

Length of output: 2426


ClubProfileService의 필수 의존성에 대한 @Mock 선언 누락

ClubProfileService@AllArgsConstructor를 사용하며 생성자 주입으로 ClubRepository, ClubSearchRepository, RecruitmentStateCalculator, Javers 4개의 의존성을 필요로 합니다. 현재 테스트에서 ClubSearchRepositoryRecruitmentStateCalculator@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💾 BE Backend 🚀 hotfix 즉시 릴리즈할 부분

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant