[필수-1] 언인스톨 스크립트 (이식성 > 설치성)
- setup/uninstall.sh: Linux 완전 제거 (표준/purge 모드)
- 백업 → 서비스중지 → Ollama/Gitea → 파일/DB 제거 → 보고
- setup/uninstall.ps1: Windows 완전 제거 (NSSM 서비스 제거)
- -Purge -NoBackup -KeepJava -KeepDb 파라미터
[필수-2] 화면별 도움말 시스템 (사용성)
- static/help.js: 7개 화면 도움말 DB + F1/? 버튼 자동 삽입
- 팝업: 아이콘+제목+내용+주제별 네비게이션
- 키보드: F1(열기), ESC(닫기)
- 검색: 도움말 전체 텍스트 검색
[필수-3] 에러 코드 목록 (기능 적합성)
- GET /api/admin/errors/codes: 17개 에러코드 + 해결방법
AUTH_001~004, SR_001~004, LIC_001~003, CMDB_001~002, AI_001~002, SYS_001~002, VAL_001
[필수-4] 웹 접근성 개선 (사용성)
- --text-muted: #64748b(3.1:1) → #94a3b8(4.7:1) 색상 대비 개선
- :focus-visible 규칙 추가 (키보드 포커스 표시)
- 마우스 클릭 시 포커스 링 숨김 (UX 개선)
[필수-5] 성능 시험 실시
- 20명 동시 접속: avg 527ms, P95 864ms (GS기준 3초 통과)
- certification/05_시험성적서/성능_시험_결과.md 작성
[필수-6] 백업/복구 API (신뢰성 > 복구성)
- POST /api/admin/backup: DB+.env+업로드 ZIP 백업
- GET /api/admin/backups: 백업 목록
- GET /api/admin/backups/{file}/download: 백업 다운로드
- POST /api/admin/restore/{file}: 백업 복원
[필수-7] About/버전 화면 (유지보수성)
- GET /api/admin/about: 제품명/버전/빌드일/오픈소스목록
- GET /api/admin/health: DB+Ollama+디스크+라이선스 종합 상태
예상 GS 1등급 점수: 93점 / 100점
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[온보딩 API (routers/onboarding.py)]
- 8단계 온보딩 플로우:
0. 환영 → 1. 비밀번호변경 → 2. 대시보드 → 3. 프로젝트등록
→ 4. 서버등록 → 5. 소스코드등록 → 6. 메신저봇 → 7. 완료
- POST /api/onboarding/message: 현재화면 + 사용자질문 → Ollama 답변
- 화면별 스포트라이트 target 정의 (CSS selector)
- 사용자별 단계 상태 영속 관리
[온보딩 챗봇 UI (static/onboarding.js)]
- 우측 고정 패널 (360px, 모바일 하단 슬라이드)
- 타이핑 애니메이션 효과 + 마크다운 렌더링
- 스포트라이트: 현재 단계 UI 요소를 하이라이트
- 화면 변화 감지 (MutationObserver + click 이벤트)
- 최소화/닫기/재시작 제어
- 사용자 질문 입력 → Ollama 실시간 답변
- 온보딩 완료 후 우측하단 ? 도움말 버튼
- 액션버튼: next/navigate/external/complete/skip
[설치 자동화 연동]
- install_auto.sh: 설치 완료 후 onboarding reset API 호출
- 브라우저 열릴 때 챗봇 자동 표시
사용자 경험:
설치 완료 → 브라우저 자동 오픈 → 챗봇 우측 등장
→ "환영합니다!" → 비밀번호변경 화면 이동 안내
→ CMDB 서버등록 스포트라이트 → Gitea 소스등록
→ 완료 후 ? 버튼으로 재시작 가능
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[Scouter APM 연동]
- core/scouter.py: Scouter HTTP API 클라이언트
- get_summary(): 전체 WAS 모니터링 현황 (CPU/TPS/응답시간/위험서버)
- get_server_metrics(): 특정 서버 실시간 메트릭
- get_alert_list(): Scouter 경보 목록
- get_xlog_recent(): 최근 트랜잭션 X-Log
- routers/scouter.py: REST API 엔드포인트 (6개)
- GET /api/scouter/status, /servers, /servers/{hash}/metrics
- GET /api/scouter/servers/{hash}/services, /xlog, /alerts
- POST /api/scouter/agent/deploy: SSH로 scouter-agent.jar 자동 배포
[스케줄러]
- scheduler.py: Scouter 경보 수집 (5분마다)
- CPU > 80% 또는 에러율 > 5% 서버 자동 감지 → GUARDiA 알림
[Docker Compose]
- docker-compose.yml: scouteross/scouter-server:2.20.0 서비스 추가
- 포트 6100 (UDP/TCP 에이전트 수집) + 6180 (HTTP API)
[설치 스크립트]
- setup/scouter/download_scouter.sh: 에이전트/서버 다운로드
- scouter-agent.jar + agent.conf.template 생성
- setup_ubuntu.sh: Scouter 서버 설치 단계 추가 (14단계로 확장)
- --test 검증: Scouter API + Gitea HTTP 검사 추가
환경변수: SCOUTER_HOST, SCOUTER_HTTP_PORT=6180, SCOUTER_USER, SCOUTER_PASSWORD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>