어떤 기능인가요?
domain.evaluation.analysis가 runtime analysis DTO/service에 직접 의존하는 구조를 단계적으로 분리합니다.
상세 내용
현재 evaluation 패키지는 아래 runtime 분석 모듈에 직접 의존하고 있습니다.
AnalysisAiClient, AnalysisPromptInput, JobCategoryEvaluationCriteriaProvider
AnalysisLlmResponse, AnalysisCandidateResponse
MissingKeywordResponse, MissingKeywordSource
AnalysisSanitizationRules, MissingKeywordSanitizer
AnalysisResultConstants
이번 이슈는 이를 한 번에 갈아엎지 않고, 작은 커밋 단위로 안전하게 분리하는 것을 목표로 합니다.
Refactor: evaluation 전용 내부 모델 도입
EvaluationMissingKeyword, EvaluationMissingKeywordSource, EvaluationQuestionAnalysis, EvaluationLlmSnapshot, EvaluationCandidateSnapshot 등 로컬 모델 추가
- runtime DTO를 evaluation 내부 모델로 변환하는 mapper 추가
- 기존 서비스 로직 변경은 최소화
Refactor: NlgEvaluationBatchService를 evaluation 모델 기준으로 전환
AnalysisLlmResponse 직접 사용 제거
MissingKeywordSource도 evaluation 전용 enum 사용
- runtime DTO 파싱 책임을 mapper/parser로 이동
Refactor: evaluation 전용 sanitization 경계 도입
EvaluationSanitizationService 또는 EvaluationSanitizationPolicy 추가
- 내부적으로는 기존
AnalysisSanitizationRules, MissingKeywordSanitizer를 위임 호출
- evaluation 서비스에서 runtime sanitization 클래스 직접 import 제거
Refactor: EvaluationAnalysisBatchService 앞에 evaluation AI port 추가
EvaluationAnalysisGenerator 같은 port 도입
- 입력
EvaluationAnalysisCommand, 출력 EvaluationGeneratedResult로 표준화
- 초기 adapter는 기존
AnalysisAiClient를 감싸는 방식으로 구현
Refactor: runtime 상수 의존 제거
AnalysisResultConstants에 의존하던 값 중 evaluation 전용 정책을 EvaluationAnalysisPolicyConstants로 분리
- 점수 범위, 최대 missing keyword 수, 최대 analysis 수 등 이동
Refactor: MissingKeyword sanitizer replay 로직 로컬화
AnalysisCandidateResponse, MissingKeywordSanitizationResult 등 runtime 타입 의존 제거
- evaluation snapshot 기반 replay 구조로 전환
Refactor: evaluation 의존 방향 고정
domain.evaluation.analysis에서 domain.analysis.service/*, dto/* 직접 import 금지
- 필요 시 ArchUnit 또는 패키지 규칙 테스트 추가
- 이후 결합 회귀 방지
체크 리스트
로컬 테스트 완료
구조 개편 이슈 초안 작성 단계이므로 아직 로컬 테스트는 수행하지 않았습니다.
기타
어떤 기능인가요?
상세 내용
Refactor: evaluation 전용 내부 모델 도입EvaluationMissingKeyword,EvaluationMissingKeywordSource,EvaluationQuestionAnalysis,EvaluationLlmSnapshot,EvaluationCandidateSnapshot등 로컬 모델 추가Refactor: NlgEvaluationBatchService를 evaluation 모델 기준으로 전환AnalysisLlmResponse직접 사용 제거MissingKeywordSource도 evaluation 전용 enum 사용Refactor: evaluation 전용 sanitization 경계 도입EvaluationSanitizationService또는EvaluationSanitizationPolicy추가AnalysisSanitizationRules,MissingKeywordSanitizer를 위임 호출Refactor: EvaluationAnalysisBatchService 앞에 evaluation AI port 추가EvaluationAnalysisGenerator같은 port 도입EvaluationAnalysisCommand, 출력EvaluationGeneratedResult로 표준화AnalysisAiClient를 감싸는 방식으로 구현Refactor: runtime 상수 의존 제거AnalysisResultConstants에 의존하던 값 중 evaluation 전용 정책을EvaluationAnalysisPolicyConstants로 분리Refactor: MissingKeyword sanitizer replay 로직 로컬화AnalysisCandidateResponse,MissingKeywordSanitizationResult등 runtime 타입 의존 제거Refactor: evaluation 의존 방향 고정domain.evaluation.analysis에서domain.analysis.service/*,dto/*직접 import 금지체크 리스트
로컬 테스트 완료
기타