Skip to content

[REFACTOR] 코드 구조 리팩토링#330

Merged
unifolio0 merged 4 commits intodevelopfrom
refactor/#329
Feb 24, 2026
Merged

[REFACTOR] 코드 구조 리팩토링#330
unifolio0 merged 4 commits intodevelopfrom
refactor/#329

Conversation

@unifolio0
Copy link
Copy Markdown
Contributor

closed #329

작업 내용

스크린샷

참고 사항

@unifolio0 unifolio0 self-assigned this Feb 24, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 24, 2026

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

📥 Commits

Reviewing files that changed from the base of the PR and between 28c42f1 and f7d6711.

📒 Files selected for processing (300)
  • .github/workflows/cd-api-dev.yml
  • .github/workflows/cd-api-load-test.yml
  • .github/workflows/cd-api-prod.yml
  • .github/workflows/cd-consumer-dev.yml
  • .github/workflows/cd-consumer-load-test.yml
  • .github/workflows/cd-consumer-prod.yml
  • .github/workflows/ci-api-test.yml
  • .gitignore
  • CLAUDE.md
  • Dockerfile
  • README.md
  • api/.claude/settings.local.json
  • api/build.gradle
  • api/src/main/resources/application.yml
  • build.gradle
  • common/build.gradle
  • common/src/main/java/com/samhap/kokomen/global/constant/AwsConstant.java
  • consumer/Dockerfile
  • consumer/build.gradle
  • consumer/local-consumer-docker-compose.yml
  • consumer/src/main/java/com/samhap/kokomen/DummyController.java
  • consumer/src/main/java/com/samhap/kokomen/KokomenInterviewConsumerApplication.java
  • consumer/src/main/java/com/samhap/kokomen/global/config/KafkaConfig.java
  • consumer/src/main/java/com/samhap/kokomen/interview/InterviewLikeEventConsumer.java
  • consumer/src/main/java/com/samhap/kokomen/interview/InterviewLikeEventStreams.java
  • consumer/src/main/resources/application.yml
  • docker/dev/docker-compose-dev.yml
  • docker/load-test/api/docker-compose-prod.yml
  • docker/load-test/consumer/docker-compose-prod.yml
  • docker/load-test/consumer/promtail/promtail.yaml
  • docker/prod/api/docker-compose-prod.yml
  • docker/prod/consumer/docker-compose-prod.yml
  • docker/prod/consumer/promtail/promtail.yaml
  • local-api-docker-compose.yml
  • run-test-mysql-redis.sh
  • settings.gradle
  • src/docs/asciidoc/index.adoc
  • src/main/java/com/samhap/kokomen/KokomenApplication.java
  • src/main/java/com/samhap/kokomen/admin/controller/AdminController.java
  • src/main/java/com/samhap/kokomen/admin/service/AdminService.java
  • src/main/java/com/samhap/kokomen/admin/service/dto/RootQuestionVoiceResponse.java
  • src/main/java/com/samhap/kokomen/answer/controller/AnswerController.java
  • src/main/java/com/samhap/kokomen/answer/domain/Answer.java
  • src/main/java/com/samhap/kokomen/answer/domain/AnswerLike.java
  • src/main/java/com/samhap/kokomen/answer/domain/AnswerMemo.java
  • src/main/java/com/samhap/kokomen/answer/domain/AnswerMemoState.java
  • src/main/java/com/samhap/kokomen/answer/domain/AnswerMemoVisibility.java
  • src/main/java/com/samhap/kokomen/answer/domain/AnswerRank.java
  • src/main/java/com/samhap/kokomen/answer/dto/AnswerMemos.java
  • src/main/java/com/samhap/kokomen/answer/repository/AnswerLikeRepository.java
  • src/main/java/com/samhap/kokomen/answer/repository/AnswerMemoRepository.java
  • src/main/java/com/samhap/kokomen/answer/repository/AnswerRepository.java
  • src/main/java/com/samhap/kokomen/answer/service/AnswerFacadeService.java
  • src/main/java/com/samhap/kokomen/answer/service/AnswerLikeService.java
  • src/main/java/com/samhap/kokomen/answer/service/AnswerMemoService.java
  • src/main/java/com/samhap/kokomen/answer/service/AnswerService.java
  • src/main/java/com/samhap/kokomen/answer/service/dto/AnswerMemoCreateRequest.java
  • src/main/java/com/samhap/kokomen/answer/service/dto/AnswerMemoResponse.java
  • src/main/java/com/samhap/kokomen/answer/service/dto/AnswerMemoUpdateRequest.java
  • src/main/java/com/samhap/kokomen/auth/controller/AuthController.java
  • src/main/java/com/samhap/kokomen/auth/controller/AuthTestController.java
  • src/main/java/com/samhap/kokomen/auth/external/GoogleOAuthClient.java
  • src/main/java/com/samhap/kokomen/auth/external/KakaoOAuthClient.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/GoogleTokenResponse.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/GoogleUserInfoResponse.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/KakaoAccount.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/KakaoIdResponse.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/KakaoTokenResponse.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/KakaoUserInfoResponse.java
  • src/main/java/com/samhap/kokomen/auth/external/dto/Profile.java
  • src/main/java/com/samhap/kokomen/auth/infrastructure/SessionInvalidator.java
  • src/main/java/com/samhap/kokomen/auth/service/AuthService.java
  • src/main/java/com/samhap/kokomen/auth/service/dto/GoogleLoginRequest.java
  • src/main/java/com/samhap/kokomen/auth/service/dto/KakaoLoginRequest.java
  • src/main/java/com/samhap/kokomen/category/controller/CategoryController.java
  • src/main/java/com/samhap/kokomen/category/domain/Category.java
  • src/main/java/com/samhap/kokomen/category/service/CategoryService.java
  • src/main/java/com/samhap/kokomen/category/service/dto/CategoryResponse.java
  • src/main/java/com/samhap/kokomen/global/TestDataInitializer.java
  • src/main/java/com/samhap/kokomen/global/annotation/Authentication.java
  • src/main/java/com/samhap/kokomen/global/annotation/DistributedLock.java
  • src/main/java/com/samhap/kokomen/global/annotation/ExecutionTimer.java
  • src/main/java/com/samhap/kokomen/global/annotation/RedisExceptionWrapper.java
  • src/main/java/com/samhap/kokomen/global/aop/DistributedLockAspect.java
  • src/main/java/com/samhap/kokomen/global/aop/ExecutionTimerAspect.java
  • src/main/java/com/samhap/kokomen/global/aop/PaymentLoggingAspect.java
  • src/main/java/com/samhap/kokomen/global/aop/RedisExceptionWrappingAspect.java
  • src/main/java/com/samhap/kokomen/global/aop/RootQuestionMetricAspect.java
  • src/main/java/com/samhap/kokomen/global/config/AsyncConfig.java
  • src/main/java/com/samhap/kokomen/global/config/AwsConfig.java
  • src/main/java/com/samhap/kokomen/global/config/RedisClusterConfig.java
  • src/main/java/com/samhap/kokomen/global/config/RedisSingleNodeConfig.java
  • src/main/java/com/samhap/kokomen/global/config/RedissonConfig.java
  • src/main/java/com/samhap/kokomen/global/config/WebConfig.java
  • src/main/java/com/samhap/kokomen/global/constant/AwsConstant.java
  • src/main/java/com/samhap/kokomen/global/domain/BaseEntity.java
  • src/main/java/com/samhap/kokomen/global/dto/ClientIp.java
  • src/main/java/com/samhap/kokomen/global/dto/ErrorResponse.java
  • src/main/java/com/samhap/kokomen/global/dto/MemberAuth.java
  • src/main/java/com/samhap/kokomen/global/exception/BadRequestException.java
  • src/main/java/com/samhap/kokomen/global/exception/ExternalApiException.java
  • src/main/java/com/samhap/kokomen/global/exception/ForbiddenException.java
  • src/main/java/com/samhap/kokomen/global/exception/GlobalExceptionHandler.java
  • src/main/java/com/samhap/kokomen/global/exception/InternalApiException.java
  • src/main/java/com/samhap/kokomen/global/exception/KokomenException.java
  • src/main/java/com/samhap/kokomen/global/exception/RedisException.java
  • src/main/java/com/samhap/kokomen/global/exception/UnauthorizedException.java
  • src/main/java/com/samhap/kokomen/global/external/BaseGptClient.java
  • src/main/java/com/samhap/kokomen/global/infrastructure/ClientIpArgumentResolver.java
  • src/main/java/com/samhap/kokomen/global/infrastructure/MemberAuthArgumentResolver.java
  • src/main/java/com/samhap/kokomen/global/logging/LoggingFilter.java
  • src/main/java/com/samhap/kokomen/global/logging/MdcDecorator.java
  • src/main/java/com/samhap/kokomen/global/service/RedisService.java
  • src/main/java/com/samhap/kokomen/global/service/S3Service.java
  • src/main/java/com/samhap/kokomen/interview/controller/InterviewController.java
  • src/main/java/com/samhap/kokomen/interview/controller/InterviewControllerV2.java
  • src/main/java/com/samhap/kokomen/interview/controller/InterviewControllerV3.java
  • src/main/java/com/samhap/kokomen/interview/controller/ResumeBasedInterviewController.java
  • src/main/java/com/samhap/kokomen/interview/domain/GptSystemMessageConstant.java
  • src/main/java/com/samhap/kokomen/interview/domain/InterviewMessagesFactory.java
  • src/main/java/com/samhap/kokomen/interview/domain/InterviewProceedResult.java
  • src/main/java/com/samhap/kokomen/interview/domain/InterviewProceedState.java
  • src/main/java/com/samhap/kokomen/interview/domain/QuestionAndAnswers.java
  • src/main/java/com/samhap/kokomen/interview/domain/QuestionVoicePathResolver.java
  • src/main/java/com/samhap/kokomen/interview/entity/GeneratedQuestion.java
  • src/main/java/com/samhap/kokomen/interview/entity/Interview.java
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewLike.java
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewMode.java
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewState.java
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewType.java
  • src/main/java/com/samhap/kokomen/interview/entity/Question.java
  • src/main/java/com/samhap/kokomen/interview/entity/ResumeQuestionGeneration.java
  • src/main/java/com/samhap/kokomen/interview/entity/ResumeQuestionGenerationState.java
  • src/main/java/com/samhap/kokomen/interview/entity/RootQuestion.java
  • src/main/java/com/samhap/kokomen/interview/entity/RootQuestionState.java
  • src/main/java/com/samhap/kokomen/interview/external/InterviewProceedGptClient.java
  • src/main/java/com/samhap/kokomen/interview/external/ResumeBasedQuestionBedrockService.java
  • src/main/java/com/samhap/kokomen/interview/external/ResumeBasedQuestionGptClient.java
  • src/main/java/com/samhap/kokomen/interview/external/SupertoneClient.java
  • src/main/java/com/samhap/kokomen/interview/external/SupertoneClientBuilder.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/FunctionParamProperty.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/GptFunction.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/GptFunctionParameters.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/GptMessage.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/GptRequest.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/InterviewInvokeFlowRequestFactory.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/ResumeBasedQuestionGptMessage.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/ResumeBasedQuestionGptRequest.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/SupertoneRequest.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/Tool.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/ToolChoice.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/request/ToolChoiceFunction.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/AnswerFeedbackResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/AnswerRankResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/BedrockResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/Choice.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/GeneratedQuestionDto.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/GptFunctionCall.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/GptResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/InterviewSummaryResponses.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/LlmResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/Message.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/NextQuestionResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/QuestionResponseWrapper.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/ResumeBasedQuestionGptChoice.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/ResumeBasedQuestionGptResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/ResumeBasedQuestionGptResponseMessage.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/SupertoneResponse.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/ToolCall.java
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/TotalFeedbackResponse.java
  • src/main/java/com/samhap/kokomen/interview/repository/GeneratedQuestionRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/InterviewBatchRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/InterviewLikeRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/InterviewRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/QuestionRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/ResumeQuestionGenerationRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/RootQuestionRepository.java
  • src/main/java/com/samhap/kokomen/interview/repository/dto/DailyInterviewCount.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewFacadeService.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewLikeService.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewProceedBedrockFlowAsyncService.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewProceedService.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewSchedulerService.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewService.java
  • src/main/java/com/samhap/kokomen/interview/service/InterviewViewCountService.java
  • src/main/java/com/samhap/kokomen/interview/service/QuestionGenerationAsyncService.java
  • src/main/java/com/samhap/kokomen/interview/service/QuestionGenerationStateService.java
  • src/main/java/com/samhap/kokomen/interview/service/QuestionService.java
  • src/main/java/com/samhap/kokomen/interview/service/ResumeBasedInterviewService.java
  • src/main/java/com/samhap/kokomen/interview/service/ResumeContentService.java
  • src/main/java/com/samhap/kokomen/interview/service/RootQuestionService.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/AnswerRequestV2.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/FeedbackResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewProceedResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewRequest.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewResultResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewSummaryResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/QuestionAndAnswerResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/RootQuestionCustomInterviewRequest.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/RootQuestionReferenceAnswer.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/RootQuestionResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewCheckResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewCheckTextModeResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewCheckVoiceModeResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewFinishedCheckResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/proceedstate/InterviewProceedStateResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/proceedstate/InterviewProceedStateTextModeResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/proceedstate/InterviewProceedStateVoiceModeResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/GeneratedQuestionsResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/PortfolioInfo.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/QuestionGenerationStateResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/QuestionGenerationSubmitResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeBasedInterviewStartRequest.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeBasedQuestionGenerateRequest.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeInfo.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeQuestionGenerationPageResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeQuestionGenerationResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeQuestionUsageStatusResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/start/InterviewStartResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/start/InterviewStartTextModeResponse.java
  • src/main/java/com/samhap/kokomen/interview/service/dto/start/InterviewStartVoiceModeResponse.java
  • src/main/java/com/samhap/kokomen/member/controller/MemberController.java
  • src/main/java/com/samhap/kokomen/member/controller/MemberControllerV2.java
  • src/main/java/com/samhap/kokomen/member/domain/Member.java
  • src/main/java/com/samhap/kokomen/member/domain/MemberSocialLogin.java
  • src/main/java/com/samhap/kokomen/member/domain/SocialProvider.java
  • src/main/java/com/samhap/kokomen/member/repository/MemberRepository.java
  • src/main/java/com/samhap/kokomen/member/repository/MemberSocialLoginRepository.java
  • src/main/java/com/samhap/kokomen/member/repository/dto/RankingProjection.java
  • src/main/java/com/samhap/kokomen/member/service/MemberSchedulerService.java
  • src/main/java/com/samhap/kokomen/member/service/MemberService.java
  • src/main/java/com/samhap/kokomen/member/service/dto/MemberResponse.java
  • src/main/java/com/samhap/kokomen/member/service/dto/MemberStreakResponse.java
  • src/main/java/com/samhap/kokomen/member/service/dto/MyProfileResponse.java
  • src/main/java/com/samhap/kokomen/member/service/dto/MyProfileResponseV2.java
  • src/main/java/com/samhap/kokomen/member/service/dto/ProfileUpdateRequest.java
  • src/main/java/com/samhap/kokomen/member/service/dto/RankingPageResponse.java
  • src/main/java/com/samhap/kokomen/member/service/dto/RankingProjection.java
  • src/main/java/com/samhap/kokomen/member/service/dto/RankingResponse.java
  • src/main/java/com/samhap/kokomen/product/controller/ProductController.java
  • src/main/java/com/samhap/kokomen/product/domain/TokenProduct.java
  • src/main/java/com/samhap/kokomen/product/service/ProductService.java
  • src/main/java/com/samhap/kokomen/product/service/dto/ProductResponse.java
  • src/main/java/com/samhap/kokomen/recruit/controller/RecruitController.java
  • src/main/java/com/samhap/kokomen/recruit/domain/Affiliate.java
  • src/main/java/com/samhap/kokomen/recruit/domain/Company.java
  • src/main/java/com/samhap/kokomen/recruit/domain/DeadlineType.java
  • src/main/java/com/samhap/kokomen/recruit/domain/Education.java
  • src/main/java/com/samhap/kokomen/recruit/domain/EmployeeType.java
  • src/main/java/com/samhap/kokomen/recruit/domain/Employment.java
  • src/main/java/com/samhap/kokomen/recruit/domain/Recruit.java
  • src/main/java/com/samhap/kokomen/recruit/domain/Region.java
  • src/main/java/com/samhap/kokomen/recruit/repository/AffiliateRepository.java
  • src/main/java/com/samhap/kokomen/recruit/repository/CompanyRepository.java
  • src/main/java/com/samhap/kokomen/recruit/repository/RecruitRepository.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/RecruitmentScheduler.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/domain/RecruitPathResolver.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/ApiResponse.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/CompanyDto.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/PagedData.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/RecruitmentDto.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/mapper/DeadlineTypeMapper.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/mapper/EducationMapper.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/mapper/EmployeeTypeMapper.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/mapper/EmploymentMapper.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/dto/mapper/RegionMapper.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/service/ImageDownloadService.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/service/PaginationState.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/service/RecruitmentApiClient.java
  • src/main/java/com/samhap/kokomen/recruit/schedular/service/RecruitmentDataService.java
  • src/main/java/com/samhap/kokomen/recruit/service/RecruitService.java
  • src/main/java/com/samhap/kokomen/recruit/service/dto/AffiliateResponse.java
  • src/main/java/com/samhap/kokomen/recruit/service/dto/CompanyResponse.java
  • src/main/java/com/samhap/kokomen/recruit/service/dto/FiltersResponse.java
  • src/main/java/com/samhap/kokomen/recruit/service/dto/RecruitPageResponse.java
  • src/main/java/com/samhap/kokomen/recruit/service/dto/RecruitSummaryResponse.java
  • src/main/java/com/samhap/kokomen/resume/controller/CareerMaterialsController.java
  • src/main/java/com/samhap/kokomen/resume/domain/CareerMaterialsType.java
  • src/main/java/com/samhap/kokomen/resume/domain/MemberPortfolio.java
  • src/main/java/com/samhap/kokomen/resume/domain/MemberResume.java
  • src/main/java/com/samhap/kokomen/resume/domain/ResumeEvaluation.java
  • src/main/java/com/samhap/kokomen/resume/domain/ResumeEvaluationState.java
  • src/main/java/com/samhap/kokomen/resume/external/ResumeEvaluationGptClient.java
  • src/main/java/com/samhap/kokomen/resume/external/ResumeInvokeFlowRequestFactory.java
  • src/main/java/com/samhap/kokomen/resume/external/dto/ResumeGptChoice.java
  • src/main/java/com/samhap/kokomen/resume/external/dto/ResumeGptMessage.java
  • src/main/java/com/samhap/kokomen/resume/external/dto/ResumeGptRequest.java
  • src/main/java/com/samhap/kokomen/resume/external/dto/ResumeGptResponse.java
  • src/main/java/com/samhap/kokomen/resume/external/dto/ResumeGptResponseMessage.java
  • src/main/java/com/samhap/kokomen/resume/repository/MemberPortfolioRepository.java
  • src/main/java/com/samhap/kokomen/resume/repository/MemberResumeRepository.java
  • src/main/java/com/samhap/kokomen/resume/repository/ResumeEvaluationRepository.java
  • src/main/java/com/samhap/kokomen/resume/service/CareerMaterialsFacadeService.java
  • src/main/java/com/samhap/kokomen/resume/service/CareerMaterialsService.java
  • src/main/java/com/samhap/kokomen/resume/service/PdfUploadService.java
  • src/main/java/com/samhap/kokomen/resume/service/ResumeEvaluationAsyncService.java
  • src/main/java/com/samhap/kokomen/resume/service/ResumeEvaluationService.java
  • src/main/java/com/samhap/kokomen/resume/service/dto/CareerMaterialsResponse.java
  • src/main/java/com/samhap/kokomen/resume/service/dto/NonMemberResumeEvaluationData.java
  • src/main/java/com/samhap/kokomen/resume/service/dto/PortfolioInfo.java

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/#329

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.

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @unifolio0, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 프로젝트의 전반적인 코드 구조를 리팩토링하여 기존의 다중 모듈 아키텍처를 단일 모듈 구조로 전환했습니다. 이 변경은 빌드 및 배포 프로세스를 간소화하고, 코드베이스의 응집도를 높이는 데 중점을 두었습니다. 특히, Kafka Consumer 서비스의 제거를 통해 관련 인프라와 코드를 정리했으며, 도메인 모델의 패키지 구조를 재정비하여 코드의 가독성과 유지보수성을 향상시켰습니다. 전반적으로 프로젝트의 효율성과 일관성을 개선하는 데 기여합니다.

