// ─── 견적 요청 스펙 (솔루션별) ──────────────────────────────────────────────── // 원칙: "가격을 바꾸는 것만 묻는다." 나머지는 자유 입력과 통화로 넘긴다. // basis : 주 산정 기준 (수량) { label, unit, def } // line : 제품군 선택 (해당 제품만) // deploy : 도입 방식 // fields : 제품별 핵심 질문 — 최대 2개 // note : 산정 기준 안내 // g2b : 조달 등재 정보 → 제품 상세 페이지에서 사용 (견적 폼에는 노출하지 않음) // // ⚠️ 조달 단가는 수시로 바뀌므로 코드에 금액을 넣지 않는다. 식별번호와 단위만 보관. const QS = (() => { const L = (ko, en) => ({ ko, en }); // 모든 제품 공통 — 구매 방식만 (조달/일반은 단가 기준과 서류가 달라짐) const buyer = { k:'buyer', t:'select', label:L('구매 방식','Procurement route'), opts:[L('나라장터(조달) 구매','Public procurement (G2B)'),L('일반 구매','Direct purchase'),L('미정 — 상담 필요','Undecided')] }; const DEFAULT = { basis: { label:L('사용자 수','Number of users'), unit:L('명','users'), def:100 }, deploy: [L('클라우드(SaaS)','Cloud (SaaS)'), L('구축형(온프레미스)','On-premise'), L('미정 — 상담 필요','Undecided')], fields: [buyer], note: L('견적은 규모와 도입 방식에 따라 산정됩니다.','Pricing depends on scale and deployment model.'), }; const SPECS = { // ══ 이메일 ═════════════════════════════════════════════════════════════ spamout: { basis:{ label:L('사용자 수','Users'), unit:L('명','users'), def:300 }, deploy:[L('클라우드(ASP)','Cloud (ASP)'), L('구축형(온프레미스)','On-premise'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'ha', t:'select', label:L('이중화(HA) 구성','High availability'), opts:[L('불필요','Not required'),L('필요','Required'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('관리 서버 1식 + 사용자 수만큼의 라이선스로 산정됩니다. 이중화 구성 시 관리 서버가 추가됩니다.', 'One management server plus per-user licences. HA adds a second management server.'), g2b:{ verified:true, vendor:L('㈜넷엔씨큐','NetNSecu'), cat:L('보안소프트웨어 (4323320501)','Security SW (4323320501)'), contract:L('3자단가계약 · 2029.08.30까지','Multiple award schedule · until 2029.08.30'), lead:L('30일','30 days'), items:[{ id:'24133460', name:L('SpamOut V9.0 관리자','SpamOut V9.0 Manager'), unit:L('식','set') }, { id:'24133461', name:L('SpamOut V9.0 유저추가','SpamOut V9.0 Additional user'), unit:L('명','user') }] }, }, checkout: { basis:{ label:L('사용자 수','Users'), unit:L('명','users'), def:300 }, deploy:[L('클라우드(ASP)','Cloud (ASP)'), L('구축형(온프레미스)','On-premise'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'approval', t:'select', label:L('발송 승인 결재','Send-approval workflow'), opts:[L('불필요','Not required'),L('단일 승인','Single approver'),L('단계 결재','Multi-step'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('관리 서버 1식 + 발신 대상 사용자 수로 산정됩니다. 결재 워크플로가 복잡하면 구축 공수가 늘어납니다.', 'One management server plus per-user licences; complex approval workflows increase implementation effort.'), g2b:{ verified:false, vendor:L('㈜넷엔씨큐','NetNSecu') }, }, arch5: { basis:{ label:L('사용자 수','Users'), unit:L('명','users'), def:300 }, deploy:[L('구축형(온프레미스)','On-premise'), L('전용 클라우드','Private cloud'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'retain', t:'select', label:L('보존 기간','Retention period'), opts:[L('1년','1 year'),L('3년','3 years'),L('5년','5 years'),L('10년 이상','10+ years'),L('영구','Permanent')] }, buyer, ], note:L('관리 서버 1식 + 사용자 수로 산정되며, 보존 기간에 따라 스토리지가 별도 산정됩니다.', 'One management server plus per-user licences; storage is sized from the retention period.'), g2b:{ verified:true, vendor:L('㈜넷엔씨큐','NetNSecu'), cat:L('정보검색소프트웨어 (4323230901)','Information retrieval SW (4323230901)'), contract:L('3자단가계약 · 2028.08.24까지','Multiple award schedule · until 2028.08.24'), lead:L('30일','30 days'), items:[{ id:'24570304', name:L('ARCH5 V2.0 관리자','ARCH5 V2.0 Manager'), unit:L('식','set') }, { id:'24581181', name:L('ARCH5 V2.0 유저추가','ARCH5 V2.0 Additional user'), unit:L('명','user') }] }, }, mailinsight: { basis:{ label:L('사용자 수','Users'), unit:L('명','users'), def:100 }, deploy:[L('SaaS','SaaS'), L('전용 클라우드','Dedicated cloud'), L('온프레미스','On-premise')], fields:[ { k:'llm', t:'select', label:L('LLM 운영 방식','LLM hosting'), opts:[L('상용 API 연동','Commercial API'),L('프라이빗(내부 구축)','Private / in-house'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('관리 서버 1식 + 사용자 수로 산정되며, 색인 용량과 LLM 운영 방식에 따라 인프라가 별도 산정됩니다.', 'One management server plus per-user licences; infrastructure is sized from corpus volume and LLM hosting.'), g2b:{ verified:false, vendor:L('㈜넷엔씨큐','NetNSecu') }, }, // ══ 네트워크 · 엔드포인트 ══════════════════════════════════════════════ genian: { basis:{ label:L('관리 대상 Node 수','Managed nodes'), unit:L('Node','nodes'), def:300 }, deploy:[L('구축형(온프레미스)','On-premise'), L('클라우드','Cloud'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'func', t:'select', label:L('필요 기능','Required module'), opts:[L('접근제어(NAC) + IP관리','NAC + IP management'),L('접근제어(NAC)만','NAC only'),L('IP관리만','IP management only'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('Node 수 구간(1~500 / 501~1,000 / 1,001 이상)에 따라 단가가 달라지며, 접근제어와 IP관리는 각각 별도 라이선스입니다.', 'Unit price varies by node tier (1–500 / 501–1,000 / 1,001+); NAC and IP management are licensed separately.'), g2b:{ verified:true, vendor:L('지니언스 ㈜','Genians'), cat:L('보안SW · 시스템관리SW · SW유지및지원','Security SW · System mgmt SW · maintenance'), contract:L('3자단가계약','Multiple award schedule'), lead:L('365일 (유지관리)','365 days (maintenance)'), tiers:[L('1~500 Node','1–500 nodes'),L('501~1,000 Node','501–1,000 nodes'),L('1,001 Node 이상','1,001+ nodes')], items:[{ id:'25323530', name:L('Genian NAC Suite V5.0 SP1 · NAC Node License 유지관리','NAC node licence maintenance'), unit:L('식','set') }, { id:'25323538', name:L('Genian NAC Suite V5.0 SP1 · IP관리 유지관리','IP management maintenance'), unit:L('식','set') }] }, }, edr: { basis:{ label:L('보호 대상 단말 수','Endpoints'), unit:L('대','endpoints'), def:200 }, deploy:[L('클라우드 콘솔','Cloud console'), L('구축형(온프레미스)','On-premise'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'soc', t:'select', label:L('관제 운영 방식','Operations model'), opts:[L('자체 운영','In-house'),L('MDR 위탁 관제','Managed (MDR)'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('단말 수 기준으로 산정되며 수량 구간에 따라 단가가 달라집니다. 관제를 위탁하는 경우 MDR 서비스가 별도 산정됩니다.', 'Priced per endpoint with volume tiers; managed monitoring is quoted separately as MDR.'), g2b:{ verified:false, vendor:L('지니언스 ㈜','Genians') }, }, eset: { basis:{ label:L('라이선스 수량 (기기)','Licence seats'), unit:L('대','seats'), def:200 }, deploy:[L('클라우드 콘솔','Cloud console'), L('구축형(온프레미스)','On-premise'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'servers', t:'number', label:L('서버 수 (별도 산정)','Servers (priced separately)'), def:0, min:0 }, buyer, ], note:L('기기 수와 계약 기간(1~3년)으로 산정되며, 서버와 추가 모듈은 별도 라이선스입니다. 장기 계약일수록 단가가 낮아집니다.', 'Priced by seat count and term (1–3 years); servers and add-on modules are licensed separately.'), g2b:{ verified:false }, }, mdr: { basis:{ label:L('관제 대상 자산 수','Assets under monitoring'), unit:L('대','assets'), def:200 }, deploy:[L('월 구독형','Monthly subscription'), L('연 계약','Annual contract'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'hours', t:'select', label:L('관제 시간','Coverage hours'), opts:[L('24/7 상시','24/7'),L('업무시간(평일 09–18)','Business hours'),L('야간·주말 보강','After-hours only'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('관제 대상 자산 수와 관제 시간을 기준으로 월 구독 방식으로 산정됩니다.', 'Priced as a monthly subscription based on monitored assets and coverage hours.'), g2b:{ verified:false, vendor:L('지니언스 ㈜','Genians') }, }, netwitness: { basis:{ label:L('수집 대상 트래픽 대역폭','Traffic throughput'), unit:L('Gbps','Gbps'), def:1 }, deploy:[L('구축형 어플라이언스','On-premise appliance'), L('가상 어플라이언스','Virtual appliance'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'retain', t:'select', label:L('패킷 보존 기간','Packet retention'), opts:[L('7일','7 days'),L('30일','30 days'),L('90일','90 days'),L('180일 이상','180+ days'),L('상담 후 결정','To be discussed')] }, buyer, ], note:L('트래픽 대역폭으로 장비 사양이 결정되며, 패킷 보존 기간에 따라 스토리지가 별도 산정됩니다.', 'Appliance sizing follows throughput; storage is sized from the packet retention period.'), g2b:{ verified:false }, }, sniper: { basis:{ label:L('보호 대상 회선 대역폭','Protected link capacity'), unit:L('Gbps','Gbps'), def:1 }, deploy:[L('인라인 장비 도입','Inline appliance'), L('클린존 연동','Scrubbing centre'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'lines', t:'number', label:L('회선 수','Number of links'), def:1, min:1 }, buyer, ], note:L('보호 대상 회선 대역폭과 회선 수로 장비 모델이 결정되며, 이중화 구성 시 수량이 늘어납니다.', 'Appliance model follows protected capacity and link count; redundancy requires additional units.'), g2b:{ verified:false }, }, // ══ 진단 ═══════════════════════════════════════════════════════════════ cce: { basis:{ label:L('진단 대상 서버 수','Servers to assess'), unit:L('대','servers'), def:50 }, deploy:[L('구축형(온프레미스)','On-premise'), L('컨설팅형 진단 대행','Assessment service'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'netdev', t:'number', label:L('네트워크 장비 수 (별도 라이선스)','Network devices (licensed separately)'), def:0, min:0 }, buyer, ], note:L('서버 라이선스와 네트워크 장비 라이선스가 각각 별도 품목으로 산정됩니다. 서버는 OS 종류와 무관하게 대수 기준입니다.', 'Server and network device licences are separate line items; servers are counted regardless of OS.'), g2b:{ verified:true, vendor:L('㈜에스에스알','SSR'), cat:L('보안소프트웨어 (4323320501)','Security SW (4323320501)'), contract:L('3자단가계약 · 2027.12.19까지','Multiple award schedule · until 2027.12.19'), lead:L('30일','30 days'), items:[{ id:'24396440', name:L('SolidStep CCE 4.0 Server License (Windows/Unix/Linux)','CCE 4.0 Server licence'), unit:L('대','server') }, { id:'24396439', name:L('SolidStep CCE 4.0 Network License','CCE 4.0 Network licence'), unit:L('대','device') }] }, }, cve: { basis:{ label:L('진단 대상 자산 수','Assets to scan'), unit:L('대','assets'), def:50 }, deploy:[L('구축형(온프레미스)','On-premise'), L('클라우드','Cloud'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'clients', t:'number', label:L('진단 콘솔 수 (연간 라이선스)','Consoles (annual licence)'), def:1, min:1 }, buyer, ], note:L('에이전트 라이선스(자산 대수)와 진단 콘솔 라이선스(연간 갱신)가 각각 별도로 산정됩니다.', 'Agent licences (per asset) and console licences (annual) are priced separately.'), g2b:{ verified:true, vendor:L('㈜에스에스알','SSR'), cat:L('보안소프트웨어 (4323320501)','Security SW (4323320501)'), contract:L('3자단가계약 · 2028.04.12까지','Multiple award schedule · until 2028.04.12'), lead:L('30일','30 days'), items:[{ id:'24484583', name:L('SolidStep CVE 2.0 Agent License','CVE 2.0 Agent licence'), unit:L('대','asset') }, { id:'24484584', name:L('SolidStep CVE 2.0 Client, 연간 라이선스','CVE 2.0 Client, annual'), unit:L('식/년','console/yr') }] }, }, // ══ 데이터 · 개인정보 ══════════════════════════════════════════════════ dbsafer: { line:{ k:'product', label:L('제품군','Product line'), opts:[L('Enterprise — DB 접근제어','Enterprise — DB access control'), L('OS — 서버 접근통제','OS — server access control'), L('IM — 통합 계정관리','IM — identity management'), L('복합 구성 / 상담 필요','Combined / to be discussed')] }, basis:{ label:L('보호 대상 수 (DB 인스턴스 또는 서버)','Protected targets'), unit:L('개','units'), def:5 }, deploy:[L('게이트웨이(Proxy) 방식','Gateway (proxy)'), L('서버 에이전트 방식','Server agent'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'cores', t:'number', label:L('DB 서버 총 CPU 코어 수 (Enterprise 선택 시)','Total DB CPU cores (Enterprise only)'), def:0, min:0 }, buyer, ], note:L('Enterprise는 CPU 코어 수, OS는 서버 대수와 OS 종류, IM은 Manager 1식 + 관리 노드 수로 각각 산정됩니다.', 'Enterprise is priced per CPU core, OS by server count and operating system, IM by one manager plus managed nodes.'), g2b:{ verified:true, priority:true, vendor:L('㈜피앤피시큐어','PNPSecure'), cat:L('보안소프트웨어 (4323320501)','Security SW (4323320501)'), contract:L('3자단가계약','Multiple award schedule'), lead:L('30일','30 days'), items:[{ id:'24708442', name:L('DBSAFER Enterprise V7.0 접근제어 1Core','Enterprise 1 core'), unit:L('Core','core') }, { id:'24713133', name:L('DBSAFER Enterprise V7.0 접근제어 2Core','Enterprise 2 core'), unit:L('Core','core') }, { id:'24713140', name:L('DBSAFER Enterprise V7.0 Server Agent','Enterprise server agent'), unit:L('대','server') }, { id:'24048994', name:L('DBSAFER OS V7.0 Windows Server 2019용','OS — Windows Server 2019'), unit:L('대','server') }, { id:'24048995', name:L('DBSAFER OS V7.0 RHEL 7용','OS — RHEL 7'), unit:L('대','server') }, { id:'24125328', name:L('DBSAFER OS V7.0 AIX 7.2용','OS — AIX 7.2'), unit:L('대','server') }, { id:'23432158', name:L('DBSAFER IM V7.0 Manager','IM Manager'), unit:L('식','set') }, { id:'23432157', name:L('DBSAFER IM V7.0 Node License','IM node licence'), unit:L('Node','node') }] }, }, privacy: { basis:{ label:L('개인정보 취급자 수','Privacy handlers'), unit:L('명','users'), def:30 }, deploy:[L('SaaS','SaaS'), L('구축형(온프레미스)','On-premise'), L('미정 — 상담 필요','Undecided')], fields:[ { k:'scale', t:'select', label:L('보유 개인정보 규모','Personal data volume'), opts:[L('1만 건 미만','< 10K records'),L('1만~10만 건','10K–100K'),L('10만~100만 건','100K–1M'),L('100만 건 이상','> 1M'),L('모름','Unknown')] }, buyer, ], note:L('개인정보 취급자 수로 산정되며, 보유 데이터 규모에 따라 검출·파기 처리 용량이 조정됩니다.', 'Priced by handler count; discovery and disposal capacity scales with data volume.'), g2b:{ verified:false }, }, }; SPECS.catchsecu = SPECS.privacy; SPECS.email = SPECS.spamout; SPECS.system = SPECS.cce; SPECS.network = SPECS.genian; SPECS.ai = SPECS.mailinsight; SPECS.data = SPECS.dbsafer; SPECS.endpoint = SPECS.edr; const ALIAS = { 'spamout':'spamout','스팸아웃':'spamout','spamout v9':'spamout', 'checkout':'checkout','체크아웃':'checkout','checkout v9':'checkout', 'arch5':'arch5','아크파이브':'arch5', 'mail insight':'mailinsight','mailinsight':'mailinsight','메일 인사이트':'mailinsight','메일인사이트':'mailinsight', 'genian nac':'genian','지니언 nac':'genian','지니언스 nac':'genian','지니안':'genian','nac':'genian', 'genian insights e':'edr','insights e':'edr','edr':'edr', 'genian mdr':'mdr','mdr':'mdr', 'netwitness':'netwitness','netwitness ndr':'netwitness','넷위트니스':'netwitness','ndr':'netwitness', 'sniper one-d':'sniper','sniper':'sniper','스나이퍼':'sniper', 'eset protect':'eset','eset protect enterprise':'eset','eset':'eset','이셋':'eset', 'dbsafer':'dbsafer','dbsafer db':'dbsafer','디비세이퍼':'dbsafer', 'solidstep cce':'cce','cce':'cce','solidstep cve':'cve','cve':'cve','솔리드스텝':'cce', 'catchsecu':'catchsecu','캐치시큐':'catchsecu', '이메일 보안':'email','email security':'email', '시스템 보안':'system','system security':'system', '네트워크 보안':'network','network security':'network', '데이터 보안':'data','data security':'data', '엔드포인트 보안':'endpoint','endpoint security':'endpoint', '개인정보 보호':'privacy','privacy protection':'privacy', 'ai 보안':'ai','ai security':'ai', }; const resolve = (nameOrKey) => { if (!nameOrKey) return DEFAULT; const raw = String(nameOrKey).trim(); if (SPECS[raw]) return SPECS[raw]; const low = raw.toLowerCase(); if (ALIAS[low] && SPECS[ALIAS[low]]) return SPECS[ALIAS[low]]; for (const k in ALIAS) if (low.includes(k) && SPECS[ALIAS[k]]) return SPECS[ALIAS[k]]; return DEFAULT; }; return { SPECS, ALIAS, DEFAULT, resolve }; })(); // 카테고리 페이지(별칭 키)는 특정 제조사의 조달 등재 정보를 주장하면 안 된다. // 예: '네트워크 보안' 카테고리가 Genian NAC 계약 정보를 표시하는 것을 막는다. window.G2B_CATEGORY_KEYS = ['system','network','data','ai','endpoint','email']; window.hasG2B = (solKey) => { if (!(window.SITE_CONFIG && window.SITE_CONFIG.SHOW_G2B)) return false; if (!solKey || window.G2B_CATEGORY_KEYS.includes(solKey)) return false; const g = (QS.resolve(solKey) || {}).g2b; return !!(g && g.verified); }; window.QUOTE_SPECS = QS; window.quoteSpecFor = QS.resolve;