1. 부하 테스트 조건
•
vUser 250
•
테스트시간: 120초
상세 정보
2. 테스트 결과
1회차
2회차
3회차
인프라 모니터링
3. 부하 테스트 성능 개선 주요 후보
ClassMonitorDataPolling
BlockStudyActivityStudentListDrawerBodyCustomActivity
BlockActivityBody
StudentSynchronizationNavSidebarContainer
ClassPresentationHeaderContainer_CustomActivity
StudentStatistics
ChatChannels
updateLastTeachingHistory_CustomActivity
3.1. StudentSynchronizationNavSidebarContainer
개선 필수 쿼리
•
GraphQL
예시 Response
•
주요 내용
◦
LoadRootLearningActivityByCustomActivityIdUseCase
▪
정규수업편집 > ClassPlanDetailScreen 에서도 동일하게 사용 중
◦
CustomCurriculumsServiceImpl@findSubmittedStudentStudyActivityInstancesCountByCustomStudyActivityId
▪
CSA → submittedStudentStudyActivityInstancesCount
▪
SAI 필드들은 AIDT에서 조회안하도록 가능할지?
◦
CustomCurriculumsServiceImpl@findTotalStudentStudyActivityInstancesCountByCustomStudyActivityId
◦
CustomCurriculumsServiceImpl@findSubmittedStudentStudyActivityInstancesCountByCustomStudyActivityId
•
FE
◦
▪
CDC 하위 모든 필드 다 조회중
3.2. ChatChannels
개선 필수 쿼리
•
GraphQL
예시 Response
•
주요 내용
◦
GroupsServiceImpl@findByGroupUserId
▪
데이터 로더 연동 고려
페이지네이션 적용 필요
◦
FE
▪
불필요한 필드 제거가능한지 검토 필요
•
예) Student → userGroupsByManager
3.3. BlockStudyActivityStudentListDrawerBodyCustomActivity
•
GraphQL
•
느린 지점
◦
GroupsServiceImpl@findManyGroupUserByUserId
▪
user → userGroups 리졸브 필드
•
개선 방향
◦
GroupsServiceImpl@findManyGroupUserByUserId
꼭 필요한 데이터인지? 페이지네이션?
3.4. updateLastTeachingHistory_CustomActivity
•
GraphQL
•
주요 내용
◦
CustomCurriculumsFacade@findLearningActivitiesOfCustomActivityByCriteria
◦
CustomCurriculumsServiceImpl@findCustomStudyModuleByCustomStudyUnitId
▪
데이터로더 적용 필요
3.5. ClassMonitorDataPolling
•
GraphQL
•
주요 내용
◦
CSA / SAI 필드들 호출 안하게 가능할지?
◦
CustomCurriculumsServiceImpl@findTotalStudentStudyActivityInstancesCountByCustomStudyActivityId
▪
CSA → totalStudentStudyActivityInstancesCount 리졸브 필드
▪
데이터 로더 연동 필요
◦
CustomCurriculumsServiceImpl@findSubmittedStudentStudyActivityInstancesCountByCustomStudyActivityId
▪
CSA → submittedStudentStudyActivityInstancesCount 리졸브 필드
▪
데이터 로더 연동 필요
◦
CustomCurriculumsServiceImpl@findManyStudyActivityInstancesByStudyActivityInstanceCriteria
▪
CSA → SAIs 리졸브 필드
▪
데이터 로더 연동 필요
3.6. BlockActivityBody
•
GraphQL
•
주요 내용
◦
LoadLearningActivityKnowledgeTagsByLearningActivityIdUseCase
▪
데이터 로더 적용 되어 있음
◦
LoadStandardsFrameworksCodeByLearningActivityIdUseCase
▪
데이터로더 연동 필요
◦
LoadActivityEstimationResultsByLearningActivityIdUseCase
◦
LoadActivityEstimationsByActivitySnapshotIdUseCase
◦
FE
▪
EstimationResult 필요한 필드인지??
3.7. StudentStatistics
•
GraphQL
4. Slow Query
•
1000ms 이상 슬로우 쿼리는 확인 되지 않음.
4.1. Group User (Student) 쿼리
•
연관 API
◦
Student → userGroupsByManager 리졸브필드
◦
GroupUsersRepositoryImpl@findManyGroupStudentByManagerIdAndStudentId
쿼리 플랜
쿼리