- Playwright headless 촬영으로 실제 배포 화면 스크린샷 10장 캡쳐
ITSM: 대시보드/SR목록/인시던트/AI에이전트/라이선스 (5장)
Manager: 대시보드/DR관제/네트워크장비/CSAP점검 (4장)
Messenger: 모바일 앱 화면 (1장)
- GuardiaDetail.jsx: 3개 섹션으로 분리 표시
- GUARDiA ITSM 5장 (3열 그리드)
- GUARDiA Manager 4장 (2열 그리드)
- GUARDiA Messenger 모바일 앱 (세로 비율)
- 탭 메뉴: 'Manager' 탭 신규 추가 (4장 2열 뷰)
- GuardiaDetail.css: 모바일 앱 세로 스크린샷 스타일 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
## 홈페이지 (프론트엔드)
- MemberLogin.jsx: 회원가입/로그인 통합 페이지 + 카카오·네이버·구글 SNS 버튼
- MemberAuth.css: 인증 페이지 공통 스타일
- hooks/useMemberAuth.jsx: 회원 인증 상태 훅 + MemberOnly 컴포넌트 (회원 전용 잠금)
- Header.jsx: 로그인/회원가입 버튼 + 로그인 시 이름/로그아웃 표시
- Contact.jsx: 문의 상담 신청 → 회원 전용 (MemberOnly 적용)
- App.jsx: /login, /register 라우트 추가
## 관리자 (Admin)
- AdminMember.jsx: 회원 목록/검색/상태변경/삭제 페이지
- AdminLayout.jsx: '회원 관리' 메뉴 추가
- App.jsx: /admin/members 라우트 추가
## 백엔드 (Spring Boot)
- Member.java: 회원 엔티티 (id/name/email/password/phone/company/role/active)
- MemberRepository.java: 이메일 조회·중복확인·키워드 검색
- MemberController.java: 회원가입·이메일 중복확인·로그인·SNS 로그인·내 정보 CRUD
- AdminController.java: 회원관리 API (목록/상세/상태변경/삭제) + 대시보드에 회원 수 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
회사 정보 변경:
- 대표이사: 홍영택
- 전화: 031-483-1766
- 주소: 경기도 안산시 단원구 광덕4로 220 오피스브이 578호
적용 파일:
- Footer.jsx: 전화/주소 업데이트
- Company.jsx: CEO 인사말 대표이사명, 오시는 길 주소/전화/교통 안내
- Company.jsx: 지도 → 네이버 지도 iframe 연동
- Support.jsx: 고객지원 전화번호 전체 변경
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 6개 서비스 전체 HTTP 200 확인 (443/8001/8090/8443/3000/8080)
- Jenkins 초기 관리자 비밀번호 매뉴얼에 기재
- Jenkins URL http→https 수정
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ufw 불필요 규칙 8개 제거 (8088/9001/8082/8002/995/143/110/3001)
- 최종 ufw 12개 규칙으로 정리
- 접속 URL https://zioinfo.co.kr 업데이트
- Manager/개방망 URL 추가
- SSL 인증서 및 방화벽 정책 섹션 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
## Messenger 하네스 확장
- agents/feature-developer.md — 신규 기능 화면 개발 전문 에이전트
(DR·네트워크·CSAP·생체인증·오프라인·Kanban·다크모드·멀티기관·인시던트·실시간)
- skills/new-features/SKILL.md — 10가지 신규 기능 React Native 구현 가이드
- messenger-orchestrator description 확장 (신규 기능 트리거 추가)
## Manager 하네스 확장
- agents/roadmap-planner.md — Manager 추가 개발 기획 전문 에이전트
- skills/manager-roadmap/SKILL.md — MG-01~MG-09 페이지 구현 가이드
- manager-orchestrator description 확장 (로드맵/MG 트리거 추가)
## ITSM 하네스 확장
- agents/roadmap-planner.md — ITSM 추가 개발 기획 에이전트
- skills/itsm-roadmap/SKILL.md — I-01~I-10 기능 제안 카탈로그
## 추가 개발 제안서 3종 (docs/)
- MESSENGER_NEXT_FEATURES.md — 모바일 신규 기능 10종 (M-01~M-10)
- ITSM_NEXT_FEATURES.md — ITSM 신규 기능 10종 (I-01~I-10)
- MANAGER_NEXT_FEATURES.md — Manager 신규 페이지 9종 (MG-01~MG-09)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
## 구현 내용
### DR 자동화 (routers/dr.py, core/dr_engine.py)
- DR 시나리오 등록/관리 (SERVER_FAILURE | SITE_FAILURE | DATA_CORRUPTION)
- 복구 테스트 자동화 (SSH 기반 단계별 실행 + 헬스체크)
- 백업 무결성 검증 (SSH → SHA-256 해시 검증)
- RTO/RPO 목표 대비 실적 대시보드
- Failover 실행 API (ADMIN 전용)
### 네트워크 장비 관리 (routers/network_devices.py, core/network_scanner.py)
- 스위치/라우터/방화벽/L4 장비 인벤토리 (CRUD)
- 벤더별 SSH 설정 백업 (Cisco IOS / Huawei VRP / Junos / Linux)
- 이전 백업과 unified diff 변경 감지
- 위험 명령어 차단 (write erase, factory-reset 등)
- 토폴로지 조회 API
### CSAP 공공기관 보안 자동 점검 (routers/compliance.py 확장, core/csap_checker.py)
- CSAP/ISMS-P 기반 25개 항목 자동 점검
- 기술적/운영 보안 자동 검증 (SSH, DB 직접 확인)
- 수동 항목 증적 업로드
- Excel/HTML 보고서 자동 생성
- 기관별 준수율 대시보드 (A~D 등급)
### DB 모델 추가 (models.py)
- DRScenario, DRTest
- NetworkDevice, NetworkConfigBackup
- CSAPCheckResult
### 하네스 확장
- 에이전트: dr-coordinator, network-guardian, csap-auditor
- 스킬: dr-automation, network-devices, csap-compliance
- guardia-orchestrator description에 DR/네트워크/CSAP 트리거 추가
### 매뉴얼
- 39_DR_네트워크장비_CSAP_운영가이드.md 신규 작성
- 16_API_명세서.md v2.1.0 업데이트 (617개 라우트, 섹션 21~23 추가)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Spring Security + JWT 인증 (8시간 토큰)
- AdminUser / Recruit 엔터티 추가
- AdminController: 로그인, 대시보드, 뉴스/문의/채용 CRUD
- React 어드민 SPA: /admin/* 라우트 (Header/Footer 없음)
- 로그인, 대시보드, 뉴스 관리, 문의 관리, 채용공고 관리, 설정
- Jenkinsfile: 서버 환경 맞춤 CI/CD 파이프라인
- .gitignore 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[DOCX 3종 생성 (UTF-8, 편집 가능)]
- 01_소프트웨어_저작권_등록_신청서.docx (37KB)
한국저작권위원회 제출용 / 맑은 고딕 / 색상 섹션
- 02_소프트웨어사업자_신고서.docx (37KB)
과학기술정보통신부/KOSA 제출용
- 03_조달청_나라장터_물품_등록_신청서.docx (38KB)
공공기관 납품용 나라장터 등록
[generate_docx.py 특징]
- python-docx 기반 (한글 UTF-8 완전 지원)
- 검정 박스 없음 (맑은 고딕 직접 적용)
- 편집 가능: Word / 한글(HWP) / LibreOffice
- 섹션별 색상 배너 (파란/빨간/주황 테마)
- 서명란, 첨부서류, 수수료 안내 포함
[certification/source/ 저작권 등록용 소스코드]
- 01_core_ssh_agentless.py (450줄) - 에이전트리스 SSH 핵심
- 02_core_license_engine.py (455줄) - AES-256-GCM 라이선스
- 03_router_sr_management.py(501줄) - SR 관리 API
- 04_core_ai_classifier.py (90줄) - AI 티켓 분류
- 05_frontend_dashboard.js (200줄) - 대시보드 프론트
- README.md - 제출 안내 및 독창성 설명
- 모든 파일: 영업비밀(암호화키) 마스킹 처리
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
certification/generate_pdf.py: reportlab 기반 한글 PDF 생성기
- 맑은고딕(malgun.ttf) 자동 탐색 + 등록
- 7개 섹션 구성:
1. 신청자 정보 (회사명, 대표자, 사업자번호 등)
2. 소프트웨어 정보 (제품명, 버전, 등급, 분류)
3. 제품 개요 (설명문, 핵심기능 5개, 지원환경)
4. 시험 요청 항목 (ISO/IEC 25010 8개 품질특성)
5. 제출 서류 목록 (11개 필수/선택)
6. 예상 수수료 (650만원)
7. 서약 및 서명란
산출물: GS인증_신청서_GUARDiA_ITSM_v2.0.pdf (118.8 KB)
- A4 용지, 2페이지
- 네이비 테마 디자인
- 페이지 번호 + 회사명 푸터
- 바로 출력/제출 가능
실행: cd certification && python3 generate_pdf.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[신청서 및 서류 (certification/)]
02_프로그램등록/GS인증_신청서.md
- 신청자/제품 정보 모두 기입
- 시험 요청 항목 8개 품질특성 전체 선택
- 제출 서류 체크리스트 + 수수료 안내
04_기술문서/제품_기능_명세서.md
- 기능 코드별 전체 목록 (SR-001~008, INC-001~005, DEP-001~006 등)
- 시스템 아키텍처 개요
- 성능 기준 및 측정값
- 제한 사항 명시
04_기술문서/사용자_매뉴얼_개요.md
- 설치/최초로그인/주요화면/관리자기능/제거 설명
- GS인증 사용성 요구사항 충족
04_기술문서/보안_설계서.md
- 인증/인가 설계 (JWT+RBAC+MFA)
- 암호화 설계 (AES-256-GCM, bcrypt, TLS)
- 보안 정책 (금지사항, 입력값검증, Rate Limiting)
- 개인정보보호법 준수 항목
01_사전준비/제품개요서.md
- 저작권 등록용 제품 설명
- 기술 특허, 수상 현황
06_제출서류/저작권등록_신청서_가이드.md
- 한국저작권위원회 제출 항목 입력값 완성
- 저작물 설명서 (제출 그대로 사용 가능)
07_심사대응/예상_질문_답변.md
- TTA 심사관 예상 9개 질문 + 완성된 답변
- 기능적합성/보안성/사용성/이식성/신뢰성별
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[필수-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>
[Claude Code Desktop 자동 설치 환경]
- setup/CLAUDE.md: 트리거 키워드 + 설치 패키지 설명
- setup/.claude/skills/guardia-install/SKILL.md: 6단계 설치 오케스트레이터
Phase 0: 의도 파악 → Phase 1: OS 감지 → Phase 2: 사전 확인
Phase 3: 설치 실행 → Phase 4: 라이선스 발급 → Phase 5: 검증 → Phase 6: 완료보고
[통합 자동 설치 스크립트]
- setup/install_auto.sh: Linux 통합 (OS 자동 감지 ubuntu/centos/rhel)
- --license trial30|trial7|<key> 파라미터
- 설치 완료 후 GUARDiA 자동 실행 + 브라우저 자동 열기
- --test 검증 모드
- setup/install_auto.ps1: Windows 통합 (ASCII 전용, PS 5.1 호환)
- 설치 후 NSSM 서비스 자동 시작 + 브라우저 자동 열기
- -Test 파라미터로 검증 전용 실행
[라이선스 엔진 개선]
- core/license.py: generate_trial_key(days=None) 파라미터 추가
- TRIAL_DURATION_DAYS = TRIAL_DURATION_DAYS 환경변수로 조정 가능
- routers/license.py: TrialRequest.days 필드 + 30일 체험판 지원
POST /api/license/trial {"days": 30} 로 30일 발급
사용자 경험:
1. setup/ 폴더를 새 PC에 복사
2. Claude Code Desktop 열고 해당 폴더 open
3. "GUARDiA 시스템 1달 사용자로 설치해 줘" 입력
4. 자동으로 OS 감지 → 설치 → 30일 라이선스 → 브라우저 열림
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[start.sh (Linux/Mac)]
- mvnw(Wrapper) 우선 사용 → 시스템 Maven → 자동 설치 순서
- Maven 없으면: apt/dnf/yum 패키지 관리자 → 수동 tar.gz 설치
- 모드: dev (핫리로드) | prod (빌드+실행) | build (빌드만) | spring-only
[start.ps1 (Windows)]
- mvnw.cmd → 시스템 mvn → Chocolatey → 수동 zip 설치
- Start-Job으로 Spring Boot 백그라운드 실행 + npm run dev 병렬
[.mvn/wrapper/maven-wrapper.properties]
- Maven 3.9.6 Wrapper 설정 (첫 실행 시 자동 다운로드)
[setup_ubuntu.sh]
- INSTALL_MAVEN=true/false 옵션 추가 (기본 true)
- 이미 설치된 경우 건너뜀
사용법:
bash workspace/zioinfo-web/start.sh dev # 개발
bash workspace/zioinfo-web/start.sh prod # 운영
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>
[DB 선택 대화형 프롬프트]
- setup/lib/db_select.sh: 설치 시 SQLite/PostgreSQL/PostgreSQL+pgvector 선택
- DB_TYPE 환경변수로 무인 설치 지원
- pgvector 자동 빌드/설치 (소스 빌드 폴백 포함)
- .env DATABASE_URL 자동 기록
[Vector DB]
- docker-compose.yml: postgres를 pgvector/pgvector:pg15 이미지로 교체
- Qdrant: docker profile=vector 로 선택적 활성화
- docs/vector_db_guide.md: pgvector/Qdrant 사용법 + 시나리오
[Gitea 온프레미스 Git 서버]
- docker-compose.yml: gitea/gitea:1.21-rootless 서비스 추가
- setup/lib/gitea_setup.sh: 공통 설치/초기화 함수
- setup/gitea_init.sh: 독립 실행형 초기화 스크립트
- 관리자 계정 생성
- guardia 조직 + GUARDiA 저장소 생성
- main 브랜치 보호 (PR + 리뷰 1명 필수)
- develop 브랜치 생성
- 개발자 계정 (engineer1/2, pm1, admin) + feature/이름/init 브랜치 자동 생성
- 현재 소스 자동 push
[브랜치 전략]
main : 보호 브랜치, PR 필수, 리뷰 1명 필수
develop : 통합 브랜치, force-push 금지
feature/이름/기능: 개인 개발 브랜치
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 한글 제거 -> ASCII 전용 (PS5.1은 BOM없는 UTF-8을 CP949로 읽어 파싱 오류 발생)
- ?. null-conditional 연산자 제거 -> 전통적 if/else로 교체
- 줄 연속 백틱 제거 -> 단일 라인으로 변경
- psql 단일인용부호 이슈 -> [char]39 + tmpSql 파일 방식으로 우회
- Path 환경변수 연결 -> + 연산자 방식으로 변경
- 구문 오류 0개 확인 완료 (ParseFile 검증)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[download_packages.sh — 인터넷 서버에서 실행]
- OS별 패키지 다운로드 (ubuntu .deb / centos .rpm)
- pip wheel 전체 다운로드 (-r requirements.txt)
- Tomcat 9 tar.gz, Ollama 바이너리, Chart.js 다운로드
- Ollama 모델(llama3.1:8b, codellama:7b) 압축 패키지
- Docker 이미지 tar (docker_package.sh 연동)
- setup/offline/ 에 계층적으로 저장, README.md 자동 생성
[설치 스크립트 오프라인 지원 강화]
- setup_ubuntu.sh: OFFLINE_PKG_DIR 환경변수 지원 (.deb 로컬 설치)
- setup_centos.sh: OFFLINE_PKG_DIR 환경변수 지원 (.rpm 로컬 설치)
- 기존 TOMCAT_MIRROR=file://..., OLLAMA_INSTALL=offline 유지
[Chart.js 오프라인 폴백]
- index.html: CDN 실패 시 /static/chart.umd.min.js 로컬 폴백
- db_init.py: 오프라인 패키지에서 chart.umd.min.js 자동 복사
폐쇄망 설치 절차:
인터넷 서버: bash setup/download_packages.sh all
USB 복사: tar -czf offline.tar.gz setup/offline/
폐쇄망 설치: OFFLINE_PKG_DIR=./offline/ubuntu bash setup/setup_ubuntu.sh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[파일 목록]
- Dockerfile: GUARDiA ITSM Python 3.11-slim 이미지
- 비루트(guardia) 계정 실행
- 헬스체크 내장
- docker-compose.yml: 개발/테스트 풀스택
- guardia-itsm, nginx, postgres:15, redis:7, ollama/ollama, tomcat:9
- Ollama 모델은 볼륨 마운트 (이미지 외부)
- docker-compose.prod.yml: 운영 환경 오버라이드
- 외부 포트 차단, 호스트 경로 마운트
- docker-compose.gpu.yml: NVIDIA GPU 오버라이드
- docker-start.sh: dev|prod|gpu 모드 빠른 시작
- .dockerignore: 보안 파일(.env, *.db) 제외
- docker/nginx/guardia.conf: 리버스 프록시 설정
- docker/tomcat/tomcat-users.xml: opsagent 계정 설정
[폐쇄망 패키지]
- setup/docker_package.sh: 인터넷 서버에서 모든 이미지를 tar.gz로 패키징
- setup/docker_load.sh: 폐쇄망에서 tar.gz 로드 + 즉시 시작 옵션
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[Ollama — 온프레미스 sLLM 서버]
- setup_ubuntu/centos/rhel/windows: Ollama 설치 단계 추가
- 환경변수 OLLAMA_INSTALL=online|offline|skip 지원 (망분리 환경)
- 환경변수 OLLAMA_MODELS 으로 초기 모델 설정 (기본: llama3.1:8b)
- 오프라인: OLLAMA_BIN_PATH로 바이너리 직접 지정
- SELinux 포트 허용 (RHEL), 방화벽 내부 전용 차단 (8080/11434)
[보안·운영 도구]
- Fail2ban: SSH 무차별 대입 방지 (5회 실패 시 1시간 차단)
- Chrony/NTP: 감사 로그 타임스탬프 정합성 확보
- JDK 8/11: 레거시 WAS(Tomcat 7/8) 지원을 위한 다중 JDK
- Logrotate: catalina.out 14일, *.log 8주 보관
[--test 검증 강화]
- Ollama 서비스 + API + 모델 존재 여부 검사
- Fail2ban/Chrony 실행 상태 검사
[단계 수 업데이트]
- Ubuntu: 10→13단계, CentOS: 10→13단계, RHEL: 11→13단계, Windows: 10단계
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- setup_ubuntu.sh: OpenJDK 17 + Tomcat 9 단계 추가 (10단계로 확장)
- setup_centos.sh: OpenJDK 17 + Tomcat 9 단계 추가 (10단계)
- setup_rhel.sh: OpenJDK 17 + Tomcat 9 + SELinux 포트 허용 (11단계)
- setup_windows.ps1: openjdk choco 설치 + Tomcat 9 NSSM 서비스 (10단계)
- setup_target_server.sh: 신규 — 관리 대상 WAS 서버 표준 구성
(OpenJDK 17 + Tomcat 9 + opsagent OS/Tomcat 계정 + SSH 보안 + GUARDiA 연결정보 출력)
- --test 검증: Java/Tomcat 항목 추가
- 공통: AJP 비활성화, shutdown 포트 -1 보안설정, opsagent Manager 계정 자동 추가
- 공통: TOMCAT_MIRROR 환경변수로 오프라인/내부망 설치 지원
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[설치 스크립트 수정사항]
- PYTHONIOENCODING=utf-8 systemd/NSSM 서비스 환경변수 추가 (Windows cp949 오류 예방)
- db_init.py 헬퍼 추가: 스키마 불일치 자동 감지 → 백업 → 재초기화
- 포트 8001 충돌 감지 및 기존 프로세스 자동 종료 로직 추가
- --test 검증 항목 강화: HTTP 응답 + 로그인 API + UTF-8 인코딩 포함
- setup_ubuntu/centos/rhel: PYTHONUNBUFFERED=1 추가
[workspace 자동분석 워크플로우]
- workspace/ 디렉토리 생성 (소스코드 투입 위치)
- .claude/skills/workspace-analyzer/SKILL.md 스킬 생성
Phase 0~6: 탐색→스택탐지→심층분석→리포트→개발환경가이드→하네스생성→CLAUDE.md
- CLAUDE.md에 workspace 워크플로우 안내 등록
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- core/chatbot.py: 세션 기반 대화 엔진 (컨텍스트 기억, Ollama sLLM 연동 + 폴백)
- #AI챗봇 전용 채널: @bot 없이 자연어 자유 대화
- 타이핑 인디케이터 (봇 응답 생성 중 애니메이션)
- 인텐트 분류: 재기동/배포/로그/DB/SSL/디스크/크론/보안
- Ollama(sLLM) 우선, 미설치 시 지식베이스 자동 폴백
- 대화 초기화 명령 지원
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>