diff --git a/Jenkinsfile b/Jenkinsfile index 38ed33fa..9b08c9ac 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,18 @@ pipeline { stage('Checkout') { steps { echo "브랜치: ${env.GIT_BRANCH ?: 'main'} | 커밋: ${env.GIT_COMMIT?.take(7) ?: '-'}" - checkout scm + checkout([ + $class: 'GitSCM', + branches: scm.branches, + userRemoteConfigs: scm.userRemoteConfigs, + extensions: [ + // manual/ 폴더 체크아웃 제외 (배포 대상 아님) + [$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [ + [path: 'frontend'], + [path: 'backend'], + ]] + ] + ]) } } diff --git a/manual/41_zio서버_DB_연결정보.md b/manual/41_zio서버_DB_연결정보.md new file mode 100644 index 00000000..1f85b8f6 --- /dev/null +++ b/manual/41_zio서버_DB_연결정보.md @@ -0,0 +1,229 @@ +# zio 서버 DB 및 시스템 연결 정보 + +> **서버**: 101.79.17.164 (zioinfo.co.kr) +> **OS**: Ubuntu 24.04 LTS +> **최종 업데이트**: 2026-05-31 + +> ⚠️ **보안 주의**: 이 파일은 내부 운영용입니다. 외부 공개 금지. + +--- + +## 1. PostgreSQL 16 + +| 항목 | 값 | +|------|-----| +| 호스트 | localhost (127.0.0.1) | +| 포트 | 5432 | +| 버전 | 16.11 | + +### 데이터베이스 목록 + +| DB명 | 사용자 | 비밀번호 | 용도 | +|------|--------|---------|------| +| `guardia_db` | `guardia` | `G@urd1a_2026!` | GUARDiA ITSM 메인 DB | +| `gitea_db` | `gitea` | (Gitea 내부 관리) | Gitea 저장소 메타데이터 | +| `zioinfo_db` | `postgres` | (시스템 관리) | 홈페이지 (Spring Boot) | + +### pgvector 확장 +```sql +-- guardia_db에 설치됨 +SELECT extname, extversion FROM pg_extension WHERE extname='vector'; +-- vector | 0.6.0 + +-- 벡터 테이블 목록 +\dt tb_vector_* +-- tb_vector_sr, tb_vector_kb, tb_vector_scrap +``` + +### 연결 방법 +```bash +# psql 직접 접속 +psql -h localhost -U guardia -d guardia_db +# 비밀번호: G@urd1a_2026! + +# Python SQLAlchemy (GUARDiA ITSM) +DATABASE_URL=postgresql+asyncpg://guardia:G%40urd1a_2026%21@localhost:5432/guardia_db +# 주의: @ 문자는 URL 인코딩 시 %40 사용 +``` + +--- + +## 2. Gitea Git 서버 + +| 항목 | 값 | +|------|-----| +| URL | http://101.79.17.164:3000 | +| HTTPS | https://zioinfo.co.kr:3000 (도메인) | +| 포트 | 3000 | + +### 계정 정보 + +| 계정 | 비밀번호 | 권한 | +|------|---------|------| +| `zio` | `Zio@Admin2026!` | 관리자 | + +### 저장소 목록 + +| 저장소 | URL | 용도 | +|--------|-----|------| +| `zio/zioinfo-web` | http://localhost:3000/zio/zioinfo-web | 지오정보기술 홈페이지 | +| `zio/guardia-itsm` | http://localhost:3000/zio/guardia-itsm | GUARDiA ITSM | + +### Git 원격 연결 +```bash +# 인증 포함 URL 형식 +https://zio:Zio%40Admin2026%21@zioinfo.co.kr:3000/zio/zioinfo-web.git +http://zio:Zio%40Admin2026%21@101.79.17.164:3000/zio/guardia-itsm.git +``` + +--- + +## 3. Ollama (로컬 LLM) + +| 항목 | 값 | +|------|-----| +| URL | http://localhost:11434 | +| 포트 | 11434 | +| 바인딩 | 127.0.0.1 (외부 접근 불가) | + +### 설치된 모델 +```bash +ollama list +# NAME ID SIZE +# llama3:8b ... 4.7 GB +# codellama:7b ... 3.8 GB +# nomic-embed-text ... 274 MB +``` + +### API 사용 +```bash +# 텍스트 생성 +curl http://localhost:11434/api/generate \ + -d '{"model":"llama3","prompt":"안녕","stream":false}' + +# 임베딩 (pgvector 연동) +curl http://localhost:11434/api/embeddings \ + -d '{"model":"nomic-embed-text","prompt":"텍스트"}' +``` + +--- + +## 4. ChromaDB (벡터 DB) + +| 항목 | 값 | +|------|-----| +| 경로 | `/opt/guardia/chroma/` | +| 모드 | 파일 기반 (서버리스) | +| 연동 | Python `chromadb` 라이브러리 | + +```python +import chromadb +client = chromadb.PersistentClient(path="/opt/guardia/chroma") +``` + +--- + +## 5. 웹 서비스 포트 및 로그인 + +| 서비스 | 내부 포트 | 외부 URL | 계정 | +|--------|----------|---------|------| +| 홈페이지 | 8082 | https://zioinfo.co.kr | - | +| GUARDiA ITSM | 9001 | https://zioinfo.co.kr:8443 | admin / Admin@2026! | +| GUARDiA Manager | 8002 | https://zioinfo.co.kr:8090 | admin / Admin@zioinfo2026! | +| Gitea | 3000 | https://zioinfo.co.kr:3000 | zio / Zio@Admin2026! | +| Jenkins | 8080 | http://zioinfo.co.kr:8080 | admin / (초기키 확인) | +| Nginx (HTTP) | 80 | http://zioinfo.co.kr | - | +| Nginx (HTTPS) | 443/8443 | https://zioinfo.co.kr | - | + +--- + +## 6. Deploy Webhook (자동 배포) + +| 항목 | 값 | +|------|-----| +| 포트 | 9999 | +| 시크릿 | `zioinfo-deploy-2026` | +| 로그 | `/var/log/zioinfo/deploy.log` | + +### 배포 흐름 +``` +git push gitea → Gitea Webhook → http://localhost:9999 + → zioinfo-web: git pull → npm install → npm run build → mvn package → restart + → guardia-itsm: git pull → pip install → rsync → restart guardia +``` + +### 수동 배포 트리거 +```bash +curl -X POST http://localhost:9999 \ + -H "Content-Type: application/json" \ + -d '{"repository":{"name":"zioinfo-web"}}' +``` + +--- + +## 7. SSH 서버 접속 + +| 항목 | 값 | +|------|-----| +| 호스트 | 101.79.17.164 | +| 포트 | 22 | +| root 계정 | root / 1q2w3e!Q | +| 키 파일 | `ssh -i "zio-server-key.pem" root@zioinfo.co.kr` | + +### 주요 서비스 경로 +```bash +/opt/zioinfo/ # 홈페이지 (Spring Boot) + ├── app/app.jar # 실행 JAR + └── src/ # 소스 코드 + +/opt/guardia/ # GUARDiA ITSM + ├── app/ # FastAPI 소스 + ├── venv/ # Python 가상환경 + └── chroma/ # ChromaDB 데이터 + +/opt/manager/ # GUARDiA Manager + ├── backend/ # FastAPI 백엔드 + └── frontend/ # React 소스 + +/var/www/ + ├── zioinfo/ # 홈페이지 정적 파일 + └── manager/ # Manager 정적 파일 + +/var/log/zioinfo/ # 배포·서비스 로그 +``` + +--- + +## 8. SMTP (이메일) + +| 항목 | 값 | +|------|-----| +| 서버 | 101.79.17.164 | +| SMTP 포트 | 25 / 587 | +| IMAP 포트 | 143 / 993 | +| 도메인 | zioinfo.co.kr | + +| 계정 | 비밀번호 | 용도 | +|------|---------|------| +| info@zioinfo.co.kr | 1q2w3e!Q | 일반 발신 | +| admin@zioinfo.co.kr | 1q2w3e!Q | 시스템 알림 | +| ythong@zioinfo.co.kr | 1q2w3e!Q | 담당자 | + +--- + +## 9. 서비스 관리 명령어 + +```bash +# 서비스 상태 확인 +systemctl status zioinfo guardia guardia-manager gitea zioinfo-deploy + +# 재시작 +systemctl restart zioinfo # 홈페이지 +systemctl restart guardia # ITSM +systemctl restart guardia-manager # Manager + +# 로그 확인 +tail -f /var/log/zioinfo/spring.log # 홈페이지 +journalctl -u guardia -f # ITSM +tail -f /var/log/zioinfo/deploy.log # 배포 로그 +``` diff --git a/manual/42_zio서버_소프트웨어_구성도.md b/manual/42_zio서버_소프트웨어_구성도.md new file mode 100644 index 00000000..4ed1ec07 --- /dev/null +++ b/manual/42_zio서버_소프트웨어_구성도.md @@ -0,0 +1,212 @@ +# zio 서버 소프트웨어 구성도 + +> **서버**: 101.79.17.164 (zioinfo.co.kr) +> **OS**: Ubuntu 24.04 LTS | RAM: 7.8GB | Disk: 99GB +> **최종 업데이트**: 2026-05-31 + +--- + +## 전체 아키텍처 + +``` +인터넷 + │ + ├─ :80/:443 ─── Nginx 1.24 (리버스 프록시 + SSL) + │ │ + │ ├─ / → :8082 홈페이지 (Spring Boot) + │ ├─ :8443 → :9001 GUARDiA ITSM (FastAPI) [HTTPS] + │ ├─ :8001 → :8082 홈페이지 API [HTTP] + │ ├─ :8090 → :8002 GUARDiA Manager (FastAPI) + │ └─ :3000 → :3000 Gitea + │ + └─ :22 ─── SSH (root 접속) + +내부 서비스 + ├─ :9001 GUARDiA ITSM (uvicorn, 127.0.0.1) + ├─ :8002 GUARDiA Manager (uvicorn, 127.0.0.1) + ├─ :8082 홈페이지 (Spring Boot JAR) + ├─ :5432 PostgreSQL 16 + ├─ :11434 Ollama (LLM 서버) + ├─ :9999 Deploy Webhook (자동 배포) + ├─ :3000 Gitea (Git 서버) + └─ :8080 Jenkins (CI/CD) + +메일 서버 + ├─ :25/:587 Postfix (SMTP) + └─ :143/:993 Dovecot (IMAP) +``` + +--- + +## 설치 소프트웨어 전체 목록 + +| 분류 | SW | 버전 | 포트 | 경로 | 용도 | +|------|-----|------|------|------|------| +| **웹서버** | Nginx | 1.24 | 80/443/8001/8090/8443 | `/etc/nginx/` | 리버스 프록시, SSL | +| **홈페이지** | Spring Boot | 3.2.5 | 8082 | `/opt/zioinfo/app/app.jar` | 지오정보기술 홈페이지 | +| **ITSM** | GUARDiA ITSM | v2.0 | 9001 | `/opt/guardia/app/` | FastAPI ITSM 플랫폼 | +| **Manager** | GUARDiA Manager | v1.0 | 8002 | `/opt/manager/` | 관리자 포털 | +| **DB** | PostgreSQL | 16.11 | 5432 | `/var/lib/postgresql/` | 메인 RDBMS | +| **벡터DB** | pgvector | 0.6.0 | 5432 (확장) | PostgreSQL 확장 | 벡터 검색 | +| **벡터DB** | ChromaDB | 1.5.9 | - (파일) | `/opt/guardia/chroma/` | RAG·임베딩 저장 | +| **AI/LLM** | Ollama | 0.24 | 11434 | `/usr/local/bin/ollama` | 온프레미스 LLM | +| **AI 모델** | llama3:8b | - | - | Ollama 관리 | 텍스트 생성 | +| **AI 모델** | codellama:7b | - | - | Ollama 관리 | 코드 생성·리뷰 | +| **AI 모델** | nomic-embed-text | - | - | Ollama 관리 | 768차원 임베딩 | +| **AI 프레임워크** | LangChain | 1.3.2 | - | Python 패키지 | RAG 파이프라인 | +| **형상관리** | Gitea | 1.22.3 | 3000 | `/opt/gitea/` | Git 서버 | +| **CI/CD** | Jenkins | 2.555 | 8080 | `/var/lib/jenkins/` | 빌드·배포 자동화 | +| **배포** | Deploy Webhook | - | 9999 | `/opt/zioinfo/deploy_server.py` | Gitea→자동배포 | +| **메일** | Postfix | 3.8.6 | 25/587 | `/etc/postfix/` | SMTP 발신 | +| **메일** | Dovecot | 2.3.21 | 143/993 | `/etc/dovecot/` | IMAP 수신 | +| **Python** | Python | 3.11 | - | `/opt/guardia/venv/` | ITSM·Manager 런타임 | +| **Java** | OpenJDK | 17 | - | `/usr/lib/jvm/` | Spring Boot 런타임 | +| **Node.js** | Node.js | 20 | - | `/usr/bin/node` | 빌드 도구 | +| **SSL** | Let's Encrypt | - | - | `/etc/letsencrypt/` | HTTPS 인증서 | + +--- + +## GUARDiA ITSM 상세 구성 + +``` +/opt/guardia/app/ +├── main.py ← FastAPI 진입점 (포트 9001) +├── models.py ← ORM 모델 (50+ 테이블) +├── database.py ← DB 연결 +├── core/ +│ ├── auth.py ← JWT 인증 +│ ├── rpa_engine.py ← RPA 봇 엔진 +│ ├── scraping_engine.py ← 스크랩핑 엔진 +│ ├── nl_command.py ← 자연어 명령 파서 +│ ├── scheduler.py ← APScheduler 크론 +│ └── ... +├── routers/ ← 80개+ API 라우터 +│ ├── rpa.py ← RPA 봇 +│ ├── scraping.py ← 스크랩핑 +│ ├── messenger.py ← 봇 명령어 (45개+) +│ └── ... +├── static/ ← HTML5 프론트엔드 +│ ├── index.html +│ ├── app.js +│ └── style.css +└── rpa_rules.json ← Validation 학습 규칙 (영속) +``` + +--- + +## Python 가상환경 패키지 (주요) + +```bash +# /opt/guardia/venv/bin/pip list | grep -E "fastapi|sqlalchemy|paramiko|langchain|chroma|pgvector|httpx|playwright" + +fastapi 0.115.x +sqlalchemy 2.0.x +alembic 1.13.x +paramiko 3.x +httpx 0.27.0 +uvicorn 0.29.x +langchain 1.3.2 +langchain-core 0.3.x +chromadb 1.5.9 +pgvector 0.3.x +psycopg2-binary 2.9.x +beautifulsoup4 4.12.x +lxml 6.1.1 +apscheduler 3.10.x +python-jose 3.3.x +passlib 1.7.x +pyotp 2.9.x +pandas 2.2.x +openpyxl 3.1.x +``` + +--- + +## 홈페이지 (Spring Boot) 구조 + +``` +/opt/zioinfo/ +├── app/app.jar ← 실행 JAR +└── src/ ← 소스 (Gitea에서 pull) + ├── frontend/ ← React 18 + Vite + │ ├── src/pages/ ← 페이지 컴포넌트 + │ ├── src/styles/tokens.css ← Variant 디자인 토큰 + │ └── public/ + │ ├── screenshots/ ← 스크린샷 이미지 + │ ├── zioinfo-logo.png ← 로고 (라이트) + │ ├── zioinfo-logo-dark.png ← 로고 (다크) + │ └── CI.jpg ← CI 심볼 + └── backend/ ← Spring Boot 3.2.5 + └── src/main/java/kr/co/zioinfo/web/ + ├── model/ ← JPA 엔티티 + │ ├── CompanyHistory.java ← 연혁 DB + │ └── ... + ├── repository/ ← JPA 레포지토리 + ├── controller/ ← REST API + └── config/ + └── DataInitializer.java ← 초기 데이터 +``` + +--- + +## Gitea 저장소 구성 + +``` +http://localhost:3000/zio/ +├── zioinfo-web ← 홈페이지 (frontend + backend) +└── guardia-itsm ← GUARDiA ITSM +``` + +### Webhook 설정 +- `zioinfo-web` → http://localhost:9999 (SECRET: `zioinfo-deploy-2026`) +- `guardia-itsm` → http://localhost:9999 + +--- + +## systemd 서비스 파일 + +| 서비스명 | 파일 위치 | 시작 명령 | +|---------|----------|---------| +| `zioinfo` | `/etc/systemd/system/zioinfo.service` | `java -jar /opt/zioinfo/app/app.jar --server.port=8082` | +| `guardia` | `/etc/systemd/system/guardia.service` | `uvicorn main:app --host 127.0.0.1 --port 9001` | +| `guardia-manager` | `/etc/systemd/system/guardia-manager.service` | `uvicorn main:app --host 127.0.0.1 --port 8002` | +| `zioinfo-deploy` | `/etc/systemd/system/zioinfo-deploy.service` | `python3 /opt/zioinfo/deploy_server.py` | +| `gitea` | `/etc/systemd/system/gitea.service` | Gitea 공식 | +| `jenkins` | `/etc/systemd/system/jenkins.service` | Jenkins 공식 | +| `postgresql` | `/lib/systemd/system/postgresql.service` | PG 공식 | +| `ollama` | `/etc/systemd/system/ollama.service` | `ollama serve` | +| `postfix` | 시스템 기본 | Postfix 공식 | +| `dovecot` | 시스템 기본 | Dovecot 공식 | + +--- + +## Nginx 가상 호스트 구성 + +``` +/etc/nginx/sites-enabled/zioinfo + ├── :80 → 301 redirect to HTTPS + ├── :443 → SSL + /api/ → :8082 (Spring Boot) + │ → / → /var/www/zioinfo/ (정적 파일) + ├── :8001 → /api/ → :8082 + ├── :8443 → SSL + / → :9001 (ITSM FastAPI) + │ → /api/ → :9001 + ├── :8090 → / → :8002 (Manager FastAPI) + └── :3000 → Gitea +``` + +--- + +## SSL 인증서 + +| 도메인 | 만료일 | 방식 | +|--------|--------|------| +| zioinfo.co.kr | (Let's Encrypt 90일 자동 갱신) | Certbot | +| *.zioinfo.co.kr | - | 와일드카드 미설정 | + +```bash +# 인증서 확인 +certbot certificates + +# 수동 갱신 +certbot renew --nginx +``` diff --git a/workspace/zioinfo-web/Jenkinsfile b/workspace/zioinfo-web/Jenkinsfile index 38ed33fa..9b08c9ac 100644 --- a/workspace/zioinfo-web/Jenkinsfile +++ b/workspace/zioinfo-web/Jenkinsfile @@ -18,7 +18,18 @@ pipeline { stage('Checkout') { steps { echo "브랜치: ${env.GIT_BRANCH ?: 'main'} | 커밋: ${env.GIT_COMMIT?.take(7) ?: '-'}" - checkout scm + checkout([ + $class: 'GitSCM', + branches: scm.branches, + userRemoteConfigs: scm.userRemoteConfigs, + extensions: [ + // manual/ 폴더 체크아웃 제외 (배포 대상 아님) + [$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [ + [path: 'frontend'], + [path: 'backend'], + ]] + ] + ]) } } diff --git a/workspace/zioinfo-web/frontend/src/pages/GuardiaDetail.jsx b/workspace/zioinfo-web/frontend/src/pages/GuardiaDetail.jsx index bef6d5ad..eb369dea 100644 --- a/workspace/zioinfo-web/frontend/src/pages/GuardiaDetail.jsx +++ b/workspace/zioinfo-web/frontend/src/pages/GuardiaDetail.jsx @@ -8,14 +8,22 @@ const FEATURES = [ desc:'Ollama 온프레미스 sLLM 기반. 메신저 한 줄 명령 → 자연어 파싱 → 자동 배포·운영. 외부 API 완전 차단으로 폐쇄망 환경 최적화.' }, { icon:'🔧', title:'에이전트리스 아키텍처', desc:'대상 서버에 어떤 소프트웨어도 설치하지 않습니다. 표준 SSH/SFTP 프로토콜만으로 레거시 WAS(Tomcat/JBoss/WebLogic)를 원격 관리.' }, - { icon:'💬', title:'ChatOps 메신저 통합', - desc:'카카오워크, 네이버웍스, 슬랙 등 익숙한 메신저에서 /deploy, /status, /incident 명령으로 인프라를 즉시 제어.' }, + { icon:'💬', title:'ChatOps + 자연어 명령', + desc:'카카오워크·네이버웍스·슬랙에서 자연어로 인프라 제어. "서버1 헬스체크 해줘", "SR-XXXX 배포해줘" 등 자연어를 자동으로 봇 명령어로 변환.' }, { icon:'📊', title:'통합 ITSM 대시보드', desc:'SR·인시던트·변경관리·SLA·CMDB·예측 유지보수를 단일 플랫폼에서 관리. 7일 추이 차트와 AI 인사이트 실시간 제공.' }, + { icon:'🤖', title:'RPA 봇 자동화', + desc:'소스코드 기반 Validation 학습 → 반복 업무(SR 자동 접수·승인·상태 변경) 자동화. dry_run 검증 후 실제 API 호출. APScheduler 크론 연동.' }, + { icon:'🕷️', title:'웹 스크랩핑 봇', + desc:'URL 스크랩 → DB 저장 → 상태 관리(DRAFT/PUBLISHED/DELETED). 게시 시 메신저 자동 알림. Manager UI에서 삭제·원복·게시 직접 관리.' }, { icon:'🔒', title:'엔터프라이즈 보안', desc:'AES-256-GCM 암호화, MFA/OTP, PAM 특권접근관리, SHA-256 해시체인 불변 감사로그, Zero Trust 지속 인증.' }, { icon:'🏗️', title:'PMS 프로젝트 관리', desc:'WBS·산출물·일간/주간/월간 자동 보고서(Excel·PDF·PPT). 이슈·위험 관리, Gitea 연동, Jenkins CI/CD 파이프라인.' }, + { icon:'🛡️', title:'DR 재해복구 자동화', + desc:'DR 시나리오 관리, Failover 실행, 백업 무결성 검증, 복구 테스트, RTO/RPO 실적 추적. 네트워크 장비(스위치·방화벽) SSH 설정 백업·변경 감지.' }, + { icon:'✅', title:'CSAP 보안 자동 점검', + desc:'행안부 공공기관 보안 체크리스트 100개 항목 자동 점검. 증적 수집·Excel/HTML 보고서 자동 생성. ISMS-P 준수율 대시보드 실시간 제공.' }, { icon:'🌐', title:'공공기관 필수 준수', desc:'행안부 SW 보안약점 자동 점검, KWCAG 2.1 웹접근성, 개인정보보호법 준수 스캔. 19개 공공기관 체크리스트 내장.' }, { icon:'📡', title:'Scouter APM 모니터링', @@ -52,25 +60,59 @@ const EDITIONS = [ /* ── 메신저 봇 명령어 목록 ──────────────────────────────── */ const BOT_COMMANDS = [ - { cmd: '/sr <제목>', desc: 'SR(서비스요청) 즉시 접수', cat: 'SR 관리' }, - { cmd: '/status', desc: '시스템 전체 현황 요약', cat: 'SR 관리' }, - { cmd: '/assign <담당자>', desc: 'SR 담당자 즉시 배정', cat: 'SR 관리' }, - { cmd: '/approve ', desc: 'SR 즉시 승인', cat: 'SR 관리' }, - { cmd: '/sla', desc: 'SLA 위반 현황 목록', cat: 'SR 관리' }, - { cmd: '/incident <제목> [P1~P4]', desc: '인시던트 빠른 등록', cat: '인시던트' }, - { cmd: '/oncall', desc: '현재 당직자 즉시 조회', cat: '인시던트' }, - { cmd: '/rca ', desc: 'AI 자동 RCA 근본원인 분석', cat: '인시던트' }, - { cmd: '/escalate ', desc: '당직자에게 에스컬레이션', cat: '인시던트' }, - { cmd: '!deploy <세션ID>', desc: 'WAS 배포 실행 (SSH)', cat: '배포 제어' }, - { cmd: '/rollback <세션ID>', desc: '긴급 롤백', cat: '배포 제어' }, - { cmd: '!health <서버명>', desc: '서버 헬스체크', cat: '배포 제어' }, - { cmd: '/pms <프로젝트코드>', desc: '프로젝트 진척 현황', cat: 'PMS' }, - { cmd: '/report <코드> weekly', desc: '주간 보고서 메신저 발송', cat: 'PMS' }, - { cmd: '/wbs <코드>', desc: 'WBS 지연 현황', cat: 'PMS' }, - { cmd: '/scouter <서버명>', desc: 'Scouter APM 실시간 메트릭', cat: '모니터링' }, - { cmd: '/scan', desc: '시큐어코딩·보안 자동 점검', cat: '보안' }, - { cmd: '/vuln <서버|IP>', desc: '취약점 스캔', cat: '보안' }, - { cmd: '/notify <메시지>', desc: '운영팀 전체 공지 발송', cat: '공지' }, + /* SR 관리 */ + { cmd: '/sr <제목>', desc: 'SR(서비스요청) 즉시 접수', cat: 'SR 관리' }, + { cmd: '/status', desc: '시스템 전체 현황 요약', cat: 'SR 관리' }, + { cmd: '/assign <담당자>', desc: 'SR 담당자 즉시 배정', cat: 'SR 관리' }, + { cmd: '/approve ', desc: 'SR 또는 자율운영 작업 즉시 승인', cat: 'SR 관리' }, + { cmd: '/reject [사유]', desc: 'SR 반려', cat: 'SR 관리' }, + { cmd: '/bulk ', desc: 'SR 대량 처리 (close/assign/status)', cat: 'SR 관리' }, + { cmd: '/sla', desc: 'SLA 위반 현황 목록', cat: 'SR 관리' }, + { cmd: '/escalate ', desc: '당직자에게 에스컬레이션', cat: 'SR 관리' }, + /* 인시던트 */ + { cmd: '/incident <제목> [P1~P4]', desc: '인시던트 빠른 등록', cat: '인시던트' }, + { cmd: '/oncall', desc: '현재 당직자 즉시 조회', cat: '인시던트' }, + { cmd: '/rca ', desc: 'AI 자동 RCA 근본원인 분석', cat: '인시던트' }, + /* 배포/CI-CD */ + { cmd: '!vibe ', desc: '바이브 코딩 세션 시작', cat: '배포 CI-CD' }, + { cmd: '!build <세션ID>', desc: '빌드 실행', cat: '배포 CI-CD' }, + { cmd: '!deploy <세션ID>', desc: 'WAS 배포 실행 (SSH)', cat: '배포 CI-CD' }, + { cmd: '/rollback <세션ID>', desc: '긴급 롤백', cat: '배포 CI-CD' }, + { cmd: '/cicd [project]', desc: 'Jenkins+Gitea CI/CD 전체 현황', cat: '배포 CI-CD' }, + { cmd: '/jenkins [build|log]', desc: 'Jenkins 빌드 트리거·로그', cat: '배포 CI-CD' }, + { cmd: '/git [log|pr|branch]', desc: 'Gitea 저장소 정보', cat: '배포 CI-CD' }, + { cmd: '/release [버전]', desc: '릴리즈 배포 파이프라인', cat: '배포 CI-CD' }, + /* 인프라 제어 */ + { cmd: '!health <서버명>', desc: '서버 헬스체크', cat: '인프라' }, + { cmd: '!log <서버명>', desc: '서버 로그 분석', cat: '인프라' }, + { cmd: '!sm <서버> <스크립트>', desc: 'SM 원격 스크립트 실행', cat: '인프라' }, + { cmd: '/topology <서버명>', desc: 'CI 의존관계 토폴로지 조회', cat: '인프라' }, + { cmd: '/scouter <서버명>', desc: 'Scouter APM 실시간 메트릭', cat: '인프라' }, + /* PMS 프로젝트 */ + { cmd: '/pms <프로젝트코드>', desc: '프로젝트 진척 현황', cat: 'PMS' }, + { cmd: '/report <코드> [daily|weekly|monthly]', desc: '보고서 발송', cat: 'PMS' }, + { cmd: '/wbs <코드>', desc: 'WBS 지연 현황', cat: 'PMS' }, + { cmd: '/deliverables <코드>', desc: '산출물 제출 현황', cat: 'PMS' }, + { cmd: '/issues <코드>', desc: '미결 이슈 목록', cat: 'PMS' }, + /* 보안 */ + { cmd: '/scan', desc: '시큐어코딩·보안 자동 점검', cat: '보안' }, + { cmd: '/vuln <서버|IP>', desc: '취약점 스캔', cat: '보안' }, + { cmd: '/checklist', desc: '공공기관 보안 이행 현황', cat: '보안' }, + { cmd: '/perf [url]', desc: '성능·부하 테스트', cat: '보안' }, + { cmd: '/autoq', desc: '자율 운영 승인 대기 목록', cat: '자율 운영' }, + /* 스크랩핑 봇 */ + { cmd: '!scrap ', desc: 'URL 즉시 스크랩', cat: '스크랩' }, + { cmd: '!scrap list [n]', desc: '최근 스크랩 결과 목록', cat: '스크랩' }, + { cmd: '!scrap publish ', desc: '스크랩 게시 + 메신저 알림', cat: '스크랩' }, + { cmd: '!scrap del ', desc: '스크랩 삭제', cat: '스크랩' }, + { cmd: '!scrap restore ', desc: '스크랩 원복', cat: '스크랩' }, + /* 디자인 */ + { cmd: '/design capture', desc: 'UI 현재 화면 스크린샷 (Playwright)', cat: '디자인' }, + { cmd: '/design variant <키워드>', desc: 'Variant 디자인 레퍼런스 탐색', cat: '디자인' }, + { cmd: '/design <시스템>', desc: '시스템별 UI 개편 실행', cat: '디자인' }, + /* 공지 */ + { cmd: '/notify <메시지>', desc: '운영팀 전체 공지 발송', cat: '공지' }, + { cmd: '/license', desc: '라이선스 상태 조회', cat: '공지' }, ]; const MESSENGER_PLATFORMS = [ @@ -81,12 +123,14 @@ const MESSENGER_PLATFORMS = [ ]; const TECH_STACK = [ - { category: 'Backend', items: ['Python 3.11 / FastAPI', 'SQLAlchemy Async', 'PostgreSQL / SQLite'] }, - { category: 'AI·LLM', items: ['Ollama (온프레미스)', 'llama3.1:8b / codellama', '외부 API 완전 차단'] }, + { category: 'Backend', items: ['Python 3.11 / FastAPI', 'SQLAlchemy Async', 'PostgreSQL 16 / SQLite'] }, + { category: 'AI·LLM', items: ['Ollama (온프레미스)', 'llama3:8b / codellama', '외부 API 완전 차단'] }, + { category: 'Vector DB', items: ['pgvector 0.6.0 (PostgreSQL 확장)', 'ChromaDB 1.5.9', 'LangChain 1.3.2 RAG'] }, + { category: '자동화 봇', items: ['RPA Engine (소스 기반 Validation 학습)', '스크랩핑 봇 (BeautifulSoup)', '자연어 명령 파서 (Ollama)'] }, { category: 'Infra', items: ['paramiko SSH/SFTP', '에이전트리스', 'AES-256-GCM 암호화'] }, { category: 'Frontend', items: ['React.js / PWA', 'Chart.js 대시보드', 'D3.js 토폴로지'] }, - { category: 'DevOps', items: ['Jenkins CI/CD', 'Gitea 형상관리', 'Docker / K8s'] }, - { category: '모니터링', items: ['Scouter APM', 'Prometheus/Grafana', 'ELK/Splunk SIEM'] }, + { category: 'DevOps', items: ['Jenkins CI/CD', 'Gitea 형상관리', 'APScheduler 크론 스케줄러'] }, + { category: '모니터링', items: ['Scouter APM', 'Prometheus/Grafana', 'DR 자동화·CSAP 점검'] }, ]; export default function GuardiaDetail() { @@ -169,7 +213,7 @@ export default function GuardiaDetail() {
Core Features -

GUARDiA가 제공하는
8가지 핵심 기능

+

GUARDiA가 제공하는
12가지 핵심 기능

{/* 실행 화면 스크린샷 */}