Skip to content

docs/29 - 카탈로그 최종 부하테스트 - #47

Merged
ji-circle merged 2 commits into
devfrom
docs/29-catalog-final-report
May 18, 2026
Merged

ji-circle merged 2 commits into
devfrom
docs/29-catalog-final-report

Conversation

@ji-circle

@ji-circle ji-circle commented May 18, 2026

Copy link
Copy Markdown
Contributor

📝 작업 내용

이번 PR에서 작업한 내용을 설명해주세요.

  • 카탈로그 조회 최종 부하테스트 실행

🚀 주요 변경 사항

완료한 이슈 번호
Close #29
관련된 이슈 번호 (닫고 싶지 않은 경우)
Related to #

✅ 자체 체크리스트 (필수)

  • ./gradlew build 실행 결과 정상 (인증샷 첨부)
  • IntelliJ HTTP Client 테스트 완료 (인증샷 첨부)
  • 팀 내 컨벤션 준수 및 불필요한 로그, import 제거
  • 중요한 변경 사항이 팀에 공유되었는지

📸 테스트 인증샷

빌드 결과 및 IntelliJ HTTP Client 실행 화면을 여기에 첨부해 주세요.

스크린샷 2026-05-18 오후 7 10 54 스크린샷 2026-05-18 오후 7 11 05

💬 리뷰어 전달사항 (선택)

특별히 봐주었으면 하는 부분이나 논의가 필요한 점을 적어주세요.



📎 참고 자료

관련 문서, 레퍼런스 링크 등이 있다면 여기에 첨부해주세요.

Summary by CodeRabbit

릴리스 노트

  • Documentation
    • 카탈로그 서비스의 캐시 성능 개선 결과를 정리한 성능 보고서가 추가되었습니다. 캐시 적용 후 최대 993 TPS의 처리량과 25.8ms의 평균 응답 시간을 달성했으며, 기존 방식 대비 성능이 크게 개선되었습니다. 캐시 일관성 유지 전략도 함께 문서화되었습니다.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 18, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@ji-circle has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 38 minutes and 12 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8842ea36-2510-4984-8069-2ede0090a243

📥 Commits

Reviewing files that changed from the base of the PR and between 1f92501 and 7a5c55c.

📒 Files selected for processing (1)
  • docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md
📝 Walkthrough

Walkthrough

카탈로그 서비스의 Redis Cache-Aside 도입 후 2차 부하테스트 결과를 정리한 성능 리포트 문서입니다. Full Cache Hit 시 993.0 TPS, 25.8ms 지연시간, 0.0% 에러율을 기록했으며, Kafka 이벤트 기반 캐시 무효화로 정합성을 확보한 설계 내용을 포함합니다.

Changes

Redis 캐시 성능 리포트 문서화

Layer / File(s) Summary
Redis 캐시 성능 분석 및 정합성 설계 문서
docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md
Redis Cache-Aside 도입 후 Cold/Partial/Full Hit 시나리오별 처리량(TPS), 평균 지연시간, 에러율을 측정·비교하고, AS-IS(MongoDB) 대비 성능 개선 폭을 표로 제시합니다. Kafka 이벤트(product.updated, product.status-changed) 기반 @CacheEvict를 통한 실시간 캐시 무효화 전략으로 데이터 정합성을 보장하는 설계를 기록합니다.

🎯 1 (Trivial) | ⏱️ ~5분

Possibly related PRs

  • Miche-Let/catalog-service#36: Redis Cache-Aside 성능 테스트와 Kafka 기반 캐시 무효화 설계의 구현 내용을 담은 PR로, 본 PR의 성능 리포트 문서와 직접 맞물려 있습니다.

Suggested reviewers

  • Jinyoung-Kim96
  • qldo
  • Sehi55
  • githyj-jang
  • jihxonx

Poem

