[HCR-420] v1.7.3#274
Conversation
[HSC-416] customer 런타임 async executor 등록 경로 고정
Recommendation Kafka Consumer의 비즈니스 오케스트레이션을 UseCase로 이동해 레이어 책임을 분리하고, trace_id 기반 단계 로그와 테스트를 정비해 운영 추적성을 강화한다. Made-with: Cursor
There was a problem hiding this comment.
Code Review
이번 풀 리퀘스트는 추천 시스템의 Kafka 소비 로직을 RecommendationKafkaConsumeUseCase로 이관하고, 여러 서비스 및 설정 클래스에서 수동으로 관리하던 Micrometer 메트릭 코드를 제거하여 구조를 단순화했습니다. 또한 Kafka 메시지에 traceId를 추가하고 상세 로깅을 도입하여 추적성을 높였습니다. 리뷰 과정에서 RecommendationKafkaConfig의 빈 등록 시 RuntimeModule 전략을 통한 활성화 체크가 누락되어 아키텍처 규칙(Rule 58)을 위반한 점이 지적되었습니다.
| @@ -35,16 +33,12 @@ public ConcurrentKafkaListenerContainerFactory<String, String> recommendationKaf | |||
| @Bean | |||
| public RecommendationKafkaConsumer recommendationKafkaConsumer( | |||
There was a problem hiding this comment.
🛡️ Code Review Report
1. 🔍 요약 (Summary)
추천 시스템의 Kafka 연동 로직 리팩토링 및 모니터링 코드 정리를 수행하였습니다. 아키텍처 규칙 준수 및 비동기 작업의 안정성 확보를 위한 개선이 필요합니다.
2. 🛑 Blocking Issues (Must Fix)
- [위반 규칙]: Infrastructure Layer Registration (Rule 58)
- [위치]:
RecommendationKafkaConfig.java(Line 34) - [문제 이유]: 아키텍처 규칙에 따라 모든 인프라 어댑터는
RuntimeModuleENUM 전략을 통해 명시적으로 활성화 여부를 체크해야 합니다. 현재RecommendationKafkaConsumer빈 등록 시 해당 모듈이 활성화되어 있는지 확인하는 로직이 누락되었습니다. 이는 시스템의 모듈별 제어 능력을 저하시키는 BLOCKER 이슈입니다. - [해결 제안]:
RuntimeModule을 사용하여 해당 모듈이 활성화된 경우에만 빈이 생성되도록 수정하세요.
References
- 인프라 어댑터 등록 시 RuntimeModule ENUM 전략을 통해 활성화 여부를 체크해야 함 (Rule 58) (link)
🧪 Test Coverage Report (JaCoCo)
Package line spark (sample): 📦 Package coverage (worst 10)
🧨 Lowest coverage classes (worst 10)
🧩 Changed files coverage breakdown (12 files)
🔎 HTML 리포트: Actions → Artifacts → |
📝작업 내용
👀변경 사항
🎫 Jira Ticket
#️⃣관련 이슈