refactor: Member, Auth, Image, Cleanup 기능 전반 Kotlin 마이그레이션(#128)#132
Open
chaiminwoo0223 wants to merge 1 commit intodevelopfrom
Open
refactor: Member, Auth, Image, Cleanup 기능 전반 Kotlin 마이그레이션(#128)#132chaiminwoo0223 wants to merge 1 commit intodevelopfrom
chaiminwoo0223 wants to merge 1 commit intodevelopfrom
Conversation
171c1b1 to
3868ccf
Compare
* feat: MemberController.kt 구현 * feat: MemberFacade.kt 구현 * feat: MemberQueryService.kt, MemberCommandService.kt 구현 * feat: MemberRepository.kt, MemberJpaRepository.kt, MemberRepositoryAdapter.kt 구현 * feat: MemberErrorCode.kt, MemberPolicy.kt 구현 * feat: MemberFactory.kt 구현 * feat: AuthCookieHelper.kt 구현 * feat: AuthController.kt 구현 * feat: AuthFacade.kt 구현 * feat: TokenService.kt, KakaoSignupProfileService.kt, KakaoLoginService.kt 구현 * feat: KakaoOauthClient.kt, KakaoOauthProvider.kt, TokenProvider.kt 구현 * feat: KakaoSignupProfileRedisRepository.kt, KakaoSignupProfileRedisRepositoryAdapter.kt 구현 * feat: RefreshTokenRedisRepository.kt, RefreshTokenRedisRepositoryAdapter.kt 구현 * feat: LogoutTokenRedisRepository.kt, LogoutTokenRedisRepositoryAdapter.kt 구현 * feat: AuthErrorCode.kt 구현 * feat: ImageService.kt 구현 * feat: ImageCleanupBatchEvent.kt, ImageEventPublisher.kt, ImageEventListener.kt 구현 * feat: S3ImageStorageClient.kt, S3ImageStorageProvider.kt, TikaImageProbeProvider.kt 구현 * feat: S3ErrorCode.kt, S3ExceptionTranslator.kt 구현 * feat: TikaErrorCode.kt 구현 * feat: ImageErrorCode.kt, ImagePolicy.kt 구현 * feat: ImageConstants.kt 구현 * feat: ImageKeyFactory.kt 구현 * feat: ImageUrlUtil.kt 구현 * feat: HardDeleteExecutor.kt, HardDeleteFacade.kt 구현 * feat: UpdateMemberRequest.kt, PresignProfileImageRequest.kt, ConfirmProfileImageRequest.kt DTO 추가 * feat: LoadMemberDetailResponse.kt, PresignProfileImageResponse.kt DTO 추가 * feat: CreateMemberCommand.kt, PresignedProfileImageInfo.kt DTO 추가 * feat: MemberInfo.kt, MemberDetail.kt DTO 추가 * feat: KakaoSignupRequest.kt, KakaoLoginRequest.kt, LogoutRequest.kt DTO 추가 * feat: LoginResponse.kt, ReissueTokenResponse.kt DTO 추가 * feat: KakaoSignupProfile.kt, TokenInfo.kt, OAuthLoginOutcome.kt DTO 추가 * feat: KakaoProfile.kt, KakaoAccount.kt, KakaoUserInfoResponse.kt, KakaoTokenResponse.kt DTO 추가 * feat: PresignedImageInfo.kt, CleanupImagesResult.kt DTO 추가 * feat: ImageHeadInfo.kt DTO 추가 * refactor: TripReportFacade.confirmImage()에 @transactional 적용 * refactor: auth, image, cleanup 패키지 제거 (Kotlin 마이그레이션 완료) * test: MemberFixture.kt, CreateMemberCommandFixture.kt, UpdateMemberRequestFixture.kt 추가 * test: PresignProfileImageRequestFixture.kt, ConfirmProfileImageRequestFixture.kt 추가 * test: MemberTestHelper.kt 추가 * test: MemberQueryServiceTest.kt, MemberCommandServiceTest.kt 단위 테스트 추가 * test: MemberControllerIntegrationTest.kt 통합 테스트 추가 * test: TokenFixture.kt, KakaoSignupRequestFixture.kt, KakaoLoginRequestFixture.kt, LogoutRequestFixture.kt 추가 * test: KakaoTokenResponseFixture.kt, KakaoUserInfoResponseFixture.kt 추가 * test: TokenTestHelper.kt, KakaoOauthTestHelper.kt, AuthCookieTestHelper.kt 추가 * test: TokenServiceTest.kt, KakaoSignupProfileServiceTest.kt, KakaoLoginServiceTest.kt 단위 테스트 추가 * test: AuthControllerIntegrationTest 통합 테스트 추가 * test: ImageTestConstants.kt, ImageHeadInfoFixture.kt 추가 * test: ImageServiceTest 단위 테스트 추가 * test: BaseUnitTest.kt, BaseIntegrationTest.kt 추가 * test: test java member, auth, image 패키지 제거 (Kotlin 마이그레이션 완료) * chore: build.gradle에 jackson-module-kotlin 의존성 추가 * chore: build.gradle에 kotlin-reactor 의존성 추가
3868ccf to
ee824e6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 작업 내용 및 특이사항
✅ 변경 범위가 커진 이유
기존(약 110~120개)대비 크게 증가했습니다.Member,Auth가 현재 서비스 전반에서 공통적으로 사용되는 핵심 도메인이기 때문입니다.마이그레이션 과정에서 관련 파일들이 함께 변경되었습니다.추가/변경된 파일 위주로 확인해 주시면 감사하겠습니다.✅ Java → Kotlin 마이그레이션 개요
Member,Auth,Image,Cleanup전반을 Java → Kotlin으로 마이그레이션했습니다.Kotlin–Java 혼용 환경에서도 안정적으로 동작하도록 구조를 정리하는 데 초점을 맞췄습니다.정적 팩토리 메서드(of, from)와도메인 책임 구조(Factory, Policy, Service, Facade)를 최대한 유지했습니다.✅ 테스트 코드 Kotlin 마이그레이션
누락된 케이스(완료 상태 검증)를 추가했습니다.접근자 차이(getter 인식 문제, record → data class 전환에 따른 호출 방식 변화 등)를 테스트 단계에서 먼저 확인했습니다.object사용을 지양하고,class + DSL(withXXX) 패턴으로 통일하여 테스트 간 상태 공유 문제를 해결했습니다.✅
@JvmStatic적용으로 인한 Java ↔ Kotlin 정적 호출 문제 해결object에 정의된 메서드는 JVM 레벨에서 기본적으로INSTANCE.create()형태로 노출됩니다.xxxFactory.create()형태의정적(static) 호출 방식을 사용하고 있었습니다.@JvmStatic을 적용하여,create()메서드가 JVM 레벨의 static 메서드로 노출되도록 변경하여 문제를 해결했습니다.@JvmStatic을 제거할 예정입니다.✅ Member 도메인 Kotlin 마이그레이션
MemberControllerKotlin 전환MemberFacadeKotlin 전환MemberQueryService,MemberCommandServiceKotlin 전환MemberRepository,MemberJpaRepository,MemberRepositoryAdapterKotlin 전환MemberErrorCode,MemberPolicyKotlin 전환MemberFactoryKotlin 전환✅ Auth 도메인 Kotlin 마이그레이션
AuthControllerKotlin 전환AuthFacadeKotlin 전환TokenService,KakaoSignupProfileService,KakaoLoginServiceKotlin 전환KakaoOauthClient,KakaoOauthProvider,TokenProviderKotlin 전환KakaoSignupProfileRedisRepository,KakaoSignupProfileRedisRepositoryAdapterKotlin 전환RefreshTokenRedisRepository,RefreshTokenRedisRepositoryAdapterKotlin 전환LogoutTokenRedisRepository,LogoutTokenRedisRepositoryAdapterKotlin 전환AuthErrorCode,AuthCookieHelperKotlin 전환✅ Image 도메인 Kotlin 마이그레이션
ImageServiceKotlin 전환ImageCleanupBatchEvent,ImageEventPublisher,ImageEventListenerKotlin 전환S3ImageStorageClient,S3ImageStorageProvider,TikaImageProbeProviderKotlin 전환S3ErrorCode,TikaErrorCode,ImageErrorCode,ImagePolicyKotlin 전환S3ExceptionTranslatorKotlin 전환ImageConstants,ImageKeyFactory,ImageUrlUtilKotlin 전환✅ Cleanup 도메인 Kotlin 마이그레이션
HardDeleteExecutor,HardDeleteFacadeKotlin 전환✅ Member DTO Kotlin 마이그레이션
UpdateMemberRequest,PresignProfileImageRequest,ConfirmProfileImageRequestKotlin 전환LoadMemberDetailResponse,PresignProfileImageResponseKotlin 전환CreateMemberCommand,PresignedProfileImageInfo,MemberInfo,MemberDetailKotlin 전환✅ Auth DTO Kotlin 마이그레이션
KakaoSignupRequest,KakaoLoginRequest,LogoutRequestKotlin 전환LoginResponse,ReissueTokenResponseKotlin 전환KakaoSignupProfile,OAuthLoginOutcome,TokenInfoKotlin 전환KakaoProfile,KakaoAccount,KakaoUserInfoResponse,KakaoTokenResponseKotlin 전환✅ Image DTO Kotlin 마이그레이션
CleanupImagesResult,PresignedImageInfoKotlin 전환ImageHeadInfoKotlin 전환✅ Test 인프라 공통 베이스 Kotlin 마이그레이션
BaseUnitTest추가 (공통 단위 테스트 설정 추상화)BaseIntegrationTest추가 (통합 테스트 환경 공통 설정 추상화)✅ build.gradle 의존성 추가
kotlin-reactor의존성 추가 (Reactor ↔ Kotlin 확장 함수 지원)🌱 관련 이슈
🔍 참고사항(선택)
TripReportFacade.confirmImage()에@Transactional적용RedisTemplate에ObjectMapper주입하여GenericJackson2JsonRedisSerializer 역직렬화 문제 해결📚 기타(선택)