### 작업 개요 - #12(Resilience4j), #13(ReportService/PortfolioService 트랜잭션 분리), #14(리포트 생성 지연시간 메트릭) 작업을 시작하기 전, 현재 상태를 k6 부하테스트 + Grafana 지표로 기록해두고 세 이슈가 모두 머지된 뒤 동일한 방법으로 재측정해 개선 효과를 정량적으로 남긴다. - LLM 호출(질문/리포트/포트폴리오 질문 생성)이 `@Transactional` 경계 안에서 DB 커넥션(HikariCP max=10)을 물고 있는 문제(#13)는 동시 요청이 몰릴 때만 재현되므로 k6로 소수 VU를 LLM 호출 API에 동시에 몰아 커넥션 풀 고갈/지연 전파를 재현하고 그 수치를 전/후로 비교한다. ### 작업 범위 - [ ] Grafana 대시보드 구성(TPS, 엔드포인트별 p95/p99, HikariCP active/pending) 및 `monitoring/grafana/dashboards/`에 JSON 커밋 - [ ] k6 스크립트 작성 (`perf/llm-concurrency.js`) — questions/next, report, portfolio questions 동시 호출 + 비-LLM 엔드포인트 대조군 폴링 - [ ] 베이스라인 측정 및 `docs/performance/baseline.md` 작성 (커밋 해시, p95/p99/에러율, Hikari pool 관찰, Grafana 스크린샷) - [ ] #12/#13/#14 작업 완료 대기 - [ ] 재측정 및 `docs/performance/after.md`, `docs/performance/comparison.md` 작성 ### 완료 조건 - 베이스라인과 재측정 결과가 동일한 스크립트/파라미터로 수행되어 직접 비교 가능 - `docs/performance/comparison.md`에 개선 전/후 수치와 결론이 정리됨 ### 관련 이슈 / PR #12, #13, #14
작업 개요
@Transactional경계 안에서 DB 커넥션(HikariCP max=10)을 물고 있는 문제([Task] ReportService / PortfolioService LLM 호출 트랜잭션 경계 분리 #13)는 동시 요청이 몰릴 때만 재현되므로 k6로 소수 VU를 LLM 호출 API에 동시에 몰아 커넥션 풀 고갈/지연 전파를 재현하고 그 수치를 전/후로 비교한다.작업 범위
monitoring/grafana/dashboards/에 JSON 커밋perf/llm-concurrency.js) — questions/next, report, portfolio questions 동시 호출 + 비-LLM 엔드포인트 대조군 폴링docs/performance/baseline.md작성 (커밋 해시, p95/p99/에러율, Hikari pool 관찰, Grafana 스크린샷)docs/performance/after.md,docs/performance/comparison.md작성완료 조건
docs/performance/comparison.md에 개선 전/후 수치와 결론이 정리됨관련 이슈 / PR
#12, #13, #14