2026년 7월(7/1 ~ 7/31) 월간 리뷰. 6명이 GitHub 10개 레포에서 1,009커밋, +154,346 / −49,754 라인(대량 커밋 >3000 제외)을 남겼다. 한 달 동안 푼 문제 중심으로 정리한다.
룰·데이터 분석 파트는 룰·분석 설계가 본업이라 커밋 카운트로는 작게 잡히지만 산출물은 위젯 기획·분석 모델이다. 아래 섹션에 별도로 정리한다.
AI 원격 진단·원격 제어 인프라와 프로세스 지표 재설계
7월 한 달 328커밋. 플랫폼 전반의 신규 라인(AI 진단·원격 제어)과 프로세스 영향도 지표 재설계를 동시에 끌고 갔다.
AI 원격 진단 Phase 1 — LLM이 자료를 읽고 필요한 명령만 노드에 발행 (OR-1716). 노드 위젯에 관리자가 궁금한 것을 물으면 서버가 이미 수집한 자료를 먼저 읽고, 확인이 필요한 것만 그 PC에 직접 명령을 보내 원인을 알려주는 AI 원격 진단 탭을 붙였다. 사람이 LLM과 LiveCMD 사이에서 명령을 나르던 일을 없애는 것이 목표다. 대화형 LiveCMD 세션이 종료 시점·종료 코드를 제공하지 않는다는 조사 결과를 근거로 get.CMD / get.POWERSHELL 단발 실행으로 전환했다. 1차 서버 자율 진단 설계가 세션 takeover·브로커 ACL·감사 귀속 문제를 지적받자 브라우저 주도로 재설계했고, 교차검증에서 "아키텍처 문제 대부분을 제거했다"는 평가와 제안 모드 조건부 GO 판정을 받았다.
프로세스 증상 확산 예측 배치 — TIPS ML 지표 충족 + systemd timer 결함 격리 (OR-1680). 한 PC에서 난 증상이 같은 원인 프로그램을 쓰는 다른 PC로 번질지를 매시 예측하는 기능을 구현·배포했다. TIPS 사업계획서의 '머신러닝 예측 시스템'(예측 항목 10개 이상·타 Endpoint 발생 예측·정확도 제공) 지표를 sprocess 단독 10종으로 충족했다. 증상 계열은 8개월 소급 재연 적중률이 5.6%에 그쳐, 데이터가 쌓일 때까지 휴면 처리하는 판단을 내렸다. 실행 구조는 cron→aggregator 통합을 거쳐 독립 systemd timer + oneshot로 재분리해, 예측만 개별로 끄고 저널로 관측하며 배치가 죽어도 집계에 무영향인 결함 격리를 확보했다.
자체 원격 화면 제어 배선 + coturn 표준화 — 하드코딩 제거·서버 발급 ICE 크레덴셜 (OR-1703). 에이전트 원격 화면 제어를 단일 세션·인계 확인(busy/takeover 통지) 구조로 새로 배선하고, WebRTC ICE가 의존하는 coturn(STUN/TURN 릴레이)을 Orange 표준 서버 구성에 편입했다. 코드에 하드코딩돼 있던 coturn 주소·포트·크레덴셜을 매니저 서버 설정 항목으로 빼고, 서버가 발급하는 ICE 크레덴셜(use-auth-secret)로 cut-over해 배포마다 매니저에서 지정하도록 했다. UDP가 막힌 기업망을 위한 TURN-over-TCP 경로까지 고려한, 실제 원격 지원 인프라의 토대다.
pscore(부하지수)를 고통지수로 재정의 — CPU초·메모리 2단·NPP 핸들 4축 재설계 (OR-1601). 부하지수를 '이걸 끄면 사용자 PC가 편해지나'라는 고통지수(pain score) 하나로 정의하고 산출식을 revision 20으로 재설계했다. CPU를 성긴 순간 샘플 대신 커널 누적 ProcessTime÷코어수로, 메모리를 자기 기준(첫 측정의 1.5배)과 총량 기준(RAM 25%)의 2단 판정으로, 핸들을 개수가 아닌 NPP(non-paged pool) 포화 기준으로 바꿨다. 저CPU·고핸들 누수형은 잡고, 개수만 많은 svchost류 오탐은 0으로 만들었다. 백신 표준 상주가 저사양 노드에서 매일 전사 1위로 뜨던 오탐을 512MB 감수선과 자기 기준으로 해소했다.
프로세스 영향도 통합 정리 — 실행 인자·실행 계보(FAMILY)·탐색기형 계층 트리 (OR-1640). 프로세스 투데이·리스트 탭과 서버 집계를 통합 정리해, 헤드라인의 '실행 인자'가 항상 '-'로 뜨던 문제를 집계 누락(aggregator meta 7필드)과 프론트 하드코딩 두 겹에서 함께 잡았다. 실행 계보(FAMILY) 엔드포인트를 신설해 wininit→services→svchost→…→git 식 부모→자식 실행 흐름을 세로 타임라인으로 보여주고, 리스트 탭을 CompanyName > ProductName > Version 탐색기형 계층 트리 + 검색으로 재구성했다. 집계에서 시스템 프로세스(IsSystem=1)를 제외하고 미분류 드릴다운 필터를 더해 노이즈를 걷어냈다.
Network Zone 위치 판정 엔진과 서버 인프라 계측
7월 한 달 377커밋으로 기간 최다. 신규 큰 라인(Network Zone)과 서버 운영 계측·명령 인프라·폐쇄망 보안을 동시에 굴렸다.
Network Zone 판정 엔진 1~3단계 핵심 — 무음병합 0건 적대검증 + auth 배선 live (OR-1618). PC가 어느 장소(사무실·지사)에 있는지를 측정 신호로 판정하는 Network Zone 엔진의 1~3단계 핵심을 구현하고 개발서버 72노드에서 실증했다. 재사용되는 192.168.0.0/24 사설 대역이 서로 다른 두 사이트로 조용히 병합되는 것(무음병합)을 매 계층 적대검증으로 0건 유지하고, 노드 인증 후 background로 라벨링하는 auth 배선(fail-open · hot-path 0)으로 dormant 상태를 live로 켰다. 데이터 모델 4종·인덱스를 migration 단일 소스로 두고 3라운드 독립 검증을 거쳐 머지 차단급 결함 0으로 병합했다.
Network Zone 운영자 UI 초기형 — 브라우저로 운용 체감 + gateway_mac 제안 UX (OR-1630). 서버 API가 완성된 Network Zone을 브라우저 UI만으로 직접 운용해보며 UX·워크플로·API 갭을 발굴하는 운영자 UI 초기형을 manager-web에 만들었다. zone 트리 CRUD·노드 리뷰 리스트·pin/unpin·recompute에 더해, 운영자가 12-hex 라우터 MAC을 손으로 치는 부담을 없애기 위해 노드가 이미 측정한 라우터에서 골라 확인하는 gateway_mac 제안 UX를 얹었다. 'measure-before-polish'를 운영자 경험에 적용해 목표 고객사 투입 전 리허설로 삼는 접근이다.
MongoDB 운영 통계 계측 — 상시·추세·온디맨드 3계층으로 DB 지표 확충 (OR-1720). 제품의 주축 저장소인 MongoDB가 서버 모니터링 위젯에서 버전·연결수 4개 값만 노출하던 것을, serverStatus · dbStats · $indexStats에서 운영 판단에 직결되는 지표를 상시·추세·온디맨드 3계층으로 계측하도록 확충했다. 실측으로 sprocess 컬렉션이 전체 스토리지의 76%(4.86GB)를 차지하고 스캔 효율이 70:1(COLLSCAN 51만회)임을 화면에 드러내, 쿼리 퇴화를 단일 숫자로 감시할 수 있게 했다. 워커 4개 환경에서 rate 계산이 깨져 있던 선행 결함을 먼저 고치고, /v3/health/system을 인증 뒤로 옮겨 무인증 노출을 차단했다.
경량 명령(Signal Command) 인프라화 — 복제 통로를 단일 dispatch로 통합 (OR-1673). 명령을 '무거운 추적 명령' 하나로만 다루던 구조를, 결과 집계가 필요 없는 경량 명령까지 포괄하는 표준 인프라로 확장했다. reauth · rule_reload마다 Redis 채널·핸들러·subscribe가 통째로 복제되던 문제를 단일 dispatch로 통합하고, 그 위에 PC 재부팅(@reboot)·종료(@shutdown)·Agent 재시작 같은 즉시 액션(T1)을 개통했다. 명령의 '무게'를 결과수집·배달보장·생명주기 3개 독립 축으로 재정의해 확장 가능한 통로로 만들었다.
폐쇄망 시스템 패키지 lock + 오프라인 보안 업그레이드 경로 신설 (OR-1468). 인터넷이 없는 폐쇄망에 한번 들어간 서버가 nginx · redis · mongodb · mosquitto 보안 패치를 적용할 방법이 전혀 없던 문제를, 시스템 패키지 버전 lock + 오프라인 .deb 번들로 풀었다. 빌드 시 컨테이너에서 의존성 폐쇄(closure) .deb를 받아 동봉하고, update.sh가 lock 버전 > 설치 버전일 때만 file:// apt 저장소로 오프라인 업그레이드 후 해당 서비스를 재시작하도록 했다. --network none 컨테이너 실설치 성공·E2E 0바이트 네트워크 업그레이드까지 검증했고, 주간 tech-news가 실제 설치 버전을 몰라 CVE를 보수적으로 오탐하던 것도 lock 공유로 함께 해소했다.
system.py 디스크·네트워크 지표 6종 편입 + 미등록 필드 조용한 누락 방지 (OR-1662). 에이전트가 보내는 22개 필드 중 8개를 서버가 검증 단계에서 조용히 버리던 문제를 추적해, 디스크·네트워크 처리율 6종을 CPU/Memory와 동일한 수집·집계 경로에 편입했다. 같은 유형의 누락이 재발하지 않도록 미등록 키 수신 시 조합당 최초 1회 warning을 남기는 안전망을 두고, IO 단위가 'MB'로 잘못 표기돼 있던 것을 agent 확인을 거쳐 'MB/s'로 확정 정정했다.
파일함 도메인과 노드 자원 baseline 탐지 서비스
7월 한 달 63커밋. 관리자 파일 관리 도메인과 노드 자원 일상 분류 서버 서비스 두 라인을 동시에 굴렸다.
관리자 파일 관리(file_storage) 도메인 신설 — 보관→검토→적용→롤백 일원화 (OR-1582). 매니저가 웹에서 직접 파일을 업로드·버전관리·배포하는 파일함(file_storage) 도메인을 신설했다. 단순 플랫 저장이 아니라 폴더 트리 + 파일별 버전 이력 구조로, 업로드한 번들을 rule·조직도·에이전트 업데이트 배포 파이프라인에 연결해 보관→검토→적용→롤백을 한 곳에서 처리한다. 오해 소지가 있던 기존 file_system.py를 경로·operation_id 불변으로 upload.py로 정리해 에이전트·ACL 무영향을 보장하며 신규 도메인을 얹었다.
Node 자원 일상 분류 서버 baseline 서비스 — EWMA+CUSUM 지속 이탈 판정 (OR-1613). 노드 자원사용량을 '그 노드가, 그 시간대에, 평소와 지속적으로 다르면 비일상'으로 판정하는 서버 baseline 서비스를 별도 격리 프로세스로 구현했다. 8지표 × 통계별로 (노드, 지표, 시간대) EWMA 평균·분산을 학습하고 CUSUM으로 지속 이탈을 누적해, 순간 스파이크는 winsorize로 무시하고 ~15분 지속·레벨 시프트만 발화하도록 했다. 가동 패턴(presence) 신호까지 max-severity로 롤업해 노드당 verdict 1개 + top_reason으로 산출한다.
Baseline Detect 최적화 — $nin/$lookup 규모별 이원화 + 인덱스 재설계 (OR-1553). 일상 판정된 증상을 리스트에서 제외하는 excludeRoutine을, routine 키 규모에 따라 $nin(≤1만 키)과 $lookup(대규모) 두 경로로 나눠 최적화했다. 소규모는 해시셋 O(1) 멤버십, 대규모는 group-first 선그룹핑으로 조인 횟수를 문서 수에서 distinct 증상 수로 줄이고 sparse nkey 인덱스로 verdict 필터 없이 매칭한다. detect_node가 COLLSCAN이던 경로를 기존 time 인덱스 재사용·(CGID, hour) 인덱스 추가로 IXSCAN으로 돌리고, 판정 데몬을 systemd에서 cron(매시 :10)으로 이전했다.
Baseline 민감도 프리셋 store 승격 — 재배포 없이 운영자가 조정 (OR-1681). 일상/비일상 자동 분류의 민감도(엄격/표준/완화 프리셋)를 운영자가 매니저에서 재배포 없이 조정할 수 있게 했다. 코드에 하드코딩돼 있던 프리셋 정의를 store 문서로 승격하고, 데몬은 활성 resolved 값만 매 run 읽으므로 REST가 활성값을 동기화하면 데몬 코드 변경·배포 없이 조정된다. 편집 가능한 정의와 공장 사본(복원·수정여부 비교용)을 분리하고 '1 엔드포인트 = 1 유스케이스'로 활성화/편집/복원을 단일 PUT으로 처리했다.
증상 강제 처리 배치화 + 대칭 복원 — 오탐을 빠르게 일상으로 (OR-1679). 오탐(비일상으로 잘못 분류된 증상)을 관리자가 빠르게 일상으로 강제하는 흐름을, 증상 1건씩 처리하던 것을 다중 선택 배치(1~N)로 일원화했다. 강제 시 분류 현황에 즉시 낙관 반영하고, 해제 시 verdict_history의 강제 직전 값으로 즉시 복원(대칭)해 목록에서 바로 빠지도록 했으며, 이때 oscillation 지표(verdict_change_count)는 오염시키지 않았다.
고객사 서버 원격 배포 스크립트 신설 — 다중 서버 무인 배포 자동화 (OR-1733). 신규 패키지를 서버마다 SFTP 업로드 후 SSH로 설치 스크립트를 하나씩 돌리던 수동 과정을, 여러 서버에 업로드→압축 해제→update.sh/setup.sh 무인 실행까지 한 번에 처리하는 배포 스크립트로 자동화했다. Windows(PowerShell)·Mac/Linux(bash) 양쪽을 제공하고, 업로드 계정과 sudo 실행 계정 분리·번호 선택 대화형·서버당 로그·한 서버 실패해도 나머지 계속 진행을 지원한다.
커널 드라이버 BSOD 근본 수정과 시작 프로그램 탐지
7월 한 달 94커밋. 커널 드라이버 최하단(IRQL 규약)부터 Manager UI 패널 서버화까지 동시에 짚었다.
orange.sys BSOD 근본 수정 — 락 쥔 채 ZwClose 호출 구조를 IRQL 규약 준수로 (OR-1691). Driver Verifier 활성 상태에서 서비스 중지 시 orange.sys가 0xC4(DRIVER_VERIFIER_DETECTED_VIOLATION) BSOD를 100% 재현하던 것을 WinDbg로 근본 원인까지 추적해 고쳤다. CProcessTable::Clear()가 테이블 락(fast mutex, IRQL을 APC_LEVEL로 상승)을 쥔 채 각 엔트리의 ZwClose(PASSIVE_LEVEL 전용 API)를 호출하는 구조 자체가 원인으로, Verifier 없이도 원칙상 불법이나 평소엔 우연히 통과하던 것이 드러난 것이다. 락 안에서는 엔트리 복사·노드 삭제만 하고 ZwClose·풀 해제는 락을 푼 PASSIVE 상태에서 수행하는, 검증된 Remove() 패턴으로 바꿨다.
Agent 시작 프로그램(ASEP) 태깅 — lock-free 스냅샷 + SYSTEM 컨텍스트 극복 (OR-1634). 에이전트에서 처음 관측된 프로세스가 시작 프로그램(ASEP)인지 판정해 sprocess의 Tags에 startup으로 기록하는 기능을 구현했다. 커널만으로는 판정이 불가능해 유저모드가 Run/RunOnce·시작 폴더·Winlogon·작업 스케줄러 4종 ASEP 스냅샷을 유지하고, SYSTEM 서비스라 HKCU를 못 보는 제약을 HKEY_USERS\<SID> 순회와 사용자 프로필 기준 환경변수 사전 치환으로 넘었다. 스냅샷을 std::atomic<shared_ptr>로 원자 교체해 수집은 build-once, 조회는 lock-free 이진 탐색 O(log N)으로 처리하는 확장 가능한 IPlugin 구조로 재정리했다.
리소스 급변 패널 서버화 — '자기 평소를 깼나' median+MAD 판정 (OR-1573). 평소와 다르게 자원을 쓰기 시작/멈춘 프로세스를 잡는 '리소스 급변' 판정을, 프로세스마다 정상 폭이 달라 절대 임계 하나로 못 재는 문제로 접근해 '자기 평소를 깼나'로 판정하도록 했다. 그날 피크값을 최근 유효일의 median+MAD 기준폭과 비교해 편차 ≥ k(기본 3)이고 처음 보는 수준이면 급변으로 걸러내고, 배율 대신 이상도 등급(관심/주의/심각)으로 표기한다. 15일 × 하루 6천건을 클라이언트가 풀페이징하던 임시 로직을 서버 전용 /sprocess/resource-shift 엔드포인트 1콜로 이관했다.
별종·소프트웨어 부하 패널 서버화 — distinct 노드 union으로 배포율 정정 (OR-1562). '이상 프로세스' 밴드의 별종(배포 희소 소프트웨어)과 소프트웨어 부하 Top10 패널을 클라이언트 풀스캔에서 서버 집계로 이관했다. 별종을 그날 그 소프트웨어를 실제로 띄운 distinct 노드 수 ≤ k(=ceil(rate × fleet))로 정의하고, 같은 PC가 여러 SUID를 돌릴 때 중복 과대계상되던 배포율을 raw $addToSet로 정확한 node distinct union으로 바로잡았다. 소프트웨어 부하는 procName + 버전으로 롤업해 '넓게 깔렸는데 무거운 SW = 표준화 1순위'를 한 줄로 식별하게 했다.
Live Agent 시작 프로그램 탭 신설 — startup 프로세스 스냅샷 + 영향도 연동 (OR-1683). OR-1634로 에이전트가 노드별 시작 프로그램 수집을 시작함에 따라, Manager > 노드 > Live Agent에 그 목록을 보여주는 시작 프로그램 탭을 신설했다. Tags에 startup이 포함된 프로세스만 앱 탭과 동일한 그리드 패턴으로 표시하고, 행 클릭 시 해당 SUID의 프로세스 영향도를 레이어 윈도우로 연다. get.SPROCESS_STARTUP_SELECT로 탭 진입 시 1회 스냅샷만 받는 구조다.
'왜 올랐나'를 데이터로 답하는 분석 위젯 설계
7월 GitHub 카운트는 23커밋이지만 산출물은 위젯 기획·분석 모델이다. 두 작업 모두 '추정하지 않고 관측된 값·항등식만 쓴다'는 원칙 위에 서 있다.
전체 노드 부하 위젯 프로세스 탭 + '왜 올랐나' 원인 추적으로 범위 확장 (OR-1675). 전체 노드 부하 위젯에 '프로세스' 탭을 더하는 작업으로 시작했으나, 진행 중 '부하가 왜 올랐는지를 데이터로 답한다'는 문제로 범위가 확장됐다. 부하 캔들(5분 단위)에서 클릭한 시각이 속한 hour 버킷의 프로세스별 자원 랭킹을 CPU/Memory/I/O/Handle과 신규 Disk·유선·Wi-Fi 지표로 보여주고, Δ직전 시간·Δ어제 컬럼으로 '왜 이 시각이 고점인가'의 비교 대상을 제공한다. '추정하지 않는다(관측된 값·항등식만)'와 '우리 것만 건드린다'는 두 원칙을 세우고 진행했다.
영향도 분석 페이지 — 평소 대비 오늘 변한 것만 시간패턴 3분류로 (OR-1517). 매일 같은 순위만 나와 관리자가 안 보던 리스트/차트뷰 대신, '평소 대비 오늘 변한 것을 뉴스처럼 먼저 던지는' 영향도 분석 페이지를 기획·구현했다. 직전 완료일(어제)을 D-7~D-1 baseline과 비교해 z = (D − mean₇) / std₇ ≥ 4로 '안정적이던 게 진짜 튄 것'만 남기고, 자원종류가 아니라 시간 패턴(오늘 급증 / 지속 상승 / 신규 실행)을 축으로 분류했다. plateau(점프 후 평평)는 이미 알린 것의 잔상으로 제외해 같은 항목이 며칠 반복되지 않게 했다.
1:N 명령 관리 ver.2와 매니저 UX 전면 정비
7월 한 달 124커밋. 명령 관리·노드 현황 랜딩·조직도·사이드바·로그인까지 manager-web UX를 폭넓게 정비했다.
1:N 명령 관리 ver.2 — 기능 보존 UI 전면 개편 + 만료/종료 판별 규칙 통일 (OR-1586). 기존 1:N 명령 위젯의 기능을 그대로 보존하면서 UI를 전면 개편한 ver.2를 새 폴더(nOrderManagement)로 만들었다. 명령/대상 계층 분리·응답률 세그먼트 바·상태 pill·달력 날짜 필터를 갖춘 카드 + 슬라이드오버 구조로 재구성하고, 서버가 종료 명령을 모두 forced_complete로 주는 것을 end_time 경과 여부로 '만료/종료'를 구분하는 규칙을 카드·필터에 통일 적용했다. 명령 생성 슬라이드를 디자인 시스템(Tailwind)으로 전환하고 예약·만료 시간 제약(만료 max = 시작 + 7일)을 정비했다.
그룹별 노드 현황 요약 랜딩 신규 개발 — 공간·조직 단위 3단 구조 (OR-1641). 노드 위젯 진입 시 수백 개 노드 그리드 대신 그룹(강의실·부서) 단위 요약 카드가 먼저 뜨고, 카드→그룹 상세 리포트→노드 목록으로 좁혀 들어가는 3단 구조를 신규 개발했다. '제1실습실에 AI 수업 돌릴 수 있나' '교체해야 할 PC가 몇 대인가' 같은 관리자의 실제 질문에, 노드를 하나씩 열지 않고 공간·조직 단위 집계로 답하는 것이 목표다. BIOS 제조일(SYSTEM) 수집을 요청서에 반영해 제조 연식·교체 검토 근거를 확보하고, 서버 요구사항을 SERVER_INTEGRATION.md로 통합했다.
노드 목록 컬럼 커스터마이징 — 연동 상태별 프리셋 + 개인별 저장 (OR-1276). 노드 목록 위젯을, 조직도 연동 여부에 따라 다른 기본 프리셋을 제공하고 관리자가 컬럼 순서·표시·정렬을 직접 조정해 개인별로 저장하도록 개선했다. 홈 화면 위젯 배치와 동일한 /api/v1/manager/web 인프라(manager_id + type 유일 문서)를 재사용하고, 조직도 연동 상태 판정을 localStorage에서 서버 차원으로 이관해 Zustand store에 캐싱하고 변경 시점에만 서버에 반영한다. 기본값 되돌리기는 문서 DELETE로 프리셋 자동 적용이다.
조직도 관리 위젯 커스텀 DnD 교체 — 라이브러리 충돌 제거·3단계 위치 인식 (OR-1447). 조직관리 위젯의 트리 DnD를 라이브러리 내장 DnD와 커스텀 이벤트가 혼용돼 색상 충돌·드롭 위치 부정확이 나던 것을, 커스텀 div 렌더러로 완전 교체했다. 마우스 Y 위치 기준 before/into/after 3단계 위치 인식·최상위 이동 차단·드롭 타겟 하이라이트를 통일하고, 사용자 추가/수정은 확인 즉시 API 저장, 저장 후 전체 페이지 새로고침 대신 데이터만 재조회해 화면 위치를 유지하도록 했다. AG Grid 파랑 계열 기본 색을 브랜드 오렌지 선택색으로 CSS 변수 이중 오버라이드했다.
사이드바 네비게이션 개편 + 로그인 페이지 정비 (OR-1678, OR-1682). 현장에서 온 '아이콘만으로는 메뉴 기능을 한눈에 파악하기 어렵다'는 요청을 받아, 아이콘만 표시되던 좌측 사이드바(LNB)에 메뉴명 텍스트를 함께 표시하는 펼침/접힘 토글을 구현했다. 슬림하게 유지하려는 요구와 메뉴명이 보이는 게 낫다는 요구가 상황마다 다른 점을 토글로 양립시키고, 좌측 네비 새로고침 시 영어→한글 깜빡임도 제거했다. 로그인 화면은 불필요한 요소(wallpaper·데모 라우트·죽은 코드)를 정리하고 DESIGN_SYSTEM.md 기준으로 재정비했으며, 입력 필드를 흰 배경 outline + 오렌지 포커스 링으로 바꾸되 전역 Chakra !important 규칙을 로그인 전용 선택자로 오버라이드하고 autofill 시 버튼이 비활성으로 남던 문제를 해결했다.
한 달의 결
7월은 '수집한 데이터를 실제 진단·의사결정으로 바꾸는' 라인이 여럿 개통된 한 달이다.
- AI·원격 진단 라인 개통: 매니저·에이전트 파트가 LLM이 서버 자료를 먼저 읽고 필요한 명령만 노드에 발행하는 AI 원격 진단 Phase 1과 자체 원격 화면 제어(coturn 표준화)를 배선하고, 프로세스 증상 확산 예측 배치로 TIPS ML 지표를 sprocess 단독 10종으로 충족했다. 부하지수를 '고통지수'로 재정의해 백신 상주 오탐을 0으로 만든 지표 재설계까지.
- PC 위치 판정이라는 새 축: 서버 백엔드 파트가 측정 신호로 PC 위치를 판정하는 Network Zone 엔진(사설대역 무음병합 0건 적대검증)을 개발서버 72노드에서 실증하고 운영자 UI 초기형까지 냈다. MongoDB 운영 지표 3계층 계측·경량 명령 인프라·폐쇄망 오프라인 보안 업그레이드 경로도 같은 달에 함께.
- 서버 탐지 축 구축: 분석 서비스 파트가 노드 자원 일상/비일상 판정 baseline 서비스(EWMA+CUSUM)를 격리 프로세스로 구현하고 detect 최적화($nin/$lookup 이원화)·민감도 프리셋 store 승격까지 운영자 손에 넘겼다. 웹에서 보관→검토→적용→롤백하는 파일함(file_storage) 도메인도 신설.
- 커널 최하단 근본 수정: 커널 드라이버 파트가 Driver Verifier
0xC4BSOD를 '락 쥔 채 PASSIVE 전용 API 호출'이라는 IRQL 규약 위반까지 WinDbg로 추적해 근본 수정하고, 시작 프로그램(ASEP) 태깅을 lock-free 스냅샷으로 구현, 리소스 급변·별종 패널을 서버 집계로 이관했다. - 분석·UX가 답을 던지게: 룰·데이터 분석 파트가 '왜 올랐나'를 hour 버킷 프로세스 랭킹과 Δ비교로 답하는 부하 위젯·영향도 분석 페이지(z ≥ 4)를 설계하고, 프론트엔드 파트가 1:N 명령 관리 ver.2와 그룹별 노드 현황 요약 랜딩을 신규 개발하며 조직도 DnD·사이드바·로그인까지 매니저 UX를 폭넓게 정비했다.