Skip to content

v1.7.0#266

Merged
tkv00 merged 22 commits into
mainfrom
release/HSC-413
Mar 23, 2026
Merged

v1.7.0#266
tkv00 merged 22 commits into
mainfrom
release/HSC-413

Conversation

@tkv00
Copy link
Copy Markdown
Contributor

@tkv00 tkv00 commented Mar 23, 2026

📝작업 내용


👀변경 사항


🎫 Jira Ticket

  • Jira Ticket: HSC-413

#️⃣관련 이슈


bon0512 and others added 21 commits March 22, 2026 23:10
[HCR-406] 웰컴쿠폰 지급 및 쿠폰 패키지 분리
… refactor/HSC-404

# Conflicts:
#	src/main/java/site/holliverse/admin/application/usecase/ChurnCouponIssueProcessor.java
…HSC-404

# Conflicts:
#	src/main/java/site/holliverse/admin/application/usecase/ChurnCouponIssueProcessor.java
[HSC-404] 전역 예외처리 구조 개선 및 인증/검증 응답 표준화
@tkv00 tkv00 added 🔥 priority: P0 즉시 처리 필요(서비스/데모 블로커) ☁️ area: INFRA 인프라/운영/배포 영역 🏷️ release 릴리즈 준비/버전 태깅/릴리즈 노트/릴리즈 브랜치 작업 release:minor 버전 minor bump: X.Y.0 deploy:api-server 배포 대상: customer-api Infra Team labels Mar 23, 2026
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, 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는 Holliverse Customer 서비스의 운영 안정성과 개발 효율성을 크게 향상시키는 중요한 변경 사항들을 포함합니다. 서비스 전반에 걸쳐 상세한 모니터링 메트릭을 도입하여 시스템 상태를 실시간으로 파악할 수 있게 되었으며, 체계적인 오류 처리 구조를 구축하여 예외 발생 시 원인 분석 및 대응을 용이하게 했습니다. 또한, 신규 회원 유입을 장려하기 위한 환영 쿠폰 지급 기능을 추가하고, API 입력 유효성 검증을 강화하여 서비스의 견고함을 높였습니다.

Highlights

  • 모니터링 및 관측성 강화: Prometheus 메트릭과 Grafana 대시보드 템플릿을 추가하여 Holliverse Customer 서비스의 관측성을 크게 향상시켰습니다. 추천 API 요청, Kafka 소비, 사용자 로그 발행 및 Executor 스레드 풀 관련 상세 메트릭을 수집합니다.
  • 오류 처리 계층 분리 및 표준화: 기존 CustomExceptionAdminException, AuthException, CustomerException, InfraException 등 각 바운디드 컨텍스트에 특화된 예외 클래스와 ErrorCode 인터페이스를 구현하는 전용 Enum으로 대체하여 오류 처리의 명확성과 유지보수성을 높였습니다. GlobalExceptionHandler도 새로운 구조에 맞춰 리팩토링되었습니다.
  • 신규 회원 환영 쿠폰 지급 시스템 도입: 회원 가입 및 온보딩 완료 시 신규 회원에게 환영 쿠폰을 자동으로 지급하는 CouponGrantServiceSignupCouponService를 추가했습니다. 중복 지급 방지 로직도 포함되어 있습니다.
  • API 입력 유효성 검증 강화: 다수의 DTO 및 컨트롤러 파라미터에 JSR-303 (@Valid, @NotBlank, @NotNull, @Positive, @Min) 어노테이션을 추가하여 API 요청에 대한 입력 유효성 검증을 강화했습니다.
  • 보안 설정 업데이트: Spring Security 설정에 화이트리스트 기반의 접근 제어와 역할(ADMIN, CUSTOMER) 기반의 API 접근 권한을 명시적으로 정의하고, ApiAuthenticationEntryPointApiAccessDeniedHandler를 통합하여 인증/인가 실패 응답을 표준화했습니다.
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.

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.

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

