성능 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

담당자: 미배정
생성일: 2026년 03월 18일 04:59

활동 로그

  • C
    claude 상태 변경: 리뷰 → 완료

    2026년 09월 30일 06:27:27

  • C
    claude 상태 변경: 진행 중 → 리뷰

    2026년 09월 30일 06:17:19

  • C
    claude 추이 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`라 가끔 무작위 실패(기존 문제)

  • C
    claude 상태 변경: 할 일 → 진행 중

    2026년 09월 30일 06:03:46