-
Notifications
You must be signed in to change notification settings - Fork 0
refactor: StudyLogDailyMission, DailyMission, Mission 기능 전반 Kotlin 마이그레이션(#122) #125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…그레이션(#122) * feat: StudyLogDailyMissionQueryService.kt, StudyLogDailyMissionCommandService.kt 구현 * feat: StudyLogDailyMissionRepository.kt, StudyLogDailyMissionJpaRepository.kt, StudyLogDailyMissionRepositoryAdapter.kt 구현 * feat: StudyLogDailyMissionFactory.kt 구현 * feat: DailyMissionQueryService.kt, DailyMissionCommandService.kt 구현 * feat: DailyMissionRepository.kt, DailyMissionJpaRepository.kt, DailyMissionRepositoryAdapter.kt 구현 * feat: DailyMissionErrorCode.kt, DailyMissionPolicy.kt 구현 * feat: DailyMissionFactory 구현 * feat: MissionController.kt 구현 * feat: MissionFacade.kt 구현 * feat: MissionQueryService.kt, MissionCommandService.kt 구현 * feat: MissionRepository.kt, MissionJpaRepository.kt, MissionRepositoryAdapter.kt 구현 * feat: MissionErrorCode.kt, MissionPolicy.kt 구현 * feat: MissionFactory.kt 구현 * feat: StudyLogDailyMissionInfo.kt DTO 추가 * feat: DailyMissionInfo DTO 추가 * feat: CreateMissionRequest.kt, UpdateMissionRequest.kt DTO 추가 * feat: CreateMissionResponse.kt, LoadMissionInfoResponse.kt DTO 추가 * feat: MissionInfo.kt, MissionsInfo.kt DTO 추가 * refactor: record → data class 전환에 따른 DTO 접근자 호출 방식(x() → getX()) 수정 * refactor: java studylog application 패키지 제거 (Kotlin 마이그레이션 완료) * refactor: java studylog infra jpa 패키지 제거 (Kotlin 마이그레이션 완료) * refactor: java studylog domain factory 패키지 제거 (Kotlin 마이그레이션 완료) * refactor: java mission presentation, application 패키지 제거 (Kotlin 마이그레이션 완료) * refactor: java mission infra jpa 패키지 제거 (Kotlin 마이그레이션 완료) * refactor: java mission domain error, policy 패키지 제거 (Kotlin 마이그레이션 완료) * test: StudyLogDailyMissionFixture.kt 추가 * test: StudyLogDailyMissionTestHelper.kt 추가 * test: StudyLogDailyMissionQueryServiceTest.kt, StudyLogDailyMissionCommandServiceTest.kt 단위 테스트 추가 * test: DailyMissionFixture.kt 추가 * test: DailyMissionTestHelper.kt 추가 * test: DailyMissionQueryServiceTest.kt, DailyMissionCommandServiceTest.kt 단위 테스트 추가 * test: MissionFixture.kt, CreateMissionRequestFixture.kt, UpdateMissionRequestFixture.kt 추가 * test: MissionTestHelper 추가 * test: MissionQueryServiceTest.kt, MissionCommandServiceTest.kt 단위 테스트 추가 * test: MissionControllerIntegrationTest 통합 테스트 추가 * test: test java studylog 패키지 제거 (Kotlin 마이그레이션 완료) * test: test java mission 패키지 제거 (Kotlin 마이그레이션 완료) * test: StudyLogControllerIntegrationTest.kt IssuePresignedUrl 통합 테스트 개선 * test: StudyLogControllerIntegrationTest.kt ConfirmImage 통합 테스트 개선
hisonghy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixture 클래스에서 object를 지양하는 이유가 궁금합니다!
처음에는 이를 처음 인지하게 된 것은 이 문제를 해결하기 위해 기존 Java 테스트 코드의 형태와 가장 유사한 |
설명 감사합니다~ |
hisonghy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다~
병합부탁드려요~
📌 작업 내용 및 특이사항
✅ Java → Kotlin 마이그레이션 개요
StudyLogDailyMission,DailyMission,Mission전반을 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을 제거할 예정입니다.✅ StudyLogDailyMission 도메인 Kotlin 마이그레이션
StudyLogDailyMissionQueryService,StudyLogDailyMissionCommandServiceKotlin 전환StudyLogDailyMissionRepository,StudyLogDailyMissionJpaRepository,StudyLogDailyMissionRepositoryAdapterKotlin 전환StudyLogDailyMissionFactoryKotlin 전환✅ DailyMission 도메인 Kotlin 마이그레이션
DailyMissionQueryService,DailyMissionCommandServiceKotlin 전환DailyMissionRepository,DailyMissionJpaRepository,DailyMissionRepositoryAdapterKotlin 전환DailyMissionErrorCode,DailyMissionPolicyKotlin 전환DailyMissionFactoryKotlin 전환✅ Mission 도메인 Kotlin 마이그레이션
MissionControllerKotlin 전환MissionFacade,MissionQueryService,MissionCommandServiceKotlin 전환MissionRepository,MissionJpaRepository,MissionRepositoryAdapterKotlin 전환MissionErrorCode,MissionPolicyKotlin 전환MissionFactoryKotlin 전환✅ DTO Kotlin 마이그레이션
StudyLogDailyMissionInfoKotlin 전환DailyMissionInfoKotlin 전환CreateMissionRequest,UpdateMissionRequestKotlin 전환CreateMissionResponse,LoadMissionInfoResponseKotlin 전환MissionInfo,MissionsInfoKotlin 전환🌱 관련 이슈
🔍 참고사항(선택)
학습 로그 ID 검증 케이스를 추가했습니다.📚 기타(선택)