Skip to content

[Refactor] analysis AI/question candidate 정리 (#271) - #274

Merged
shinae1023 merged 3 commits into
devfrom
refactor/#271-analysis-organize
Aug 12, 2026
Merged

[Refactor] analysis AI/question candidate 정리 (#271)#274
shinae1023 merged 3 commits into
devfrom
refactor/#271-analysis-organize

Conversation

@shinae1023

Copy link
Copy Markdown
Member

✨ 어떤 이유로 PR를 하셨나요?

  • feature 병합
  • 버그 수정(아래에 issue #를 남겨주세요)
  • 코드 개선
  • 코드 수정
  • 배포
  • 기타(아래에 자세한 내용 기입해주세요)

📋 세부 내용 - 왜 해당 PR이 필요한지 작업 내용을 자세하게 설명해주세요

analysis 쪽에서 이미 분리된 책임과 맞지 않게 남아 있던 중복 코드와 question candidate 경합 포인트를 정리했습니다.
이번 PR은 기능 추가보다는 불필요한 외부 의존 표면을 줄이고, custom candidate 저장 충돌과 후보 식별자 충돌을 더 안전하게 다루는 데 목적이 있습니다.

변경 내용:

  • AnalysisAiClient 에 남아 있던 예전 prompt 조립 중복 코드, 미사용 상수, 미사용 의존성 제거
  • QuestionCommandService 의 custom candidate 저장을 REQUIRES_NEW persistence service로 분리
  • unique 충돌 시 기존 candidate 재조회 복구 흐름 유지
  • QuestionCandidateResponsecandidateKey 추가
  • 기본 후보는 default:{id}, custom 후보는 custom:{id} 형식으로 식별자 분리

기대 효과:

  • AnalysisAiClient 가 실제 사용하는 협력자만 남아 구조가 더 읽기 쉬워짐
  • custom candidate 저장 충돌이 outer transaction 오염 없이 복구되도록 정리됨
  • default/custom 후보가 같은 숫자 id를 가져도 프론트에서 안전하게 구분 가능해짐

📸 작업 화면 스크린샷

  • 없음

⚠️ PR하기 전에 확인해주세요

  • 로컬테스트를 진행하셨나요?
  • 머지할 브랜치를 확인하셨나요?
  • 관련 label을 선택하셨나요?

🚨 관련 이슈 번호 [ #271 ]

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@shinae1023, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 42 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7d55a8d2-f9f0-4ff6-80a0-4800877b0170

📥 Commits

Reviewing files that changed from the base of the PR and between 9ddf313 and 7d39f79.

📒 Files selected for processing (9)
  • src/main/java/com/jobdri/jobdri_api/domain/analysis/dto/response/QuestionCandidateResponse.java
  • src/main/java/com/jobdri/jobdri_api/domain/analysis/service/ai/AnalysisAiClient.java
  • src/main/java/com/jobdri/jobdri_api/domain/analysis/service/question/CustomQuestionCandidatePersistenceService.java
  • src/main/java/com/jobdri/jobdri_api/domain/analysis/service/question/QuestionCandidateCatalogService.java
  • src/main/java/com/jobdri/jobdri_api/domain/analysis/service/question/QuestionCommandService.java
  • src/main/java/com/jobdri/jobdri_api/domain/analysis/service/question/QuestionQueryService.java
  • src/test/java/com/jobdri/jobdri_api/domain/analysis/service/ai/AnalysisAiClientTest.java
  • src/test/java/com/jobdri/jobdri_api/domain/analysis/service/question/QuestionCandidateCatalogServiceTest.java
  • src/test/java/com/jobdri/jobdri_api/domain/analysis/service/question/QuestionCommandServiceTest.java

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.

@shinae1023
shinae1023 merged commit ea92fdd into dev Aug 12, 2026
3 checks passed
@shinae1023 shinae1023 self-assigned this Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant