Conversation
- currentOpenChatroomsCount 필드 추가: endDate 시점 열려있는 채팅방 - 활성 채팅방 계산: endDate 기준 최근 7일 내 updated_at (중복 방지) - 채팅방 활성률: 활성 채팅방 / 현재 열려있는 채팅방으로 변경 - 프론트엔드: 현재 열려있는 채팅방 박스 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- @PostConstruct aggregateRecentKpisOnStartup() 메서드 제거 - 서버 재시작 시마다 60일치 중복 집계 방지 - 매일 새벽 1시 스케줄러만 유지하여 전날 데이터 집계 - 과거 데이터는 Admin API로 수동 집계 가능
- POST /v1/admin/kpi/aggregate-range 엔드포인트 추가 - startDate부터 endDate까지 일괄 집계 지원 - 파라미터 없이 호출 시 최근 30일 자동 집계 - 각 날짜별 성공/실패 여부 및 통계 응답 제공
- 날짜 선택 영역에 "대량 집계" 버튼 추가 - 기간 선택 모달 창 구현 (시작일~종료일) - 집계 진행 상태 및 결과 표시 (성공/실패 개수, 상세 정보) - 집계 성공 시 자동 대시보드 새로고침 - 모달 애니메이션 및 UX 개선
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
KPI 대시보드를 처음부터 완전히 구현하고, 데이터 정확성 및 성능을 개선했습니다.
주요 구현 내용
📊 1. KPI 대시보드 구현 (22개 커밋)
Phase 1: 기본 인프라 구축
DB 마이그레이션 (V18)
daily_kpi테이블 생성 (시그널, 채팅, 질문, 코드해제, 종료 KPI)chat_room_question.is_initial필드 추가 (초기 질문 구분)도메인 레이어
DailyKpi엔티티 구현인프라 레이어
DailyKpiJpaRepository,KpiChatRepository,KpiSignalRepository구현Phase 2: 배치 집계 시스템
KpiBatchService: 5개 카테고리 KPI 집계 로직
KpiScheduler: 매일 새벽 1시 자동 집계
초기 질문 구분 로직
Phase 3: API 및 프론트엔드
KpiController: 6개 엔드포인트
/v1/admin/kpi: 대시보드 페이지/v1/admin/kpi/summary: 기간별 KPI 요약/v1/admin/kpi/all: 전체 KPI 목록/v1/admin/kpi/aggregate: 단일 날짜 수동 집계/v1/admin/kpi/question-insights: 질문 인사이트/v1/admin/kpi/chatroom-statistics: 실시간 채팅방 통계프론트엔드 구현
🐛 2. 데이터 정확성 개선 (5개 커밋)
시그널 수락률 개선
질문 인사이트 데이터 소스 변경
질문 추천 KPI 버그 수정
KPI 대시보드 날짜별 데이터 반영
질문 카테고리 쿼리 수정
⚡ 3. 성능 및 로직 최적화 (6개 커밋)
채팅방 집계 로직 개선
current_open_chatrooms_count필드 추가 (endDate 스냅샷)활성 / 현재 열린 채팅방KPI 쿼리 최적화
updated_at직접 사용KPI 요약 조회 개선
currentOpenChatroomsSum,activeChatroomsSum을 기간별 합계에서 endDate 스냅 샷으로 변경스케줄러 최적화
🔧 4. 대량 집계 기능 (2개 커밋)
API 구현
POST /v1/admin/kpi/aggregate-rangeUI 구현
기술 스택
영향 범위
daily_kpi테이블 생성chat_room_question.is_initial필드 추가daily_kpi.current_open_chatrooms_count필드 추가테스트 체크리스트
스크린샷
(대시보드 UI 스크린샷 첨부)
관련 이슈
Closes #381
커밋 히스토리 (22개)
Phase 1: 기본 인프라 (7개)
c9b333f- KPI 대시보드 DB 마이그레이션7b7e07e- KPI 도메인 레이어 구현97e56e9- KPI 인프라 레이어 구현dc3fc0d- 초기 질문 구분 로직 구현e2720a0- KPI 배치 서비스 구현56bbb92- KPI 배치 스케줄러 구현e9fcd3b- KPI API 구현Phase 2: 프론트엔드 (4개)
20cd4ca- KPI 대시보드 프론트엔드 구현b03788c- KPI 대시보드 네비게이션 추가1ea1673- 사이드바 중복 코드 제거c57cfd3- KPI 대시보드 실제 API 연동Phase 3: 초기 버그 수정 (5개)
bd68404- KPI 자동 집계 기능 추가fdfe8e7- KPI 대시보드 12개 이슈 수정231e068- 질문 추천 KPI 수집 로직 버그 수정e72d8d4- 질문 인사이트 데이터 소스 변경b6e0838- 시그널 수락률 및 채팅방 통계 개선Phase 4: 추가 개선 (1개)
8616b08- KPI 대시보드 날짜별 데이터 반영 개선Phase 5: 성능 최적화 및 대량 집계 (6개)
f0f6dcb- KPI 쿼리 및 그래프 정렬 최적화866f490- KPI 채팅방 집계 로직 개선1cbb2e9- KPI 요약 조회 채팅방 수 계산 개선9bf99ce- KPI 서버 시작 시 자동 집계 제거fc6eac2- KPI 대량 수동 집계 API 추가947af06- KPI 대시보드에 대량 집계 UI 추가