Skip to content

Conversation

@tape4
Copy link
Member

@tape4 tape4 commented Oct 6, 2025

No description provided.

SiwonHae and others added 30 commits May 16, 2025 12:25
fix bug empty files sent when onboarding & update memebr
fix: /member/me with onboarding user return 401 Unauthorized
refactor: remove terms properties in member entity
♻️ [Refactor] 폰트 이름 중복 검사 HTTP METHOD 변경
- FontServiceImpl 내 폰트 생성 및 완료 시점에 이벤트 발행 로직 추가
  - FontCreateRequestNotificationEvent
  - FontCreateCompleteNotificationEvent
- SmsService 인터페이스 및 구현체에 관련 메서드 추가
- 통합 테스트(FontServiceIntegrationTest, FontControllerIntegrationTest)에서 이벤트 및 알림 로직 검증 추가

비동기 이벤트 기반으로 알림 로직을 분리하여 서비스 응답 속도 개선 및 관심사 분리 달성
이벤트 기반 sms 알림 로직 도입 및 통합 테스트 추가
tape4 and others added 11 commits July 7, 2025 03:09
- Log errors with tempKey and fixedKey
- Rethrow exception so @AfterThrowing aspect can pick it up
- Catch RestTemplate/IO errors and log warning
- Prevent async exceptions from bubbling up
…scord

chore: Improve S3 Event Listener and Discord Notification Error Handling
- enable Spring Retry (`@EnableRetry`) and Async processing (`@EnableAsync`)
- extend `ProfileImageUpdatedEvent` to include `memberId`
- implement `ProfileImageUpdateListener`:
  * annotate `afterCommit` with `@Async`, `@Retryable(maxAttempts=3, backoff=2000)` and `@Transactional(propagation=REQUIRES_NEW)`
  * log current attempt/count via `RetrySynchronizationManager`
  * copy S3 object from `tempKey` → `fixedKey`, delete `tempKey`, then update member’s `profileImageKey`
  * add `@Recover` to record permanent failures in `ProfileImageDlqRepository` and emit error logs (Discord alert TODO)
  * add `afterRollback` listener to clean up orphan `tempKey` on transaction rollback
- create `ProfileImageDlq` JPA entity and `ProfileImageDlqRepository` for DLQ persistence
- refactor `FileServiceImpl`:
  * remove inline member update
  * stage upload to S3 under `tempKey`, save metadata with `fixedKey` placeholder
  * publish `ProfileImageUpdatedEvent` for AFTER_COMMIT promotion
  * enhance logging and add method-level Javadoc
- update `RegistrationController` to defer member onboarding until after file upload event
- refactor `MemberUpdateService` interface to accept `memberId` instead of `Member` object
- adjust unit test container to remove `MemberUpdateService` from `FileServiceImpl` builder
- Remove uploadProfileImage API and service method references
- Delete ProfileImageUpdatedEvent DTO and ProfileImageUpdateListener listener
- Remove uploadProfileImage/ getProfileImageUrl methods from CloudStorageService/AmazonS3BucketService
- Strip out profileImageKey fields from Member domain, entity, DTOs, controllers, tests
- Clean up DevTokenInitializer default profileImageKey initialization
- Update integration and unit tests to remove profile image upload and URL assertions
- Simplify MemberController/ProfileController/RegistrationController to no longer expect multipart file handling
fix: remove profile image logics when login
@tape4 tape4 requested a review from SiwonHae as a code owner October 6, 2025 21:49
@tape4 tape4 merged commit 3885a8d into main Oct 6, 2025
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants