성능 P0: Engagement Survey trend N+1 제거
ID: d0fd66c0-4d33-44f2-8f9e-f9101d96e329
workspaces/engagement_surveys_controller의 build_trend_data에서 서베이별 ResultAggregator 개별 호출 → diagnosis_sessions eager load + 결과 캐싱
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
Cclaude 상태 변경: 리뷰 → 완료
2026년 09월 30일 06:27:27
-
Cclaude 상태 변경: 진행 중 → 리뷰
2026년 09월 30일 06:17:19
-
Cclaude 추이 N+1 제거 완료(커밋 d674fbea, 미배포)
2026년 09월 30일 06:08:10
상세 보기
## 원인
- `@trends`는 이미 `ResultAggregator.bulk_for`로 한 번에 계산 중이었음
- 남은 N+1: 화면이 안 쓰는 `@trend`(6/8 대시보드 개편 뒤 미사용)를 분기마다 b2b 존재 확인 + 집계로 계산, `compute_available_categories`가 분기마다 `package_types` 조회## 변경
- `@trend` 계산 제거
- `compute_available_categories`는 미리 불러 둔 `engagement_survey_diagnosis_types`에서 읽음
- 테스트 `engagement_surveys_trend_queries_test.rb`: 분기 3개 추가해도 첫 화면 쿼리 수 동일(예전 37→43)## 검증
- 조직 진단 테스트 282개 통과
- 참고: `engagement_surveys_controller_test.rb` 564행은 UUID `.last`, 626행은 created_at `.last`라 가끔 무작위 실패(기존 문제) -
Cclaude 상태 변경: 할 일 → 진행 중
2026년 09월 30일 06:03:46