Highlights

  • 단일 모듈 구조로 전환: 기존의 api, consumer, common 다중 모듈 프로젝트가 단일 모듈 구조로 통합되었습니다. 이로 인해 settings.gradle 파일에서 모듈 포함 설정이 제거되었고, 모든 빌드 로직이 루트 build.gradle 파일로 합쳐졌습니다.
  • Kafka Consumer 서비스 제거: Kafka Consumer 서비스와 관련된 모든 파일(Dockerfile, build.gradle, 애플리케이션 클래스, 설정 파일, 이벤트 컨슈머 및 스트림즈 처리 로직)이 프로젝트에서 완전히 제거되었습니다. 이에 따라 Docker Compose 파일에서도 Kafka 및 Zookeeper 서비스 정의가 삭제되었습니다.
  • 도메인/엔티티 패키지 구조 개선: 도메인 모델 클래스들의 패키지 경로가 domain에서 entity로 변경되었으며, PdfTextExtractor, PdfValidator, CareerMaterialsPathResolver와 같은 유틸리티 클래스들은 tool 패키지로 재분류되었습니다. 또한, DailyInterviewCountRankingProjection DTO는 repository.dto 패키지로 이동되어 역할이 명확해졌습니다.
  • 빌드 및 실행 스크립트 간소화: 단일 모듈 구조에 맞춰 gradlew bootRun과 같은 애플리케이션 실행 명령어가 간소화되었으며, 테스트 인프라(MySQL, Redis) 실행 스크립트도 루트 디렉토리로 이동되었습니다.
  • 문서 업데이트: CLAUDE.mdREADME.md 파일이 새로운 프로젝트 구조, 실행 명령어, 아키텍처 설명에 맞춰 업데이트되었습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .gitignore
    • 빌드 디렉토리 및 로컬 실행 스크립트 경로가 업데이트되었습니다.
  • CLAUDE.md
    • 프로젝트 구조, 실행 명령어, 아키텍처 설명이 단일 모듈 구조에 맞춰 업데이트되었습니다.
  • api/.claude/settings.local.json
    • Claude 설정 파일이 제거되었습니다.
  • api/build.gradle
    • API 모듈의 Gradle 빌드 파일이 제거되었습니다.
  • api/src/main/resources/application.yml
    • API 모듈의 애플리케이션 설정 파일이 제거되었습니다.
  • build.gradle
    • 모든 모듈의 의존성과 빌드 로직이 루트 build.gradle 파일로 통합되었습니다.
  • common/build.gradle
    • Common 모듈의 Gradle 빌드 파일이 제거되었습니다.
  • common/src/main/java/com/samhap/kokomen/global/constant/AwsConstant.java
    • AwsConstant 파일이 common 모듈에서 루트 src로 이동되었습니다.
  • consumer/Dockerfile
    • Consumer 모듈의 Dockerfile이 제거되었습니다.
  • consumer/build.gradle
    • Consumer 모듈의 Gradle 빌드 파일이 제거되었습니다.
  • consumer/local-consumer-docker-compose.yml
    • 로컬 Consumer Docker Compose 설정 파일이 제거되었습니다.
  • consumer/src/main/java/com/samhap/kokomen/DummyController.java
    • Consumer 모듈의 더미 컨트롤러가 제거되었습니다.
  • consumer/src/main/java/com/samhap/kokomen/KokomenInterviewConsumerApplication.java
    • Consumer 애플리케이션 진입점이 제거되었습니다.
  • consumer/src/main/java/com/samhap/kokomen/global/config/KafkaConfig.java
    • Kafka 설정 파일이 제거되었습니다.
  • consumer/src/main/java/com/samhap/kokomen/interview/InterviewLikeEventConsumer.java
    • 인터뷰 좋아요 이벤트 컨슈머가 제거되었습니다.
  • consumer/src/main/java/com/samhap/kokomen/interview/InterviewLikeEventStreams.java
    • 인터뷰 좋아요 이벤트 스트림즈 처리가 제거되었습니다.
  • consumer/src/main/resources/application.yml
    • Consumer 모듈의 애플리케이션 설정 파일이 제거되었습니다.
  • docker/dev/docker-compose-dev.yml
    • 개발 환경 Docker Compose 파일에서 Kafka 관련 환경 변수가 제거되었습니다.
  • docker/load-test/api/docker-compose-prod.yml
    • 부하 테스트 API 환경 Docker Compose 파일에서 Kafka 관련 환경 변수가 제거되었습니다.
  • docker/load-test/consumer/docker-compose-prod.yml
    • 부하 테스트 Consumer Docker Compose 설정 파일이 제거되었습니다.
  • docker/load-test/consumer/promtail/promtail.yaml
    • 부하 테스트 Consumer Promtail 설정 파일이 제거되었습니다.
  • docker/prod/api/docker-compose-prod.yml
    • 프로덕션 API 환경 Docker Compose 파일에서 Kafka 관련 환경 변수가 제거되었습니다.
  • docker/prod/consumer/docker-compose-prod.yml
    • 프로덕션 Consumer Docker Compose 설정 파일이 제거되었습니다.
  • docker/prod/consumer/promtail/promtail.yaml
    • 프로덕션 Consumer Promtail 설정 파일이 제거되었습니다.
  • local-api-docker-compose.yml
    • 로컬 API Docker Compose 파일이 루트로 이동되었고, Kafka 및 Zookeeper 서비스 정의가 제거되었습니다.
  • run-test-mysql-redis.sh
    • 테스트용 MySQL/Redis 실행 스크립트가 루트로 이동되었습니다.
  • settings.gradle
    • 다중 모듈 설정이 제거되어 단일 루트 프로젝트만 포함하도록 변경되었습니다.
  • src/docs/asciidoc/index.adoc
    • API 문서 파일이 루트 src로 이동되었습니다.
  • src/main/java/com/samhap/kokomen/KokomenApplication.java
    • 메인 애플리케이션 클래스가 루트 src로 이동되었습니다.
  • src/main/java/com/samhap/kokomen/admin/service/AdminService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/answer/domain/Answer.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/answer/repository/AnswerMemoRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/answer/repository/AnswerRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/global/TestDataInitializer.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/global/aop/RootQuestionMetricAspect.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/controller/InterviewController.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/controller/InterviewControllerV2.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/controller/ResumeBasedInterviewController.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/domain/InterviewMessagesFactory.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/domain/InterviewProceedResult.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/domain/QuestionAndAnswers.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/GeneratedQuestion.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/Interview.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewLike.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewMode.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewState.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/InterviewType.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/Question.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/ResumeQuestionGeneration.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/ResumeQuestionGenerationState.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/RootQuestion.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/entity/RootQuestionState.java
    • 패키지 선언이 interview.domain에서 interview.entity로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/external/dto/response/InterviewSummaryResponses.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/GeneratedQuestionRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/InterviewLikeRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/InterviewRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었고, DailyInterviewCount DTO의 패키지 경로가 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/QuestionRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/ResumeQuestionGenerationRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/RootQuestionRepository.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/repository/dto/DailyInterviewCount.java
    • 패키지 선언이 interview.dto에서 interview.repository.dto로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/InterviewFacadeService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/InterviewLikeService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/InterviewProceedService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/InterviewService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/InterviewViewCountService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/QuestionGenerationAsyncService.java
    • 패키지 임포트가 resume.domain.PdfTextExtractor에서 resume.tool.PdfTextExtractor로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/QuestionGenerationStateService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/QuestionService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/ResumeBasedInterviewService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/ResumeContentService.java
    • 패키지 임포트가 resume.domain.PdfTextExtractor에서 resume.tool.PdfTextExtractor로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/RootQuestionService.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/AnswerRequestV2.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewProceedResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewRequest.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewResultResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/InterviewSummaryResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/RootQuestionCustomInterviewRequest.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/RootQuestionResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewCheckResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewCheckTextModeResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewCheckVoiceModeResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/check/InterviewFinishedCheckResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/proceedstate/InterviewProceedStateResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/proceedstate/InterviewProceedStateTextModeResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/proceedstate/InterviewProceedStateVoiceModeResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/GeneratedQuestionsResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/QuestionGenerationStateResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeBasedInterviewStartRequest.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/resumebased/ResumeQuestionGenerationResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/start/InterviewStartTextModeResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/interview/service/dto/start/InterviewStartVoiceModeResponse.java
    • 패키지 임포트가 interview.domain에서 interview.entity로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/member/repository/MemberRepository.java
    • 패키지 임포트가 member.service.dto.RankingProjection에서 member.repository.dto.RankingProjection으로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/member/repository/dto/RankingProjection.java
    • 패키지 선언이 member.service.dto에서 member.repository.dto로 변경되었습니다.
  • src/main/java/com/samhap/kokomen/member/service/MemberService.java
    • 패키지 임포트가 interview.dto.DailyInterviewCount에서 interview.repository.dto.DailyInterviewCount로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/member/service/dto/MemberStreakResponse.java
    • 패키지 임포트가 interview.dto.DailyInterviewCount에서 interview.repository.dto.DailyInterviewCount로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/member/service/dto/RankingResponse.java
    • 패키지 임포트가 member.service.dto.RankingProjection에서 member.repository.dto.RankingProjection으로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/resume/service/CareerMaterialsFacadeService.java
    • 패키지 임포트가 resume.domain.PdfValidator에서 resume.tool.PdfValidator로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/resume/service/PdfUploadService.java
    • 패키지 임포트가 resume.domain.CareerMaterialsPathResolver에서 resume.tool.CareerMaterialsPathResolver로 업데이트되었습니다.
  • src/main/java/com/samhap/kokomen/resume/service/ResumeEvaluationAsyncService.java
    • 패키지 임포트가 resume.domain.PdfTextExtractor에서 resume.tool.PdfTextExtractor로 업데이트되었습니다.
