Skip to content

#194 [Refactor] 이미지 리소스 URL 리다이렉트 통일 및 업로드 중복 제거#195

Open
jucheonsu wants to merge 1 commit intodevfrom
refactor/#194
Open

#194 [Refactor] 이미지 리소스 URL 리다이렉트 통일 및 업로드 중복 제거#195
jucheonsu wants to merge 1 commit intodevfrom
refactor/#194

Conversation

@jucheonsu
Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

📌 공유 사항

  1. 배틀 썸네일/철학자(배틀·기본)/캐릭터 이미지 응답 경로를 리소스 리다이렉트(/api/v1/resources/images/...) 기준으로 통일했습니다.
  2. 업로드 키 생성 시 UUID 접두사를 제거하고 원본 파일명(안전 sanitize 적용)을 사용하도록 정리했습니다.
  3. 동일 파일명 또는 동일 파일 내용(해시)인 경우 기존 리소스를 재사용하도록 로컬 드래프트/S3 업로드 로직을 보강했습니다.
  4. 배틀 수정 시 공유 리소스가 다른 배틀/옵션에서 참조 중이면 삭제되지 않도록 참조 카운트 기반 정리를 추가했습니다.

✅ 체크리스트

  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?
  • 이미지 URL 응답이 리다이렉트 경로 기준으로 일관되게 내려가는지 확인했나요?

📝 작업 내용

♻️ Refactor

내용 파일
업로드 키 UUID 제거 및 파일명 sanitize(한글 포함) 정리 FileUploadController.java, LocalDraftFileStorageService.java
로컬 드래프트에서 이름/내용(해시) 기반 중복 재사용 및 충돌 처리 LocalDraftFileStorageService.java
S3 업로드에서 키/내용(sha256, md5/etag) 기반 중복 재사용 로직 추가 S3UploadServiceImpl.java
배틀 이미지 정리 시 참조 카운트 기반 안전 삭제 적용 BattleServiceImpl.java, BattleRepository.java, BattleOptionRepository.java
사용자 이미지 URL 응답 리다이렉트 경로로 통일 MypageService.java, PerspectiveService.java, PerspectiveCommentService.java
URL 제공 방식 변경에 맞춘 단위 테스트 갱신 MypageServiceTest.java

🧪 검증

  • ./gradlew.bat compileJava
  • ./gradlew.bat test --tests "com.swyp.picke.domain.admin.controller.AdminContentCreationIntegrationTest" --tests "com.swyp.picke.domain.user.service.MypageServiceTest"

💬 리뷰 요구사항

동일 이미지 재업로드 시 키/콘텐츠 기준 재사용이 의도대로 동작하는지, 그리고 사용자 응답 이미지 URL이 리다이렉트 경로로 일관되게 내려가는지 확인 부탁드립니다.

Closes #194

@jucheonsu jucheonsu requested review from Dante0922, HYH0804 and si-zero and removed request for Dante0922 April 17, 2026 04:01
@jucheonsu jucheonsu self-assigned this Apr 17, 2026
@jucheonsu jucheonsu added the ♻️ Refactor (리팩토링) 코드 구조 개선 및 성능 최적화를 위해 사용합니다. label Apr 17, 2026
Copy link
Copy Markdown
Contributor

@si-zero si-zero left a comment

Choose a reason for hiding this comment

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

고생하셨습니다.

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

Labels

♻️ Refactor (리팩토링) 코드 구조 개선 및 성능 최적화를 위해 사용합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

♻️ Refactor: 이미지 리소스 URL 리다이렉트 통일 및 업로드 중복 제거

2 participants