The coupon module was updated to have a dependency on admin module's AdminException and AdminErrorCode. This violates the architecture rule that each domain should be independent and not depend on other domain modules. To fix this, the coupon module should define its own CouponException and CouponErrorCode and use them instead of AdminException and AdminErrorCode.

Comment on lines +6 to +7
import site.holliverse.admin.error.AdminErrorCode;
import site.holliverse.admin.error.AdminException;
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

[위반 규칙]: Dependency Direction (의존성 방향 규칙 위반)

[문제 이유]:
새로 추가된 coupon 도메인 모듈이 admin 모듈의 AdminExceptionAdminErrorCode에 직접 의존하고 있습니다. 프로젝트 아키텍처 규칙에 따라 각 도메인은 서로 독립적이어야 하며, admin이나 customer가 아닌 공통 모듈이 특정 도메인에 의존해서는 안 됩니다. 이러한 의존성은 향후 모듈 간 결합도를 높여 유지보수를 어렵게 만들고 순환 참조의 위험을 야기할 수 있습니다.

[해결 제안]:
coupon 모듈 내에 자체적인 CouponExceptionCouponErrorCode를 정의하고, CouponGrantService 내에서 AdminException 대신 이를 사용하도록 수정하는 것을 권장합니다.
예를 들어, coupon/error 패키지를 생성하고 관련 클래스를 정의한 후 아래와 같이 임포트를 수정할 수 있습니다.

Suggested change
import site.holliverse.admin.error.AdminErrorCode;
import site.holliverse.admin.error.AdminException;
import site.holliverse.coupon.error.CouponErrorCode;
import site.holliverse.coupon.error.CouponException;
References
  1. Customer code 🚫 import/depend on Admin code. Admin code 🚫 import/depend on Customer code. Shared utils go to shared or shared.domain only. (새로운 coupon 모듈이 admin 모듈에 의존하고 있어 규칙을 위반합니다.) (link)

@github-actions
Copy link
Copy Markdown

🧪 Test Coverage Report (JaCoCo)

overall__line overall__branch changed__line changed__branch

기준(soft, workflow는 실패 안 함): Overall line 70% / branch 50%, Changed line 80% / branch 60% · Generated: 2026-03-23 07:32 UTC

Scope Line Branch Line Graph Branch Graph Verdict
Overall 41.0% 30.3% ████████░░░░░░░░░░░░ ██████░░░░░░░░░░░░░░ ⚠️⚠️
Changed 50.0% 44.9% ██████████░░░░░░░░░░ █████████░░░░░░░░░░░ ⚠️⚠️

Package line spark (sample): ▃▂▁▂▂▄▄·▇█▁▆▆▆·▆▁▁▆█▇▅▁▁▁██▁▁▃
Package branch spark (sample): ▃▁·▁▁·▁·▇··▅▆▅·▅▁▁▅▇▇▃▁·▁·█▁▁▁

📦 Package coverage (worst 10)

Rank Package Line Branch Lines Line Graph Branch Graph
1 site.holliverse.customer.application.usecase.log 0.0% 0.0% 98 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
2 site.holliverse.infra.kafka.consumer 0.0% 0.0% 79 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
3 site.holliverse.customer.coupon.application 0.0% 0.0% 61 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
4 site.holliverse.customer.integration.fastapi 0.0% 0.0% 28 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
5 site.holliverse.customer.integration.external 0.0% 0.0% 28 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
6 site.holliverse.customer.application.usecase.counsel 0.0% 0.0% 14 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
7 site.holliverse.customer.coupon.web 0.0% 0.0% 12 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
8 site.holliverse.shared.config.runtime 0.0% N/A 11 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
9 site.holliverse.customer.web.util 0.0% 0.0% 8 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
10 site.holliverse.auth.handler 0.0% N/A 8 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░

🧨 Lowest coverage classes (worst 10)