Ignored Files
  • Ignored by pattern: .github/workflows/** (7)
    • .github/workflows/cd-api-dev.yml
    • .github/workflows/cd-api-load-test.yml
    • .github/workflows/cd-api-prod.yml
    • .github/workflows/cd-consumer-dev.yml
    • .github/workflows/cd-consumer-load-test.yml
    • .github/workflows/cd-consumer-prod.yml
    • .github/workflows/ci-api-test.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


코드 리팩토링, 모듈 분리 사라지고, 단일화의 미학.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Copy Markdown

Test Results

 41 files   41 suites   59s ⏱️
231 tests 230 ✅ 1 💤 0 ❌
233 runs  232 ✅ 1 💤 0 ❌

Results for commit f7d6711.

@unifolio0 unifolio0 merged commit 9bc27fc into develop Feb 24, 2026
4 checks passed
@unifolio0 unifolio0 deleted the refactor/#329 branch February 24, 2026 06:51
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이 Pull Request는 멀티 모듈 구조에서 단일 모듈 구조로 프로젝트를 리팩토링하는 큰 변경을 포함하고 있습니다. 전반적으로 코드 구조가 개선되었고, Kafka 모듈 제거와 같은 아키텍처 변경 사항이 잘 반영되었습니다. 한 가지 중요한 점을 발견하여 리뷰 코멘트를 남겼습니다.

  • 의존성 버전: build.gradle 파일의 일부 의존성 버전이 현재 존재하지 않는 미래 버전으로 설정되어 있어 빌드 실패가 예상됩니다. 반드시 수정이 필요합니다.
  • 아키텍처 변경: Kafka 모듈이 제거되면서 '좋아요' 기능이 동기 방식으로 변경된 것으로 보입니다. 이로 인해 사용자 응답 시간이 길어질 수 있으니, 이 변경이 의도된 것인지와 성능에 미치는 영향을 확인해보시는 것이 좋겠습니다.

전반적으로 프로젝트 구조를 깔끔하게 정리하는 좋은 리팩토링이라고 생각합니다.

Comment on lines 4 to +69
id 'org.springframework.boot' version '3.5.3'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.asciidoctor.jvm.convert' version '3.3.2'
}

subprojects {
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.samhap'
version = '0.0.1-SNAPSHOT'

group = 'com.samhap'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
}
repositories {
mavenCentral()
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
ext {
snippetsDir = file("build/generated-snippets")
}

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.redisson:redisson:3.52.0'
implementation 'org.springframework.boot:spring-boot-starter-aop'
implementation 'org.springframework.session:spring-session-data-redis'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.retry:spring-retry:2.0.12'
implementation 'io.micrometer:micrometer-registry-prometheus'

implementation platform('software.amazon.awssdk:bom:2.31.69')
implementation 'software.amazon.awssdk:bedrock'
implementation 'software.amazon.awssdk:bedrockruntime'
implementation 'software.amazon.awssdk:bedrockagentruntime'
implementation 'software.amazon.awssdk:s3'
implementation 'software.amazon.awssdk:apache-client:2.32.12'
implementation 'software.amazon.awssdk:netty-nio-client:2.32.16'

implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
implementation 'ch.qos.logback.contrib:logback-jackson:0.1.5'

// PDF 텍스트 추출
implementation 'org.apache.pdfbox:pdfbox:3.0.3'

implementation 'org.flywaydb:flyway-core:11.9.1'
implementation 'org.flywaydb:flyway-mysql:11.9.1'

runtimeOnly 'com.mysql:mysql-connector-j'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testImplementation 'com.h2database:h2:2.2.224'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

critical

이 파일에 정의된 일부 의존성 버전이 현재 존재하지 않는 미래 버전으로 보입니다. 이로 인해 빌드 실패가 발생할 수 있습니다. 예를 들어:

  • org.springframework.boot version 3.5.3 (line 4)
  • org.redisson:redisson:3.52.0 (line 39)
  • org.springframework.retry:spring-retry:2.0.12 (line 43)
  • software.amazon.awssdk:bom:2.31.69 (line 46)
  • org.flywaydb:flyway-core:11.9.1 (line 61)

이 의존성들의 버전을 현재 사용 가능한 안정 버전으로 수정해주세요.

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.

[REFACTOR] 코드 구조 리팩토링

1 participant