Big5 결과 페이지 캐싱
ID: 53b3c5c0-dc51-4c10-8786-bb8c3ee6f1d3
## 목표
완료된 진단 결과(불변 데이터)를 Rails.cache로 캐싱하여 반복 조회 시 DB 쿼리 0개.
## 변경 파일
- `app/controllers/diagnoses_controller.rb` — show 액션에 Rails.cache.fetch 적용
- `app/services/diagnosis/big5_result_formatter.rb` — find_quality_code 맵핑 캐시
## 구현
```ruby
# diagnoses_controller.rb
@result = Rails.cache.fetch(["big5_result", @session.id, I18n.locale], expires_in: 30.days) do
Diagnosis::Big5ResultFormatter.new(@session).format
end
```
## 완료 기준
- 첫 조회 시 Formatter 실행, 이후 캐시 히트 (로그 확인)
- 9Way, Engagement 결과에도 동일 패턴 적용
- expires_in: 30일 (진단 결과는 불변)
## 의존성
없음 (독립 작업 가능)
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
서브 티켓 (1/1 완료)
활동 로그
-
팀팀리드 리뷰 완료 - 승인 (결과 캐싱)
2026년 03월 06일 14:50:51
상세 보기
## 리뷰 결과
- 상태: 승인
- bin/ci: 기존 이슈만 (변경 파일 관련 신규 이슈 없음)## 코드 품질
- Rails.cache.fetch 키 설계 적절 (session.id + locale)
- expires_in: 30.days — 불변 데이터에 적합
- find_quality_code 2단계 캐싱 (인스턴스 + Rails.cache) 효율적
- DRY 개선 가능: show/shared 캐싱 코드 헬퍼 추출 권장## 보안
- PASS (Critical/High 0건)
- 캐시 키 조작 불가 (DB PK + 서버 locale)
- 인증/인가 정상 (set_session before_action)## 개선 제안 (별도 티켓)
- 캐싱 코드 DRY 리팩토링 (private 헬퍼 추출)
- edit_branding에도 캐시 적용 -
팀팀리드 상태 변경: 리뷰 → 완료
2026년 03월 06일 14:50:40
-
팀팀리드 상태 변경: 진행 중 → 리뷰
2026년 03월 06일 10:49:54
-
팀팀리드 위임: cache-dev에게 '진단 결과 Rails.cache.fetch 적용' 작업 배정
2026년 03월 06일 10:42:40
-
팀팀리드 티켓 클레임 완료
2026년 03월 06일 10:42:18
-
팀팀리드 상태 변경: 할 일 → 백로그
2026년 03월 06일 10:02:59