🐰 Redis의 마법이 빛나네 ✨
찬 캐시도 따뜻하게 데워져,
Kafka 메시지가 휙휙 날아와
낡은 데이터는 재빨리 사라지네.
993 TPS의 춤을 추며 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 카탈로그 최종 부하테스트라는 주요 변경사항을 명확하게 반영하고 있으며, PR의 핵심 목표와 일치합니다.
Linked Issues check ✅ Passed 카탈로그 최종 부하테스트 문서는 #29의 모든 목표를 충족합니다: Redis Cache-Aside 도입 과정 기록, 동일한 테스트 환경으로 성능 검증, Cache Hit Rate 결과 문서화를 완료했습니다.
Out of Scope Changes check ✅ Passed 변경사항은 성능 리포트 문서 추가만 포함하며, 모두 #29의 문서화 목표에 직접 관련되어 있으며 범위를 벗어나는 변경이 없습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/29-catalog-final-report

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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md`:
- Line 12: The heading text "부하테스트 타격 결과" is awkward—replace it with a more
natural phrase such as "부하테스트 결과" or "부하 테스트 측정 결과" wherever that exact string
appears (the heading line containing "부하테스트 타격 결과") to improve readability and
consistency in the document.
- Around line 24-27: Update the "2차 타격 결과 (Warm Cache / Full Hit) - 최종 지표"
section so it clearly states whether the ≤10ms latency target was met:
explicitly note that the reported 평균 지연 시간 25.8 ms exceeds the ≤10 ms goal, mark
the goal as unmet, and add a brief remediation/next-steps sentence (e.g.,
investigate cache hit amplification, tune Redis settings, or schedule follow-up
testing). Make the same change for the analogous block referenced at lines
40-47; refer to the heading "2차 타격 결과 (Warm Cache / Full Hit) - 최종 지표" and the
metric entries "평균 지연 시간(Average): 25.8 ms" and throughput/min-max values so the
reviewer can locate and update the text.
- Around line 56-60: Replace the absolute claim "100%의 데이터 정합성" with a qualified
statement or add measurement evidence: update the sentence referencing the
Kafka-driven cache invalidation flow (mentions `product.updated`,
`product.status-changed`, and `@CacheEvict`) so it either says the architecture
"significantly reduces stale-data risk" or "achieves near-100% consistency under
measured conditions" and, if possible, append the supporting verification
details (reproduction case, observed miss-rate, test duration) after the claim;
ensure references to `product.updated`, `product.status-changed`, and
`@CacheEvict` remain to show the invalidation mechanism.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0457a205-774b-42c0-9540-a144fe77b402

📥 Commits

Reviewing files that changed from the base of the PR and between 3c4334f and 1f92501.

📒 Files selected for processing (1)
  • docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md

Comment thread docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md Outdated
Comment on lines +24 to +27
- **2차 타격 결과 (Warm Cache / Full Hit) - 최종 지표:**
- **처리량(Throughput):** `993.0 / sec` **(AS-IS 대비 약 646% 성능 향상)**
- **평균 지연 시간(Average):** `25.8 ms` **(AS-IS 대비 약 95% 지연 시간 단축)**
- **최소 / 최대 지연 시간:** `1 ms` / `170 ms`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

목표 지연시간 달성 여부를 명시해 주세요.

Line 26 기준 평균 25.8ms는 링크된 목표(≤10ms)와 불일치합니다. 현재 표/결론은 “전면 달성”처럼 읽혀서, 목표 미달 항목과 후속 계획을 함께 명시하는 게 필요합니다.

제안 문구(예시)
-    - **평균 지연 시간(Average):** `25.8 ms` **(AS-IS 대비 약 95% 지연 시간 단축)**
+    - **평균 지연 시간(Average):** `25.8 ms` **(AS-IS 대비 약 95% 지연 시간 단축)**
+    - ⚠️ **목표 대비 상태:** 이슈 목표(≤ 10ms)에는 아직 미달이며, 추가 최적화(직렬화 비용/네트워크 홉/키 설계 튜닝)가 필요
-| **Average Time** | 539 ms                | **25.8 ms**                  | **`- 95.2% 단축`**   |
+| **Average Time** | 539 ms                | **25.8 ms**                  | **`- 95.2% 단축 (목표 ≤10ms 미달)`** |

Also applies to: 40-47

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md` around
lines 24 - 27, Update the "2차 타격 결과 (Warm Cache / Full Hit) - 최종 지표" section so
it clearly states whether the ≤10ms latency target was met: explicitly note that
the reported 평균 지연 시간 25.8 ms exceeds the ≤10 ms goal, mark the goal as unmet,
and add a brief remediation/next-steps sentence (e.g., investigate cache hit
amplification, tune Redis settings, or schedule follow-up testing). Make the
same change for the analogous block referenced at lines 40-47; refer to the
heading "2차 타격 결과 (Warm Cache / Full Hit) - 최종 지표" and the metric entries "평균 지연
시간(Average): 25.8 ms" and throughput/min-max values so the reviewer can locate
and update the text.

Comment thread docs/performance/Catalog_TO-BE_2.0_Redis_Cache_Performance_Report.md Outdated

@githyj-jang githyj-jang left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다!

@ji-circle
ji-circle merged commit 3f62cf9 into dev May 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DOCS] 최종 카탈로그 메인 API 조회 성능 개선(Redis Cache-Aside) 리포트

2 participants