Rank Class Line Branch Lines Line Graph Branch Graph
1 site.holliverse.customer.application.usecase.log.UserLogService 0.0% 0.0% 81 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
2 site.holliverse.infra.kafka.consumer.RecommendationKafkaConsumer 0.0% 0.0% 79 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
3 site.holliverse.shared.monitoring.CustomerMetrics 0.0% N/A 50 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
4 site.holliverse.admin.application.usecase.CalculateLogChurnScoreService 0.0% 0.0% 38 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
5 site.holliverse.admin.application.usecase.CalculateChurnScoreService 0.0% 0.0% 37 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
6 site.holliverse.customer.coupon.application.UseMemberCouponUseCase 0.0% 0.0% 34 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
7 site.holliverse.admin.application.usecase.ChurnRiskReason$ReasonCode 0.0% 0.0% 31 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
8 site.holliverse.customer.integration.fastapi.FastApiRecommendationClient 0.0% 0.0% 28 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
9 site.holliverse.customer.integration.external.AdminLogFeaturesClient 0.0% 0.0% 28 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
10 site.holliverse.customer.coupon.application.GetMemberCouponsUseCase 0.0% 0.0% 27 ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
🧩 Changed files coverage breakdown (71 files)
File Line Branch Lines Verdict Line Graph Branch Graph
src/main/java/site/holliverse/admin/application/usecase/ChurnCouponIssueProcessor.java 0.0% 0.0% 16 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/application/usecase/HandleLogFeatureUseCase.java 0.0% N/A 10 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/application/usecase/UserActionFeatureEventName.java 0.0% N/A 13 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/web/controller/ChurnRealTimeController.java 0.0% N/A 6 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/web/controller/InternalAnalysisWebhookController.java 0.0% 0.0% 27 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/web/controller/InternalLogFeatureController.java 0.0% N/A 2 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/handler/ApiAuthenticationEntryPoint.java 0.0% N/A 8 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/counsel/CreateCounselUseCase.java 0.0% 0.0% 14 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/log/UserLogService.java 0.0% 0.0% 81 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/recommendation/RecommendationPendingFutureRegistry.java 0.0% N/A 9 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/coupon/application/GetMemberCouponsUseCase.java 0.0% 0.0% 27 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/coupon/application/UseMemberCouponUseCase.java 0.0% 0.0% 34 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/integration/external/AdminLogFeaturesClient.java 0.0% 0.0% 28 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/integration/fastapi/FastApiRecommendationClient.java 0.0% 0.0% 28 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/controller/CounselController.java 0.0% N/A 2 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/infra/kafka/consumer/RecommendationKafkaConsumer.java 0.0% 0.0% 79 ⚠️⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/ConstraintMapping.java 0.0% N/A 1 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/monitoring/CustomerMetrics.java 0.0% N/A 50 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/monitoring/CustomerMonitoringBinder.java 0.0% N/A 26 ⚠️ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/coupon/application/SignupCouponService.java 14.3% 0.0% 7 ⚠️⚠️ ███░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/application/usecase/TokenRevoker.java 42.9% N/A 7 ⚠️ █████████░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/recommendation/RecommendationService.java 57.8% 25.0% 135 ⚠️⚠️ ████████████░░░░░░░░ █████░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/web/controller/AuthController.java 80.0% 75.0% 25 ✅✅ ████████████████░░░░ ███████████████░░░░░
src/main/java/site/holliverse/customer/application/usecase/member/GetCustomerProfileUseCase.java 86.4% 60.5% 81 ✅✅ █████████████████░░░ ████████████░░░░░░░░
src/main/java/site/holliverse/customer/application/usecase/product/ChangeProductUseCase.java 87.0% 75.0% 23 ✅✅ █████████████████░░░ ███████████████░░░░░
src/main/java/site/holliverse/coupon/application/CouponGrantService.java 94.1% 75.0% 17 ✅✅ ███████████████████░ ███████████████░░░░░
src/main/java/site/holliverse/auth/application/usecase/RefreshTokenUseCase.java 96.8% 75.0% 31 ✅✅ ███████████████████░ ███████████████░░░░░
src/main/java/site/holliverse/customer/application/usecase/persona/GetMyPersonaUseCase.java 97.4% 83.3% 38 ✅✅ ███████████████████░ █████████████████░░░
src/main/java/site/holliverse/auth/application/usecase/AuthUseCase.java 98.8% 85.7% 82 ✅✅ ████████████████████ █████████████████░░░
src/main/java/site/holliverse/admin/application/usecase/BulkUpdateMemberStatusUseCase.java 100.0% 100.0% 8 ✅✅ ████████████████████ ████████████████████
src/main/java/site/holliverse/admin/application/usecase/GetKeywordBubbleChartUseCase.java 100.0% 77.8% 31 ✅✅ ████████████████████ ████████████████░░░░
src/main/java/site/holliverse/admin/application/usecase/GetMemberDetailUseCase.java 100.0% N/A 4 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/application/usecase/IssueChurnCouponUseCase.java 100.0% 100.0% 20 ✅✅ ████████████████████ ████████████████████
src/main/java/site/holliverse/admin/application/usecase/UpdateMemberUseCase.java 100.0% 80.0% 18 ✅✅ ████████████████████ ████████████████░░░░
src/main/java/site/holliverse/admin/web/controller/CounselController.java 100.0% N/A 6 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/application/usecase/CustomerInitialPlanAssignmentUseCase.java 100.0% 75.0% 16 ✅✅ ████████████████████ ███████████████░░░░░
src/main/java/site/holliverse/customer/application/usecase/product/GetProductDetailUseCase.java 100.0% 83.3% 53 ✅✅ ████████████████████ █████████████████░░░
src/main/java/site/holliverse/customer/domain/policy/SubscriptionChangePolicy.java 100.0% 100.0% 5 ✅✅ ████████████████████ ████████████████████
src/main/java/site/holliverse/customer/web/controller/PersonaController.java 100.0% N/A 17 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/controller/ProductController.java 100.0% N/A 10 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/controller/RecommendationController.java 100.0% N/A 2 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/controller/SubscriptionController.java 100.0% N/A 4 ✅✅ ████████████████████ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/error/AdminErrorCode.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/error/AdminException.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/web/dto/analytics/AdminRegionalMetricRequestDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/web/dto/counsel/AnalysisResponseWebhookRequest.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/admin/web/dto/log/LogFeatureWebhookRequest.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/error/AuthErrorCode.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/error/AuthException.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/handler/ApiAccessDeniedHandler.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/handler/LoginFailureHandler.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/auth/handler/SocialFailureHandler.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/coupon/repository/CouponRepository.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/coupon/repository/MemberCouponGrantRepository.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/config/AdminLogFeaturesConfig.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/config/IntegrationConfig.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/error/CustomerErrorCode.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/error/CustomerException.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/dto/counsel/CreateCounselDto.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/customer/web/dto/product/change/ChangeProductRequest.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/infra/error/InfraErrorCode.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/infra/error/InfraException.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/infra/kafka/config/RecommendationKafkaConfig.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/config/web/GlobalExceptionHandler.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/ApiErrorResponseFactory.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/ConstraintExceptionMapper.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/DomainException.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/ErrorCategory.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/ErrorCode.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/error/SharedErrorCode.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░
src/main/java/site/holliverse/shared/security/SecurityConfig.java N/A N/A 0 ✅✅ ░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░

🔎 HTML 리포트: Actions → Artifacts → jacoco-html · XML: jacoco-xml

@tkv00 tkv00 merged commit 72fb484 into main Mar 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

☁️ area: INFRA 인프라/운영/배포 영역 deploy:api-server 배포 대상: customer-api Infra Team 🔥 priority: P0 즉시 처리 필요(서비스/데모 블로커) release:minor 버전 minor bump: X.Y.0 🏷️ release 릴리즈 준비/버전 태깅/릴리즈 노트/릴리즈 브랜치 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants