Conversation
- infra/terraform/gcp, infra/terraform/oci Terraform 구성 일괄 삭제 - 루트 잔여 org/springframework/ai/google/genai/GoogleGenAiChatModel.java 삭제 - infra/scripts/oci-mysql-backup 스크립트 정리, CLAUDE.md 갱신 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- AdminController.uploadImage 인라인 검증을 private validateImage로 추출 - 하드코딩 상수(허용 타입/최대 크기)를 ImageUploadProperties(@ConfigurationProperties)로 분리 - q-asker.admin.image-upload 설정을 app-common.yml에 추가 (문서 업로드용 file-validation과 분리) - oci FileValidateServiceImpl: null contentType 에러를 EXTENSION_NOT_EXIST→EXTENSION_INVALID로 통일 - AdminControllerTest 신규 9케이스 추가 (admin 모듈 테스트 셋업 최초 구성) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- R1(SRP): PostResponseMapper.toDetail() 추가, getPost() 인라인 DTO 매핑 제거, "운영팀" 상수 단일화 - R2(DRY): Board.ensureModifiableBy() 도메인 메서드 추출, requireUserId() 헬퍼 통일 - R3(DRY): toPageResponse() 헬퍼 추출, UNKNOWN_USERNAME 상수화 - 회귀 테스트: BoardServiceTest(22) + BoardAdminServiceImplTest(4) 선작성 - BoardService 167줄 → 97줄 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- JwtProvider: JWT 생성/검증 추출 - PrincipalExtractor: 인증 주체 추출 로직 분리 - SecurityErrorResponder: 보안 에러 응답 일원화 - RateLimitFilter 분해: RateLimitBucketRegistry / RateLimitMetrics / RateLimitResponseWriter - TokenCrypto: 토큰 암호화 유틸 추출 - 회귀 테스트: ClientKeyResolver / JwtTokenAuthenticationFilter / RateLimitFilter / RefreshTokenCrypto / UserIdArgumentResolver Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 제안1(DRY): Timer 조립 4곳 중복 → conversionTimer() 헬퍼로 집약 - 제안1(DRY): 실패 catch 2곳 → 단일 catch + instanceof 분기로 통합 - 제안3(LSP): ConvertService Javadoc에 UnsupportedOperationException 계약 명시 - 회귀 테스트 보강: 성공/실패 Timer 기록·사전 등록 8개 시계열·no-op 검증 (4 → 7케이스) - ConvertServiceImpl 113줄 → 96줄 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HashUtil.decode() 도메인 에러 결합 제거 → 중립 INVALID_URL_REQUEST (시그니처 유지, 하위 무파급) - RateLimitPlanResolver 핸들러 조회 중복 → findAnnotation() 통합 (56→40줄) - GlobalExceptionHandler 인라인 로깅 분기 → logCustomException() 추출 - 회귀 테스트 24개 선작성 (GlobalExceptionHandler/CustomException/HashUtil/RateLimitPlanResolver) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- OciObjectStorageServiceImpl: uploadImage/uploadPdf 중복 골격(PutObjectRequest 조립→upload→CDN URL)을 private 헬퍼로 집약, 소스 타입별 UploadRequest 조립만 Function 위임 (117→107줄) - 회귀 테스트 15개 선작성 (URL 계약·objectName 규칙·opcMeta 인코딩·BufferedInputStream 래핑 + FileValidateService 검증 분기) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 청크 오케스트레이터 3종(MULTIPLE/BLANK/OX) → AbstractChunkedQuizOrchestrator 템플릿메서드 통합, 서브클래스는 훅 3개만 override (844→123줄) - 스트리밍 추출기 제네릭화: StreamingJsonArrayExtractor<T>로 통합, 중복 추출기 2종 삭제 - 레거시 캐시 경로 제거(GeminiChatService/GeminiCacheService/GeminiCacheConfig/ChunkInfo/스모크 ~355줄) - usage 로깅 4곳 → recordChunkUsage() 흡수, orphan 메트릭·QuizPromptStrategy 2-arg 死메서드 제거(ISP) - 회귀 테스트 24개 선작성 (오케스트레이터 계약 18 + 추출기 4 + 메트릭 2) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 상세 매핑 로직(객관식/서술형/채점결과)을 서비스 인라인 람다 → QuizHistoryMapper로 이관 (QueryService 261→165줄) - loadOwnedHistory/loadProblemSet 헬퍼 + AnswerSnapshotView 값 객체 추출로 스냅샷→Map 변환 중복 제거 - 회귀 테스트 8개 선작성 (정오답 판정·스냅샷 매핑·삭제 제외·소유자 검증·서술형 채점) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- processGenerationAsync의 84줄 God 람다 → GenerationBatchConsumer 클래스로 추출 (CommandService 258→166줄) - 선택지 배치(MULTIPLE/BLANK/REAL_BLANK 셔플 + OX 정규화) → SelectionArranger 유틸로 전략화(OCP) - SSE 전송 4중 보일러플레이트(get→null체크→send→catch) → safeSend() 헬퍼 통합 - 회귀 테스트 16개 선작성 (배치 순번/SSE eventId/셔플 보존/OX 정규화/finalize 3분기/IOException 처리) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
1 task
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.
quiz-set모듈은 작업중이라 리팩터링 하지 않음