- 기능 카테고리: 5개 → 8개 (AI지능자동화/ITSM핵심/인프라클라우드/보안컴플라이언스/외부연동OCR/공공기관특화/SaaS멀티테넌트/DevOps)
- 총 기능 수: 36개 → 80개+ (카테고리당 6~10개)
- 하이라이트 카드: 12개 → 16개 (RAG검색/Text-to-SQL/OCR/멀티클라우드/CMDB자동발견 추가)
- 히어로 통계: 40+기능 → 754+엔드포인트 / 100+기능
- 섹션 제목: '36가지' → '100가지 이상 핵심 기능'
- 에디션 기능 업데이트: OCR·K8s·멀티클라우드·나라장터·SSO 반영
- 기술 스택: Upstage·AWS·K8s·Jira·Slack·ServiceNow 추가
- SEO: 새 키워드 반영 (RAG·Text-to-SQL·Upstage OCR·나라장터 등)
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>
- .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>
- 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>
- 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>
- 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>
[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>