수업모드

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
쿼리 플랜
쿼리