ITSM (style.css):
- CSS tokens: indigo -> cyan(#00A0C8)+navy(#003366) palette
- Background: deeper navy (#001020, #001530, #001e3c)
- Sidebar active: cyan left bar + light bg (not full gradient)
- Buttons: solid cyan, rounded
- Logo icon: navy-to-cyan gradient
Manager (React):
- GNB: white header, navy branding, cyan badge
- Sidebar: white bg, cyan active border + light bg, navy text
- StatCard: cyan top bar, light blue icon box (screenshot9 pattern)
- AppLayout: navy page title
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- make_dark_logo.py: PIL 이미지 처리 (상단 검정 텍스트 + 하단 진한 파랑 텍스트 → 흰색)
- 로고 마크(파랑/회색 큐브)는 원본 유지
- Company.jsx: 다크 배경용 이미지를 zioinfo-logo-dark.png로 변경 (filter 제거)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[하네스]
- agents/scraping-bot.md: 스크랩 봇 에이전트
- skills/scraping-orchestrator/SKILL.md: E2E 워크플로우
[ITSM Backend]
- models.py: ScrapingTarget + ScrapingResult ORM + Pydantic 스키마
- core/scraping_engine.py: BeautifulSoup 기반 비동기 스크래퍼
- routers/scraping.py: 13개 API (타겟 CRUD + run + 게시/삭제/원복 + 통계)
- routers/messenger.py: !scrap 봇 명령어 6종 + scrap_published 이벤트
- main.py: scraping 라우터 등록
[Manager UI]
- ScrapingManager.tsx: 결과 목록/상세/게시/삭제/원복 + 타겟 관리
- Sidebar.tsx: 🕷️ 스크랩핑 봇 메뉴 추가
- App.tsx: /scraping 라우트 추가
[테스트 결과 - 전체 통과]
- T1 타겟 등록 OK
- T2 즉시 스크랩: zioinfo.co.kr → DRAFT
- T3 결과 목록 조회 OK
- T4 게시: DRAFT → PUBLISHED + 메신저 알림
- T5/T6/T7 두번째 스크랩 → 삭제 → 원복 OK
- T8 통계: draft:1, published:1, deleted:0
- T9 !scrap list 봇 명령어 OK
- T10 !scrap status 봇 명령어 OK
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[개선 내용]
1. 스키마 필터링: Out/Response/Data 제외 → Create/Update/In만 학습
- 140개 스키마 → 73개 입력 스키마, 1357개 → 672개 규칙 (노이즈 제거)
2. 라우터 자동 스캔: routers/*.py AST 파싱 → 엔드포인트-스키마 정확 매핑
3. 영속 저장: rpa_rules.json → 서비스 재시작 시 자동 복구
4. 서비스 시작 자동 학습: 규칙 파일 없을 때 즉시 학습
5. APScheduler 연동: schedule(cron) 설정 시 자동 크론 등록/해제
6. /api/rpa/status: 시스템 현황 요약 엔드포인트 추가
7. /api/rpa/validations/schemas: 스키마별 필드 수 조회
8. /api/rpa/tasks/{id}/toggle: 작업 활성/비활성 토글
[테스트 결과 - 전체 통과]
- T1 RPA 상태: 73 endpoints, 672 rules, 자동 학습 확인
- T4 dry_run 정상: validation_errors=[] ✓
- T5 오류 감지: 4개 오류 정확 (title 필수·enum 2개·requested_by 필수)
- T6 작업 등록: APScheduler 크론 등록 포함
- T7 등록 작업 실행: DRY_RUN_OK ✓
- T8 이력 조회: status 필터 정상
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[하네스]
- agents/validation-learner.md: 소스 AST 파싱 validation 학습 에이전트
- agents/rpa-bot.md: 학습 규칙 참조 자동화 실행 에이전트
- skills/rpa-orchestrator/SKILL.md: RPA E2E 워크플로우 스킬
- skills/rpa-validation/SKILL.md: 소스 기반 validation 학습 스킬
[구현]
- core/rpa_engine.py: ValidationLearner(AST 파서) + RPAValidator + RPAExecutor
- routers/rpa.py: 11개 API 엔드포인트
POST /api/rpa/validations/learn — models.py AST 파싱 → 1357개 규칙 학습
GET /api/rpa/validations — 학습 규칙 조회 (119 endpoints)
POST /api/rpa/tasks — RPA 작업 등록
POST /api/rpa/execute — 즉시 실행 (validation + API 호출)
GET /api/rpa/executions — 실행 이력
[테스트 결과]
- validation 학습: 140개 스키마 / 1357개 규칙 / 119개 엔드포인트
- WRONG_TYPE → enum 오류 감지 정확
- 필수 필드 누락 → validation 오류 상세 반환
- 실행 이력 조회 정상
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- .gitignore에 node_modules/ 추가
- git rm --cached로 3000+ node_modules 파일 추적 제거
- 이후 Gitea push 크기 정상화, 자동 배포 정상화
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CI.jpg 심볼 + 지오정보기술로고.png 메인 로고 실이미지 표시
- 디자인 콘셉트·색상 체계·경영철학 신규 내용으로 전면 개편
- Header.jsx: logo.png → 지오정보기술로고.png (fallback: ziologo.png)
- CEO 인사말: 아바타 플레이스홀더 → 사옥전경.png 원형 이미지 교체
- 빌드 결과물 반영 (backend/static 갱신)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
## 자동처리 엔진 (core/auto_processor.py)
위험도 평가 함수 assess_risk():
LOW/MEDIUM → 즉시 자동 처리
HIGH → 승인 요청 발송 후 대기
CRITICAL → 관리자 승인 필수
자동 처리 항목:
- SR 자동 분류·배정 (키워드/우선순위 추론)
- INQUIRY SR → KB 검색 후 자동 답변 (신뢰도 75% 이상)
- SLA 임박(30분) → 자동 에스컬레이션
- 이상 감지(HIGH+) → 인시던트 자동 생성
- 완료 SR → KB 아티클 초안 자동 생성
## 자율 운영 API (routers/autonomous.py)
GET /api/auto/status 오늘 자동처리 통계
POST /api/auto/run 사이클 즉시 실행 (ADMIN)
GET /api/auto/queue 승인 대기 작업 목록
POST /api/auto/queue 작업 등록 → 위험도 평가 후 분기
POST /api/auto/approve/{id} 승인 (HIGH=ENGINEER+, CRITICAL=ADMIN)
POST /api/auto/reject/{id} 거부
GET /api/auto/history 처리 이력
## 스케줄러 (core/scheduler.py)
5분마다 _auto_processing_cycle() 실행
- 신규 SR 자동 분류·배정
- INQUIRY SR KB 자동 답변
- SLA 에스컬레이션
- 완료 SR KB 초안 생성
## 봇 명령어 (routers/messenger.py)
/autoq 승인 대기 큐 조회
/approve <ID> [의견] 승인
/reject <ID> [사유] 거부
## DB 모델 (models.py)
AutoAction: 자동처리 이력 + 승인 큐
AutoActionStatus: AUTO_DONE|PENDING_APPROVAL|APPROVED|REJECTED|EXPIRED
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Playwright headless로 HTML 목업 → PNG 스크린샷 변환
11_app_home.png 홈 대시보드 (SR·서버 실시간 현황)
12_app_sr.png SR 서비스 요청 목록
13_app_chat.png AI 챗봇 (Ollama 연동)
14_app_dr.png DR 재해복구 RTO/RPO 모니터링
15_app_network.png 네트워크 장비 백업 현황
- GuardiaDetail.jsx: '모바일 앱' 탭 신규 추가
5장 목업 5열 그리드 (390x844 세로 비율)
Google Play / App Store 다운로드 배지
- GuardiaDetail.css: 모바일 스크린샷 5열 그리드 스타일
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>