이번 주에는 매니저 증상 상세의 「분석가」 탭을 Agent UI 와 같은 화면·동작으로 맞추고, LiveAgent 화면에서 분석가를 직접 호출해 진행 단계를 7단계로 스트리밍 받는 구조를 추가했다. 서버 자료만으로 PC 상태를 확인하는 노드 대시보드를 새로 짜고, 하루 종일 꾸준한 부하를 잡는 LOAD_STEADY 룰과 분석가 호출 경로의 보안 구멍도 같은 주에 막았다. 서버에서는 큰 설치 파일을 조각 전송으로 올리다 끊겨도 받은 끝에서부터 이어 받게 했고, 매니저 노드 화면에서는 위젯마다 따로 부르던 API 호출을 하나로 묶어 N+1 구조를 정리했다. 정팀장은 진단 지식 베이스에 새 「책」 14종을 추가하고, 밤 시험용 질문과 정답지로 답변 품질을 검증하는 흐름을 갖췄다.
룰·데이터 분석 파트
사양점검·네트워크드라이브·지난시간대·전원잠금·서비스상태·오류코드·장치·라이선스 등 새 「책」 14종 이상을 정팀장 진단 지식 베이스에 추가했다. 기존 책에는 날짜별 집계(백신 검사 시작·끝·중단), 블루투스 연결 여부, USB 저장장치 이력, PC 를 깨우는 예약 작업(WakeToRun) 같은 세부 사실을 보강했다. "SYSTEM 세션에서는 사용자 화면·네트워크 드라이브가 안 보인다", "Test-Path 는 레지스트리 값을 못 본다" 처럼 정팀장이 자주 틀리는 전제를 미리 걸러주는 규칙도 20건 넘게 추가했고, 밤 시험용 질문 17개와 정답지로 답변 품질을 검증하는 흐름까지 같은 주에 갖췄다.
1.6.242.1020 회차 릴리즈 노트를 PDF 쪽 나눔까지 정리해 게시했다.
커널 드라이버 파트
이번 주 커밋과 Jira 생성·완료 없이, 진행 중인 이슈 12건을 이어갔다.
orange
노드 조회가 위젯마다 따로 /api/v3/node 를 부르던 N+1 구조를 노드 저장소 우선 조회로 묶고 동시 요청을 6개로 제한했다. 하드웨어 조회도 AGENT·DISKDRIVE·MONITOR 를 따로 받던 것을 v3 node-info 한 번으로, 위젯마다 따로 쓰던 공유 캐시 키도 하나로 통일했다. 교차검증을 세 차례 거치며 새로고침 회귀·실패값 캐시·403 표시·디스크 용량 K 단위 오독 같은 회귀를 그때마다 잡아 되돌리거나 고쳤다.
분석 서비스 파트
큰 설치 파일을 8MB 조각으로 나눠 올리다 끊기면 서버가 받은 끝에서부터 이어 받도록 REST API·서비스·매니저 세 곳을 함께 구현했다. 임시 파일이 사라졌거나 받은 위치가 안 맞으면 서버가 그 위치로 되돌려 매니저가 다시 그 자리부터 보내게 했고, 멈춘 세션·임시 파일을 지우는 정리 배치도 따로 뒀다. nginx 요청 본문 상한(100MB)을 넘는 파일도 끊김 걱정 없이 올릴 수 있게 됐다.
노드 배포에 예약 시작·예약 수정과 설치 확인 조건을 추가하고, 설치 확인 대기를 기본 30초·최대 1분(에이전트 실행 상한에 맞춤)으로 정해 무한정 기다리지 않게 했다. 설치 확인 실패는 오류 번호 701~703 으로 구분해 안내하고, 배포 화면은 여백·검색 바·페이지네이션·상태색까지 디자인 시스템에 맞췄다.
서버 백엔드 파트
노드를 지우면 그 노드의 baseline 판정 행·원자료·원인 분석까지 끊긴 채 남는 문제를 정리하고, 온라인 상태인 노드는 v2·v3 모두 409 로 삭제를 거부하게 했다. 매니저에서도 온라인 노드는 삭제 메뉴 자체를 숨기고 거부 사유를 안내해, 서버에서만 막던 것을 화면에서도 같은 기준으로 보이게 했다.
rest-api 의 CLAUDE.md·README 를 실제 코드와 대조해 틀린 설명을 고치고, service·package 에도 서비스·cron 목록과 배포 순서를 담은 README 를 새로 썼다. 루트 저장소는 update.bat·README 가 서브모듈을 .gitmodules 의 작업 브랜치로 맞추게 하고, 중복 서술되던 부분은 README 쪽으로 넘겨 한 곳만 보면 되게 정리했다.
매니저·에이전트 파트
증상 상세의 「분석가」 탭을 C++ 분석가 창(Agent UI)과 같은 화면·동작으로 맞췄다. 관계도 배치는 C++ LayoutGraph·DrawGEdge 알고리즘을 그대로 가져와 단 매기기·꺾인 선의 더미 자리까지 맞췄고, 표 칸 폭도 ColumnWidths·AlignGroups 로직을 그대로 옮겼다. 화면을 맞추는 과정에서 판 3 윗선 때문에 판 4 카드 관계도가 원본으로 잘못 그려지던 실제 결함도 함께 잡았다.
LiveAgent 화면에서 분석가를 호출하면 진행 단계를 7단계로 스트리밍 받고 전체 결과는 REST 증적 업로드로 받는 구조를 구현했다. 리포트를 기다리는 중 다른 사람의 분석이 끼어들어도 내 결과 창을 지키게 하고 연결이 끊겨도 15초 안에는 이어지게 했으며, 분석가 창을 닫으면 에이전트가 분석 폴더를 지우도록 해 흩어진 분석 산출물이 남지 않게 했다.
사양·디스크·보안 프로그램·부하 지수·부하 TOP10·시스템 8칸·증상·수집 파일을 한 화면에 모은 노드 대시보드를 새로 짰다. 부하 지수 막대를 누르면 그 시각 TOP10 으로 바로 바뀌고 시스템 지표 칸은 그 지표 상세와 그 시각 원인 패널로 이어지는 등, 누를 수 있는 곳 22곳의 링크 규칙을 통일했다. 서버 쪽에는 하루 프로세스 상위·전사 순위·증상 하루 건수를 한 번에 주는 API 를 새로 추가했다.
LiveAgent 탭의 레거시 화면을 에이전트UI(User2)와 같은 내용·같은 화면 글로 바꿨다. 화면 글을 짧은 명사형으로 통일하고, 매니저 디자인 시스템(공용 색·단색 아이콘·헤더 규칙)을 부하·브라우저·시작 프로그램·설정 패널까지 단계별로 입혔다.
한 시간 급증만 보던 기존 부하 증상이 하루 종일 꾸준히 무거운 프로그램은 못 잡던 문제를 세 단계로 풀었다. 24시간 중 3분 넘게 걸린 시간이 12시간 이상이면 잡는 LOAD_STEADY 룰을 추가하고, 잡힌 프로그램은 분석가가 하루 1회 원인(모듈·연관 프로세스)까지 분석하도록 했다. 분석가 호출 경로도 외부 MQTT 가 에이전트로 가장해 부를 수 없도록 에이전트 안 함수로 바꿔, 지적된 보안 구멍을 같은 주에 막았다.
개발 통계
- 커널 드라이버 파트 는 이번 주 커밋·이슈 활동 없이 진행 중인 이슈 12건을 이어갔다.