import React, { useState } from 'react'; import { Link } from 'react-router-dom'; import './GuardiaDetail.css'; import { useSeoMeta } from '../hooks/useSeoMeta'; const FEATURES = [ { icon:'πŸ€–', title:'AI μ—μ΄μ „νŠΈ μžλ™ν™”', desc:'Ollama μ˜¨ν”„λ ˆλ―ΈμŠ€ sLLM 기반. λ©”μ‹ μ € ν•œ 쀄 λͺ…λ Ή β†’ μžμ—°μ–΄ νŒŒμ‹± β†’ μžλ™ 배포·운영. μ™ΈλΆ€ API μ™„μ „ μ°¨λ‹¨μœΌλ‘œ 폐쇄망 ν™˜κ²½ μ΅œμ ν™”.' }, { icon:'πŸ”§', title:'μ—μ΄μ „νŠΈλ¦¬μŠ€ μ•„ν‚€ν…μ²˜', desc:'λŒ€μƒ μ„œλ²„μ— μ–΄λ–€ μ†Œν”„νŠΈμ›¨μ–΄λ„ μ„€μΉ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν‘œμ€€ SSH/SFTP ν”„λ‘œν† μ½œλ§ŒμœΌλ‘œ λ ˆκ±°μ‹œ WAS(Tomcat/JBoss/WebLogic)λ₯Ό 원격 관리.' }, { icon:'πŸ’¬', title:'ChatOps λ©”μ‹ μ € 톡합', desc:'μΉ΄μΉ΄μ˜€μ›Œν¬, λ„€μ΄λ²„μ›μŠ€, μŠ¬λž™ λ“± μ΅μˆ™ν•œ λ©”μ‹ μ €μ—μ„œ /deploy, /status, /incident λͺ…λ ΉμœΌλ‘œ 인프라λ₯Ό μ¦‰μ‹œ μ œμ–΄.' }, { icon:'πŸ“Š', title:'톡합 ITSM λŒ€μ‹œλ³΄λ“œ', desc:'SRΒ·μΈμ‹œλ˜νŠΈΒ·λ³€κ²½κ΄€λ¦¬Β·SLAΒ·CMDB·예츑 μœ μ§€λ³΄μˆ˜λ₯Ό 단일 ν”Œλž«νΌμ—μ„œ 관리. 7일 좔이 μ°¨νŠΈμ™€ AI μΈμ‚¬μ΄νŠΈ μ‹€μ‹œκ°„ 제곡.' }, { 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:'곡곡기관 ν•„μˆ˜ μ€€μˆ˜', desc:'ν–‰μ•ˆλΆ€ SW λ³΄μ•ˆμ•½μ  μžλ™ 점검, KWCAG 2.1 μ›Ήμ ‘κ·Όμ„±, κ°œμΈμ •λ³΄λ³΄ν˜Έλ²• μ€€μˆ˜ μŠ€μΊ”. 19개 곡곡기관 체크리슀트 λ‚΄μž₯.' }, { icon:'πŸ“‘', title:'Scouter APM λͺ¨λ‹ˆν„°λ§', desc:'Java WAS(Tomcat/JBoss) μ „λ¬Έ APM. CPUΒ·HeapΒ·TPSΒ·μ‘λ‹΅μ‹œκ°„ μ‹€μ‹œκ°„ μˆ˜μ§‘, 이상 탐지 μ‹œ μžλ™ μΈμ‹œλ˜νŠΈ 생성.' }, ]; const EDITIONS = [ { name: 'COMMUNITY', badge: '무료', color: '#10B981', target: 'μ†Œκ·œλͺ¨ κΈ°κ΄€Β·κ²€ν† μš©', features: ['κΈ°λ³Έ SR 관리 (λ¬΄μ œν•œ)', 'CMDB μ„œλ²„ 20λŒ€', 'μ‚¬μš©μž 10λͺ…', 'λŒ€μ‹œλ³΄λ“œ', '봇 κΈ°λ³Έ λͺ…λ Ήμ–΄'], cta: '무료 μ‹œμž‘', href: '/support/contact?type=community', }, { name: 'STANDARD', badge: 'ꢌμž₯', color: 'var(--primary)', target: 'μ€‘ν˜• κΈ°κ΄€', features: ['전체 ITSM κΈ°λŠ₯', 'AI μ—μ΄μ „νŠΈ μžλ™ν™”', 'LDAP/AD 연동', 'MFA λ³΄μ•ˆ', 'SLA 관리', 'PMS κΈ°λ³Έ'], cta: 'λ„μž… 문의', href: '/support/contact?type=standard', highlight: true, }, { name: 'ENTERPRISE', badge: '맞좀', color: '#6366F1', target: 'λŒ€ν˜• κ΄€κ³΅μ„œΒ·κ΄‘μ—­κΈ°κ΄€', features: ['λ¬΄μ œν•œ μ„œλ²„Β·κΈ°κ΄€', '취약점 μžλ™ μŠ€μΊ”', 'Scouter APM', 'FinOps λΉ„μš© 뢄석', 'SIEM 연동', 'μ „λ‹΄ 기술 지원'], cta: 'μ „λ¬Έκ°€ 상담', href: '/support/contact?type=enterprise', }, ]; /* ── λ©”μ‹ μ € 봇 λͺ…λ Ήμ–΄ λͺ©λ‘ ──────────────────────────────── */ 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: '곡지' }, ]; const MESSENGER_PLATFORMS = [ { name: 'μΉ΄μΉ΄μ˜€μ›Œν¬', icon: 'πŸ’¬', color: '#FAE100', textColor: '#3C1E1E', desc: '결재 λ²„νŠΌ + 봇 λͺ…λ Ή μ™„λ²½ 지원' }, { name: 'λ„€μ΄λ²„μ›μŠ€', icon: '🟒', color: '#03C75A', textColor: '#fff', desc: 'Flex λ©”μ‹œμ§€ + Rich κ²°κ³Ό ν‘œμ‹œ' }, { name: 'μŠ¬λž™', icon: 'πŸ’œ', color: '#611F69', textColor: '#fff', desc: 'μŠ¬λž˜μ‹œ λͺ…λ Ή + 블둝킷 UI' }, { name: '자체 λ©”μ‹ μ €', icon: 'πŸ”΅', color: '#0051A2', textColor: '#fff', desc: 'GUARDiA λ‚΄μž₯ Slackν˜• λ©”μ‹ μ €' }, ]; 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: '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'] }, ]; export default function GuardiaDetail() { useSeoMeta({ title: 'GUARDiA ITSM β€” AI 기반 λ ˆκ±°μ‹œ 인프라 자율 운영 ν”Œλž«νΌ', description: 'GUARDiA ITSM은 λ©”μ‹ μ € ν•œ 쀄 λͺ…λ ΉμœΌλ‘œ 곡곡기관 λ ˆκ±°μ‹œ μ„œλ²„λ₯Ό μžλ™ μš΄μ˜ν•©λ‹ˆλ‹€. μ—μ΄μ „νŠΈ μ„€μΉ˜ 없이 SSH/SFTP둜 배포·μž₯μ• Β·λ³΄μ•ˆ μš΄μ˜μ„ μ™„μ „ μžλ™ν™”.', path: '/solution/guardia', keywords: 'GUARDiA ITSM, AI ITSM, 곡곡기관 인프라 μžλ™ν™”, ChatOps, μ—μ΄μ „νŠΈλ¦¬μŠ€, λ ˆκ±°μ‹œ μ„œλ²„ μžλ™ν™”', image: '/screenshots/01_dashboard.png', }); const [activeTab, setActiveTab] = useState('features'); return (
{/* ── νžˆμ–΄λ‘œ ────────────────────────────────────────── */}
NEW v2.0

GUARDiA ITSM

AI 기반 λ ˆκ±°μ‹œ 인프라 자율 운영 ν”Œλž«νΌ
λ©”μ‹ μ € ν•œ 쀄 λͺ…λ ΉμœΌλ‘œ 1,000개 κ΄€κ³΅μ„œ 인프라λ₯Ό μžλ™ν™”

무료 데λͺ¨ μ‹ μ²­ κΈ°λŠ₯ μ‚΄νŽ΄λ³΄κΈ° ↓
{[ {val:'1,000+', lab:'관리 κΈ°κ΄€'}, {val:'99.9%', lab:'κ°€μš©μ„±'}, {val:'70%', lab:'운영 λΉ„μš© 절감'}, {val:'0개', lab:'λŒ€μƒ μ„œλ²„ μΆ”κ°€ μ„€μΉ˜'}, ].map((s,i) => (
{s.val}
{s.lab}
))}
{/* ── νƒ­ 메뉴 ──────────────────────────────────────── */}
{[ {id:'features', label:'핡심 κΈ°λŠ₯'}, {id:'app', label:'λͺ¨λ°”일 μ•±'}, {id:'messenger', label:'Messenger Bot'}, {id:'manager', label:'Manager'}, {id:'editions', label:'μ—λ””μ…˜ 비ꡐ'}, {id:'tech', label:'기술 μŠ€νƒ'}, {id:'usecase', label:'λ„μž… 사둀'}, ].map(t => ( ))}
{/* ── 핡심 κΈ°λŠ₯ ─────────────────────────────────────── */} {activeTab === 'features' && (
Core Features

GUARDiAκ°€ μ œκ³΅ν•˜λŠ”
8κ°€μ§€ 핡심 κΈ°λŠ₯

{/* μ‹€ν–‰ ν™”λ©΄ μŠ€ν¬λ¦°μƒ· */} {/* GUARDiA ITSM μ‹€ν–‰ ν™”λ©΄ */}
GUARDiA ITSM

IT μ„œλΉ„μŠ€ 관리 ν”Œλž«νΌ

{[ {file:'01_dashboard', caption:'톡합 λŒ€μ‹œλ³΄λ“œ β€” SRΒ·SLAΒ·AI μΈμ‚¬μ΄νŠΈ'}, {file:'02_sr_list', caption:'SR μ„œλΉ„μŠ€ μš”μ²­ β€” 칸반/λͺ©λ‘ λ·°'}, {file:'04_incidents', caption:'μΈμ‹œλ˜νŠΈ 관리 β€” AI μžλ™ RCA'}, {file:'05_agents', caption:'AI μ—μ΄μ „νŠΈ β€” Ollama μ˜¨ν”„λ ˆλ―ΈμŠ€'}, {file:'06_license', caption:'λΌμ΄μ„ μŠ€ 관리 β€” μ—λ””μ…˜Β·μ²΄ν—˜νŒ'}, ].map((s,i) => (
{s.caption}{e.target.style.display='none';e.target.nextSibling.style.display='flex';}}/>
πŸ–₯️쀀비 쀑
{s.caption}
))}
{/* GUARDiA Manager μ‹€ν–‰ ν™”λ©΄ */}
GUARDiA Manager

톡합 κ΄€μ œ κ΄€λ¦¬μž 포털

{[ {file:'07_manager_dashboard', caption:'Manager λŒ€μ‹œλ³΄λ“œ β€” μ„œλ²„Β·λ°°ν¬Β·SLA 톡합 κ΄€μ œ'}, {file:'08_manager_dr', caption:'DR μž¬ν•΄λ³΅κ΅¬ κ΄€μ œ β€” RTO/RPO 싀적 좔적'}, {file:'09_manager_network', caption:'λ„€νŠΈμ›Œν¬ μž₯λΉ„ κ΄€μ œ β€” μŠ€μœ„μΉ˜Β·λ°©ν™”λ²½ μ„€μ • λ°±μ—…'}, {file:'10_manager_csap', caption:'CSAP λ³΄μ•ˆ 점검 β€” μ€€μˆ˜μœ¨ μžλ™ λŒ€μ‹œλ³΄λ“œ'}, ].map((s,i) => (
{s.caption}{e.target.style.display='none';e.target.nextSibling.style.display='flex';}}/>
πŸ–₯️쀀비 쀑
{s.caption}
))}
{/* GUARDiA Messenger λͺ¨λ°”일 μ•± */}
GUARDiA Messenger

λͺ¨λ°”일 μ•± (Android Β· iOS)

{[ {file:'06_mobile_home', caption:'ν™ˆ λŒ€μ‹œλ³΄λ“œ β€” SRΒ·μ„œλ²„ μƒνƒœ'}, {file:'02_guardia', caption:'SR 관리 β€” λ“±λ‘Β·μ²˜λ¦¬Β·μŠΉμΈ'}, {file:'05_agents', caption:'AI 챗봇 β€” μžμ—°μ–΄ λͺ…λ Ή 처리'}, ].map((s,i) => (
{s.caption}{e.target.style.display='none';e.target.nextSibling.style.display='flex';}}/>
πŸ“±μ€€λΉ„ 쀑
{s.caption}
))}

핡심 κΈ°λŠ₯ 상세

{FEATURES.map((f,i) => (
{f.icon}

{f.title}

{f.desc}

))}
)} {/* ── λͺ¨λ°”일 μ•± ────────────────────────────────────── */} {activeTab === 'app' && (
GUARDiA Messenger App

ν˜„μž₯μ—μ„œ λ°”λ‘œ
슀마트폰으둜 κ΄€μ œ

Android Β· iOS λͺ¨λ‘ 지원. SR μ ‘μˆ˜Β·μ²˜λ¦¬, DR 볡ꡬ ν…ŒμŠ€νŠΈ, λ„€νŠΈμ›Œν¬ μž₯λΉ„ κ΄€μ œ,
AI 챗봇 λͺ…λ ΉκΉŒμ§€ β€” μ–΄λ””μ„œλ“  GUARDiAλ₯Ό 손에 μ₯μ„Έμš”.

{[ {file:'11_app_home', caption:'ν™ˆ λŒ€μ‹œλ³΄λ“œ β€” SRΒ·μ„œλ²„ μ‹€μ‹œκ°„ ν˜„ν™©'}, {file:'12_app_sr', caption:'SR μ„œλΉ„μŠ€ μš”μ²­ β€” λ“±λ‘Β·μ²˜λ¦¬Β·μ™„λ£Œ'}, {file:'13_app_chat', caption:'AI 챗봇 β€” μžμ—°μ–΄ λͺ…λ ΉμœΌλ‘œ μ„œλ²„ μ œμ–΄'}, {file:'14_app_dr', caption:'DR μž¬ν•΄λ³΅κ΅¬ β€” RTO/RPO 싀적 λͺ¨λ‹ˆν„°λ§'}, {file:'15_app_network', caption:'λ„€νŠΈμ›Œν¬ μž₯λΉ„ β€” λ°±μ—…Β·μƒνƒœ ν˜„μž₯ 점검'}, ].map((s,i) => (
{s.caption}{e.target.style.display='none';e.target.nextSibling.style.display='flex';}}/>
πŸ“±μ€€λΉ„ 쀑
{s.caption}
))}
{/* μ•± μŠ€ν† μ–΄ λ°°μ§€ */}
)} {/* ── λ©”μ‹ μ € 봇 상세 μ†Œκ°œ ──────────────────────────── */} {activeTab === 'messenger' && (
ChatOps Messenger

λ©”μ‹ μ € ν•˜λ‚˜λ‘œ
λͺ¨λ“  인프라λ₯Ό μ œμ–΄

μ΅μˆ™ν•œ λ©”μ‹ μ €μ—μ„œ λͺ…λ Ήμ–΄ ν•˜λ‚˜λ‘œ μ„œλ²„ 배포·μž₯μ•  λŒ€μ‘Β·λ³΄κ³ μ„œ λ°œμ†‘κΉŒμ§€.
GUARDiA Bot은 25개 λͺ…λ Ήμ–΄λ‘œ IT 운영의 λͺ¨λ“  μˆœκ°„μ„ μ§€μ›ν•©λ‹ˆλ‹€.

{/* 지원 ν”Œλž«νΌ */}
{MESSENGER_PLATFORMS.map((p,i) => (
{p.icon}
{p.name}

{p.desc}

))}
{/* λͺ…λ Ήμ–΄ μΉ΄νƒˆλ‘œκ·Έ */}

25개 봇 λͺ…λ Ήμ–΄ 전체 λͺ©λ‘

{['SR 관리','μΈμ‹œλ˜νŠΈ','배포 μ œμ–΄','PMS','λͺ¨λ‹ˆν„°λ§','λ³΄μ•ˆ','곡지'].map(cat => { const cmds = BOT_COMMANDS.filter(c => c.cat === cat); return (

{cat}

{cmds.map((c,i) => (
{c.cmd} {c.desc}
))}
); })}
{/* 데λͺ¨ μ‹œλ‚˜λ¦¬μ˜€ */}

μ‹€μ œ 운영 μ‹œλ‚˜λ¦¬μ˜€

1
μž₯μ•  탐지

Scouter APM이 μ„œλ²„ CPU 90% 감지 β†’ μžλ™μœΌλ‘œ GUARDiA 운영 채널에 경보 λ°œμ†‘

🚨 web-01 CPU 90.3% β€” P2 μΈμ‹œλ˜νŠΈ μžλ™ 등둝: INC-20260530-A1B2C3
2
λ‹΄λ‹Ήμž μ¦‰μ‹œ λŒ€μ‘

λ©”μ‹ μ €μ—μ„œ RCA 뢄석 μš”μ²­

/rca INC-20260530-A1B2C3
πŸ€– AI RCA 뢄석 μ™„λ£Œ
근본원인: λ©”λͺ¨λ¦¬ λˆ„μˆ˜ (Heap 98%)
μž¬λ°œλ°©μ§€: WAS μž¬κΈ°λ™ + νž™λ€ν”„ 뢄석
신뒰도: 87%
3
원격 쑰치 μ‹€ν–‰

SSH μž¬κΈ°λ™ λͺ…λ Ή μ‹€ν–‰

!sm web-01 tomcat_restart
βœ… web-01 Tomcat μž¬κΈ°λ™ μ™„λ£Œ
μ†Œμš”: 38초 | CPU: 12% | 정상화
4
μžλ™ 보고

μΈμ‹œλ˜νŠΈ 처리 κ²°κ³Ό μžλ™ λ³΄κ³ μ„œ λ°œμ†‘

/notify 22:15 web-01 μ„œλ²„ μž₯μ•  볡ꡬ μ™„λ£Œ. 원인: λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 재발 λ°©μ§€ 쑰치 μ™„λ£Œ.
βœ… μš΄μ˜νŒ€ 전체 곡지 λ°œμ†‘ μ™„λ£Œ (ops 채널)
)} {/* ── GUARDiA Manager ──────────────────────────────── */} {activeTab === 'manager' && (
GUARDiA Manager

톡합 κ΄€μ œ κ΄€λ¦¬μž 포털
넀이버 ν΄λΌμš°λ“œ μ½˜μ†” μŠ€νƒ€μΌ

ITSMΒ·μ„œλ²„Β·λ°°ν¬Β·λ„€νŠΈμ›Œν¬Β·λ³΄μ•ˆΒ·AIλ₯Ό ν•˜λ‚˜μ˜ ν™”λ©΄μ—μ„œ κ΄€μ œν•©λ‹ˆλ‹€.
DR μžλ™ν™”, λ„€νŠΈμ›Œν¬ μž₯λΉ„ μ„€μ • λ°±μ—…, CSAP μ€€μˆ˜μœ¨κΉŒμ§€ 톡합 λŒ€μ‹œλ³΄λ“œλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€.

{[ {file:'07_manager_dashboard', caption:'톡합 운영 λŒ€μ‹œλ³΄λ“œ β€” μ„œλ²„Β·SR·배포 ν˜„ν™©'}, {file:'08_manager_dr', caption:'DR μž¬ν•΄λ³΅κ΅¬ β€” RTO/RPO 싀적 λŒ€μ‹œλ³΄λ“œ'}, {file:'09_manager_network', caption:'λ„€νŠΈμ›Œν¬ μž₯λΉ„ β€” μ„€μ • λ°±μ—…Β·λ³€κ²½ 감지'}, {file:'10_manager_csap', caption:'CSAP λ³΄μ•ˆ 점검 β€” μ€€μˆ˜μœ¨ A~D λ“±κΈ‰'}, ].map((s,i) => (
{s.caption}{e.target.style.display='none';e.target.nextSibling.style.display='flex';}}/>
πŸ–₯️쀀비 쀑
{s.caption}
))}
)} {/* ── μ—λ””μ…˜ 비ꡐ ──────────────────────────────────── */} {activeTab === 'editions' && (
Editions

κΈ°κ΄€ 규λͺ¨μ— λ§žλŠ”
μ—λ””μ…˜ 선택

{EDITIONS.map((e,i) => (
{e.highlight &&
μΆ”μ²œ
}

{e.name}

{e.badge}

{e.target}

    {e.features.map((f,j) => (
  • βœ“{f}
  • ))}
{e.cta}
))}
)} {/* ── 기술 μŠ€νƒ ─────────────────────────────────────── */} {activeTab === 'tech' && (
Technology

κ²€μ¦λœ
기술 μŠ€νƒ

μ˜¨ν”„λ ˆλ―ΈμŠ€ μ „μš© 섀계 β€” μ™ΈλΆ€ ν΄λΌμš°λ“œ 의쑴 μ—†λŠ” μ™„μ „ 폐쇄망 λ™μž‘

{TECH_STACK.map((t,i) => (

{t.category}

    {t.items.map((item,j) => (
  • {item}
  • ))}
))}
)} {/* ── λ„μž… 사둀 ─────────────────────────────────────── */} {activeTab === 'usecase' && (
Use Cases

μ‹€μ œ λ„μž… 사둀

{[ {org:'κ΄‘μ—­ μ§€λ°©μžμΉ˜λ‹¨μ²΄', result:'λ ˆκ±°μ‹œ μ„œλ²„ 200λŒ€ SSH μžλ™ν™”, 운영 인λ ₯ 3λͺ…β†’1λͺ…', badge:'μ€‘μ•™λΆ€μ²˜'}, {org:'곡곡기관 ITμ„Όν„°', result:'μ›”κ°„ SR 500건 처리, AI μžλ™λΆ„λ₯˜λ‘œ 80% μ‘λ‹΅μ‹œκ°„ 단좕', badge:'곡곡기관'}, {org:'μ§€λ°© ꡐ윑청', result:'Tomcat 100λŒ€ 무쀑단 배포 μžλ™ν™”, μž₯μ•  λŒ€μ‘ μ‹œκ°„ 70% 단좕', badge:'ꡐ윑'}, ].map((u,i) => (
{u.badge}

{u.org}

{u.result}

))}
)} {/* ── CTA ─────────────────────────────────────────────── */}

μ§€κΈˆ λ°”λ‘œ 무료 데λͺ¨λ₯Ό κ²½ν—˜ν•΄ λ³΄μ„Έμš”

μ „λ¬Έ μ»¨μ„€ν„΄νŠΈκ°€ κ·€ κΈ°κ΄€ ν™˜κ²½μ— λ§žλŠ” 졜적의 ꡬ성을 μ œμ•ˆν•΄ λ“œλ¦½λ‹ˆλ‹€.

무료 데λͺ¨ μ‹ μ²­ μ œν’ˆ μ†Œκ°œμ„œ
); }