1. 데이터 흐름
앱의 원천 로그를 1분 단위로 모아 집계 테이블에 쌓고, 대시보드는 이 집계만 조회합니다.
앱
퀴즈 노출·완료 이벤트
MongoDB
원천 로그
1분 집계 작업
배치 집계
MySQL 집계 테이블
캠페인·일·시간
대시보드 API
NestJS 조회 모듈
광고주 웹
Next.js 대시보드
2. “실시간”의 정의
1분 단위로 모아서 보여 줍니다. 원천 로그를 화면에서 직접 조회하지 않으므로 앱 서비스 속도에 영향을 주지 않습니다. 대시보드에는 마지막 갱신 시각과 “1분마다 자동 갱신”을 함께 표시해, 광고주가 보는 숫자가 언제 기준인지 분명히 합니다.
3. 기술 구성
| 화면 | Next.js (React) | 앱과 같은 React 계열이라 귀사 개발팀이 이어서 관리하기 쉬움 |
| 서버 | 기존 NestJS + 광고주 조회 모듈 | 서버를 새로 만들지 않아 운영 지점이 늘지 않음 |
| 집계 | 1분 집계 작업 + MySQL 집계 테이블 | 원천 로그를 직접 조회하지 않아 앱 속도에 영향 없음 |
| 차트 · 엑셀 | Recharts · SheetJS | 정산 엑셀은 결과보고서 증빙에 그대로 활용 |
| 배포 | 기존 AWS ECR → ECS 파이프라인 | 컨테이너 이미지로 기존 배포 흐름에 맞춤 |
| 보안 | 광고주별 데이터 격리 · 조회 전용 API | 로그인 계정의 광고주 ID로만 조회 |
4. 성공 기준
- 광고주가 로그인해 자기 캠페인의 노출·참여·집행 금액을 1분 이내 지연으로 확인
- 대시보드 합계와 정산 금액이 원천 데이터와 일치 (검증표 제출)
- 정산 엑셀 다운로드 (요약·캠페인별·일별·무효 참여)
- 기존 앱 서비스 응답 속도에 영향 없음
- 11월 말 운영 반영
5. 3주 일정 (착수 11/9)
| 11/9 ~ 11/13 | 데이터 구조 확인 · 화면 설계 · 집계 테이블 설계 |
| 11/16 ~ 11/20 | 집계 작업 · 조회 API · 대시보드 화면 |
| 11/23 ~ 11/27 | 캠페인 상세 · 정산 · 엑셀 · 권한 · 검증 |
| 11/30 | 운영 반영 · 결과보고서 |
6. 투입 인력
| PM · 설계 | 1명 | 일정·요구사항 정리, 데이터/화면 설계 |
| 백엔드 | 1명 | 집계 작업, 조회 API, 권한·격리 |
| 프론트엔드 | 1명 | 대시보드·캠페인·정산 화면, 엑셀 |
전원 직접 개발