1. 사전 분석
1.1. 문제 제출 Flow
1.
Learning Activity Mutation
•
Activity Estimation Result 생성 (Insert)
•
SAI 업데이트
◦
learningState
◦
correctType
•
SAI 제출 이벤트 발행
◦
BE StudyActivityInstanceCommand
▪
통계 테이블(statistics) 데이터 업데이트
▪
SAI / SMI 테이블에 다이렉트로 업데이트 X
◦
Data StudyActivityInstanceUpdatedEvent
▪
지식태그 자동판단, 대시보드 코멘트 등에서 활용 (학습 시간)
2.
SUI / SMI 진행률 Fetch
Query
•
studyModuleInstanceCompleteRate - 통계 테이블 조회
•
studyUnitInstanceCompleteRate - 통계 테이블 조회
1.2. 개선 방향
[SMI / SUI 진행률 우선 개선]
•
FE
◦
RegularClassSidebar_CompleteRate 를 바로 Fetch 하지 않고 자체 계산 진행
•
BE
◦
Consumer Lag 개선
▪
batch consumer 적용
•
구현 옵션
◦
Kafka batch library by Spring Boot
◦
Kafka js batch 기능 구현
▪
사내 라이브러리 고도화 및 테스트 필요
•
공통 (Optional)
◦
Server Sent Event를 활용하여 BE → FE 이벤트 전파
▪
SMI / SUI 진행률 최종 업데이트
2. 성능 측정
•
@고준호 계정 생성 스크립트를 이용하여 성능 측정 진행 예정
◦
병렬로 스크립트 구동 가능 (다수의 학생이 문제를 제출하는 상황 재현 가능)