상황
- 일간, 주간, 월간 기준으로 각 비디오의 TOP5 조회수와 재생시간 통계를 저장
- 각 비디오에 대해 일/주/월 단위 정산 데이터를 빠르게 조회
- 조회수에 따라 단가가 달라지는 정산 규칙이 있으며, 정산 계산은 배치로 수행
문제점, 고려 사항
-
실시간 처리
- TOP5를 실시간 쿼리(SUM)로 처리하면 데이터가 많아질수록 성능 저하 우려가 있음
-
날짜 유연성 확보
- 일/주/월 단위 데이터를 별도 테이블로 나누면 관리 복잡도 증가
- 향후 QUARTER, YEAR 단위 통계 등 기능 확장을 고려한 유연한 구조 필요
의사 결정
- 통계, 정산은 배치를 통해 계산할 결과를 테이블에 저장 후 조회하는 식으로 설계
→사전에 계산하여 만들어 놓은 테이블로 빠르게 요청에 대해 조회 가능
- 일/주/월 데이터를 하나의 테이블에 통합하고 startDate,endDate, type 컬럼으로 관리
→단일 테이블 설계로 데이터 관리 간결 및 날짜에 대한 재사용성이 높아짐
결과 및 회고
테이블을 단일 구조로 통합하니 데이터 관리와 가독성이 좋아졌고, 배치를 통해 계산된 데이터를 미리 저장하니까 실시간 조회속도가 체감될 정도로 빨라졌다