feat(ci): CI 소개 페이지 실제 로고 이미지 적용 + 헤더 로고 교체
- 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>
BIN
backend/src/main/resources/static/CI.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
@ -1 +1 @@
|
||||
import{r as a,j as e,L as n}from"./index-ChpGil2q.js";const h=s=>fetch(s,{headers:{Authorization:`Bearer ${localStorage.getItem("admin_token")}`}}).then(l=>l.json());function x(){var t,r;const[s,l]=a.useState(null),[c,d]=a.useState(!0);if(a.useEffect(()=>{h("/api/admin/dashboard").then(l).finally(()=>d(!1))},[]),c)return e.jsx("p",{style:{color:"#64748b",fontSize:14},children:"로딩 중..."});if(!s)return null;const o=[{icon:"📰",label:"전체 뉴스",value:s.totalNews,sub:`공개 ${s.visibleNews}건`,color:"blue"},{icon:"📩",label:"전체 문의",value:s.totalInquiries,sub:`미답변 ${s.pendingInquiries}건`,color:s.pendingInquiries>0?"red":"green"},{icon:"👥",label:"채용공고",value:s.totalRecruits,sub:`진행중 ${s.activeRecruits}건`,color:"green"}];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"admin-stats",children:[o.map(i=>e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:`stat-icon ${i.color}`,children:i.icon}),e.jsxs("div",{className:"stat-info",children:[e.jsx("h4",{children:i.value}),e.jsxs("p",{children:[i.label,e.jsx("br",{}),e.jsx("span",{style:{fontSize:11},children:i.sub})]})]})]},i.label)),s.pendingInquiries>0&&e.jsxs("div",{className:"stat-card",style:{borderLeft:"3px solid #ef4444"},children:[e.jsx("div",{className:"stat-icon red",children:"🔔"}),e.jsxs("div",{className:"stat-info",children:[e.jsx("h4",{style:{color:"#ef4444"},children:s.pendingInquiries}),e.jsxs("p",{children:["미답변 문의",e.jsx("br",{}),e.jsx(n,{to:"/admin/inquiries",style:{fontSize:11,color:"#ef4444"},children:"바로가기 →"})]})]})]})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16},children:[e.jsxs("div",{className:"admin-card",children:[e.jsxs("div",{className:"admin-card-header",children:[e.jsx("h3",{children:"📰 최근 뉴스"}),e.jsx(n,{to:"/admin/news",className:"btn btn-outline btn-sm",children:"전체보기"})]}),e.jsxs("ul",{className:"recent-list",children:[(s.recentNews||[]).map(i=>e.jsxs("li",{children:[e.jsx("span",{className:"rl-dot"}),e.jsx("span",{className:"rl-title",children:i.title}),e.jsx("span",{className:"rl-meta",children:i.category})]},i.id)),!((t=s.recentNews)!=null&&t.length)&&e.jsx("li",{style:{color:"#94a3b8",fontSize:13},children:"등록된 뉴스가 없습니다."})]})]}),e.jsxs("div",{className:"admin-card",children:[e.jsxs("div",{className:"admin-card-header",children:[e.jsx("h3",{children:"📩 최근 문의"}),e.jsx(n,{to:"/admin/inquiries",className:"btn btn-outline btn-sm",children:"전체보기"})]}),e.jsxs("ul",{className:"recent-list",children:[(s.recentInquiries||[]).map(i=>e.jsxs("li",{children:[e.jsx("span",{className:"rl-dot",style:{background:i.status==="PENDING"?"#ef4444":"#22c55e"}}),e.jsx("span",{className:"rl-title",children:i.subject}),e.jsx("span",{className:"rl-meta",children:i.name})]},i.id)),!((r=s.recentInquiries)!=null&&r.length)&&e.jsx("li",{style:{color:"#94a3b8",fontSize:13},children:"접수된 문의가 없습니다."})]})]})]})]})}export{x as default};
|
||||
import{r as a,j as e,L as n}from"./index-B5QEzx5R.js";const h=s=>fetch(s,{headers:{Authorization:`Bearer ${localStorage.getItem("admin_token")}`}}).then(l=>l.json());function x(){var t,r;const[s,l]=a.useState(null),[c,d]=a.useState(!0);if(a.useEffect(()=>{h("/api/admin/dashboard").then(l).finally(()=>d(!1))},[]),c)return e.jsx("p",{style:{color:"#64748b",fontSize:14},children:"로딩 중..."});if(!s)return null;const o=[{icon:"📰",label:"전체 뉴스",value:s.totalNews,sub:`공개 ${s.visibleNews}건`,color:"blue"},{icon:"📩",label:"전체 문의",value:s.totalInquiries,sub:`미답변 ${s.pendingInquiries}건`,color:s.pendingInquiries>0?"red":"green"},{icon:"👥",label:"채용공고",value:s.totalRecruits,sub:`진행중 ${s.activeRecruits}건`,color:"green"}];return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"admin-stats",children:[o.map(i=>e.jsxs("div",{className:"stat-card",children:[e.jsx("div",{className:`stat-icon ${i.color}`,children:i.icon}),e.jsxs("div",{className:"stat-info",children:[e.jsx("h4",{children:i.value}),e.jsxs("p",{children:[i.label,e.jsx("br",{}),e.jsx("span",{style:{fontSize:11},children:i.sub})]})]})]},i.label)),s.pendingInquiries>0&&e.jsxs("div",{className:"stat-card",style:{borderLeft:"3px solid #ef4444"},children:[e.jsx("div",{className:"stat-icon red",children:"🔔"}),e.jsxs("div",{className:"stat-info",children:[e.jsx("h4",{style:{color:"#ef4444"},children:s.pendingInquiries}),e.jsxs("p",{children:["미답변 문의",e.jsx("br",{}),e.jsx(n,{to:"/admin/inquiries",style:{fontSize:11,color:"#ef4444"},children:"바로가기 →"})]})]})]})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:16},children:[e.jsxs("div",{className:"admin-card",children:[e.jsxs("div",{className:"admin-card-header",children:[e.jsx("h3",{children:"📰 최근 뉴스"}),e.jsx(n,{to:"/admin/news",className:"btn btn-outline btn-sm",children:"전체보기"})]}),e.jsxs("ul",{className:"recent-list",children:[(s.recentNews||[]).map(i=>e.jsxs("li",{children:[e.jsx("span",{className:"rl-dot"}),e.jsx("span",{className:"rl-title",children:i.title}),e.jsx("span",{className:"rl-meta",children:i.category})]},i.id)),!((t=s.recentNews)!=null&&t.length)&&e.jsx("li",{style:{color:"#94a3b8",fontSize:13},children:"등록된 뉴스가 없습니다."})]})]}),e.jsxs("div",{className:"admin-card",children:[e.jsxs("div",{className:"admin-card-header",children:[e.jsx("h3",{children:"📩 최근 문의"}),e.jsx(n,{to:"/admin/inquiries",className:"btn btn-outline btn-sm",children:"전체보기"})]}),e.jsxs("ul",{className:"recent-list",children:[(s.recentInquiries||[]).map(i=>e.jsxs("li",{children:[e.jsx("span",{className:"rl-dot",style:{background:i.status==="PENDING"?"#ef4444":"#22c55e"}}),e.jsx("span",{className:"rl-title",children:i.subject}),e.jsx("span",{className:"rl-meta",children:i.name})]},i.id)),!((r=s.recentInquiries)!=null&&r.length)&&e.jsx("li",{style:{color:"#94a3b8",fontSize:13},children:"접수된 문의가 없습니다."})]})]})]})]})}export{x as default};
|
||||
@ -0,0 +1 @@
|
||||
import{c as g,u as b,r as s,j as a,N as x,O as j}from"./index-B5QEzx5R.js";/* empty css */const N=[{section:"메인"},{path:"/admin/dashboard",icon:"📊",label:"대시보드"},{section:"콘텐츠 관리"},{path:"/admin/news",icon:"📰",label:"뉴스/공지사항"},{path:"/admin/recruit",icon:"👥",label:"채용공고"},{section:"고객 관리"},{path:"/admin/inquiries",icon:"📩",label:"문의 관리",badgeKey:"pendingInquiries"},{path:"/admin/members",icon:"👤",label:"회원 관리"},{section:"시스템"},{path:"/admin/settings",icon:"⚙️",label:"설정"}];function y(){const i=g(),c=b(),[t,o]=s.useState(null),[l,m]=s.useState("대시보드"),[r,h]=s.useState({});s.useEffect(()=>{const e=localStorage.getItem("admin_token");if(!e){i("/admin/login");return}const n=JSON.parse(localStorage.getItem("admin_user")||"{}");o(n),u(e)},[i]),s.useEffect(()=>{m({"/admin/dashboard":"대시보드","/admin/news":"뉴스/공지사항 관리","/admin/inquiries":"문의 관리","/admin/recruit":"채용공고 관리","/admin/members":"회원 관리","/admin/settings":"설정"}[c.pathname]||"관리자")},[c.pathname]);const u=async e=>{try{const n=await fetch("/api/admin/dashboard",{headers:{Authorization:`Bearer ${e}`}});if(n.ok){const d=await n.json();h({pendingInquiries:d.pendingInquiries||0})}}catch{}},p=()=>{localStorage.removeItem("admin_token"),localStorage.removeItem("admin_user"),i("/admin/login")};return t?a.jsxs("div",{className:"admin-wrap",children:[a.jsxs("aside",{className:"admin-sidebar",children:[a.jsxs("div",{className:"admin-sidebar-logo",children:[a.jsx("h2",{children:"ZioInfo Admin"}),a.jsx("span",{children:"(주)지오정보기술 관리자"})]}),a.jsx("nav",{className:"admin-nav",children:N.map((e,n)=>e.section?a.jsx("div",{className:"admin-nav-section",children:e.section},n):a.jsxs(x,{to:e.path,className:({isActive:d})=>d?"active":"",children:[a.jsx("span",{className:"nav-icon",children:e.icon}),e.label,e.badgeKey&&r[e.badgeKey]>0&&a.jsx("span",{className:"admin-nav-badge",children:r[e.badgeKey]})]},e.path))}),a.jsx("div",{className:"admin-sidebar-footer",children:a.jsx("button",{onClick:p,children:"🚪 로그아웃"})})]}),a.jsxs("main",{className:"admin-main",children:[a.jsxs("div",{className:"admin-topbar",children:[a.jsx("h1",{children:l}),a.jsxs("div",{className:"admin-topbar-right",children:[a.jsxs("span",{className:"admin-user-badge",children:["👤 ",t.displayName||t.username]}),a.jsx("a",{href:"/",target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"#64748b",textDecoration:"none"},children:"🌐 홈페이지 보기"})]})]}),a.jsx("div",{className:"admin-content",children:a.jsx(j,{})})]})]}):null}export{y as default};
|
||||
@ -1 +0,0 @@
|
||||
import{c as g,u as x,r as s,j as a,N as b,O as j}from"./index-ChpGil2q.js";/* empty css */const N=[{section:"메인"},{path:"/admin/dashboard",icon:"📊",label:"대시보드"},{section:"콘텐츠 관리"},{path:"/admin/news",icon:"📰",label:"뉴스/공지사항"},{path:"/admin/recruit",icon:"👥",label:"채용공고"},{section:"고객 관리"},{path:"/admin/inquiries",icon:"📩",label:"문의 관리",badgeKey:"pendingInquiries"},{section:"시스템"},{path:"/admin/settings",icon:"⚙️",label:"설정"}];function y(){const i=g(),d=x(),[t,r]=s.useState(null),[l,m]=s.useState("대시보드"),[o,h]=s.useState({});s.useEffect(()=>{const e=localStorage.getItem("admin_token");if(!e){i("/admin/login");return}const n=JSON.parse(localStorage.getItem("admin_user")||"{}");r(n),u(e)},[i]),s.useEffect(()=>{m({"/admin/dashboard":"대시보드","/admin/news":"뉴스/공지사항 관리","/admin/inquiries":"문의 관리","/admin/recruit":"채용공고 관리","/admin/settings":"설정"}[d.pathname]||"관리자")},[d.pathname]);const u=async e=>{try{const n=await fetch("/api/admin/dashboard",{headers:{Authorization:`Bearer ${e}`}});if(n.ok){const c=await n.json();h({pendingInquiries:c.pendingInquiries||0})}}catch{}},p=()=>{localStorage.removeItem("admin_token"),localStorage.removeItem("admin_user"),i("/admin/login")};return t?a.jsxs("div",{className:"admin-wrap",children:[a.jsxs("aside",{className:"admin-sidebar",children:[a.jsxs("div",{className:"admin-sidebar-logo",children:[a.jsx("h2",{children:"ZioInfo Admin"}),a.jsx("span",{children:"(주)지오정보기술 관리자"})]}),a.jsx("nav",{className:"admin-nav",children:N.map((e,n)=>e.section?a.jsx("div",{className:"admin-nav-section",children:e.section},n):a.jsxs(b,{to:e.path,className:({isActive:c})=>c?"active":"",children:[a.jsx("span",{className:"nav-icon",children:e.icon}),e.label,e.badgeKey&&o[e.badgeKey]>0&&a.jsx("span",{className:"admin-nav-badge",children:o[e.badgeKey]})]},e.path))}),a.jsx("div",{className:"admin-sidebar-footer",children:a.jsx("button",{onClick:p,children:"🚪 로그아웃"})})]}),a.jsxs("main",{className:"admin-main",children:[a.jsxs("div",{className:"admin-topbar",children:[a.jsx("h1",{children:l}),a.jsxs("div",{className:"admin-topbar-right",children:[a.jsxs("span",{className:"admin-user-badge",children:["👤 ",t.displayName||t.username]}),a.jsx("a",{href:"/",target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"#64748b",textDecoration:"none"},children:"🌐 홈페이지 보기"})]})]}),a.jsx("div",{className:"admin-content",children:a.jsx(j,{})})]})]}):null}export{y as default};
|
||||
@ -1 +1 @@
|
||||
import{r as i,c as p,j as e}from"./index-ChpGil2q.js";/* empty css */function x(){const[t,o]=i.useState({username:"",password:""}),[l,r]=i.useState(""),[d,c]=i.useState(!1),m=p(),u=async a=>{a.preventDefault(),r(""),c(!0);try{const s=await fetch("/api/admin/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await s.json();if(!s.ok){r(n.message||"로그인 실패");return}localStorage.setItem("admin_token",n.token),localStorage.setItem("admin_user",JSON.stringify({username:n.username,displayName:n.displayName})),m("/admin/dashboard")}catch{r("서버 연결 오류가 발생했습니다.")}finally{c(!1)}};return e.jsx("div",{className:"admin-login-page",children:e.jsxs("div",{className:"admin-login-box",children:[e.jsxs("div",{className:"login-logo",children:[e.jsx("span",{className:"login-badge",children:"ADMIN"}),e.jsx("h1",{children:"(주)지오정보기술"}),e.jsx("p",{children:"홈페이지 관리자 시스템"})]}),l&&e.jsxs("div",{className:"login-error",children:["⚠ ",l]}),e.jsxs("form",{onSubmit:u,children:[e.jsxs("div",{className:"login-input-group",children:[e.jsx("label",{children:"아이디"}),e.jsx("input",{type:"text",placeholder:"관리자 아이디",value:t.username,required:!0,onChange:a=>o(s=>({...s,username:a.target.value}))})]}),e.jsxs("div",{className:"login-input-group",children:[e.jsx("label",{children:"비밀번호"}),e.jsx("input",{type:"password",placeholder:"비밀번호",value:t.password,required:!0,onChange:a=>o(s=>({...s,password:a.target.value}))})]}),e.jsx("button",{type:"submit",className:"login-btn",disabled:d,children:d?"로그인 중...":"로그인"})]}),e.jsxs("p",{style:{textAlign:"center",marginTop:20,fontSize:12,color:"#94a3b8"},children:["홈페이지로 돌아가기: ",e.jsx("a",{href:"/",style:{color:"#4f6ef7"},children:"메인 페이지"})]})]})})}export{x as default};
|
||||
import{r as i,c as p,j as e}from"./index-B5QEzx5R.js";/* empty css */function x(){const[t,o]=i.useState({username:"",password:""}),[l,r]=i.useState(""),[d,c]=i.useState(!1),m=p(),u=async a=>{a.preventDefault(),r(""),c(!0);try{const s=await fetch("/api/admin/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await s.json();if(!s.ok){r(n.message||"로그인 실패");return}localStorage.setItem("admin_token",n.token),localStorage.setItem("admin_user",JSON.stringify({username:n.username,displayName:n.displayName})),m("/admin/dashboard")}catch{r("서버 연결 오류가 발생했습니다.")}finally{c(!1)}};return e.jsx("div",{className:"admin-login-page",children:e.jsxs("div",{className:"admin-login-box",children:[e.jsxs("div",{className:"login-logo",children:[e.jsx("span",{className:"login-badge",children:"ADMIN"}),e.jsx("h1",{children:"(주)지오정보기술"}),e.jsx("p",{children:"홈페이지 관리자 시스템"})]}),l&&e.jsxs("div",{className:"login-error",children:["⚠ ",l]}),e.jsxs("form",{onSubmit:u,children:[e.jsxs("div",{className:"login-input-group",children:[e.jsx("label",{children:"아이디"}),e.jsx("input",{type:"text",placeholder:"관리자 아이디",value:t.username,required:!0,onChange:a=>o(s=>({...s,username:a.target.value}))})]}),e.jsxs("div",{className:"login-input-group",children:[e.jsx("label",{children:"비밀번호"}),e.jsx("input",{type:"password",placeholder:"비밀번호",value:t.password,required:!0,onChange:a=>o(s=>({...s,password:a.target.value}))})]}),e.jsx("button",{type:"submit",className:"login-btn",disabled:d,children:d?"로그인 중...":"로그인"})]}),e.jsxs("p",{style:{textAlign:"center",marginTop:20,fontSize:12,color:"#94a3b8"},children:["홈페이지로 돌아가기: ",e.jsx("a",{href:"/",style:{color:"#4f6ef7"},children:"메인 페이지"})]})]})})}export{x as default};
|
||||
@ -0,0 +1 @@
|
||||
import{r as d,j as t}from"./index-B5QEzx5R.js";const c="/api/admin/members",w=()=>localStorage.getItem("admin_token"),p=()=>({Authorization:`Bearer ${w()}`,"Content-Type":"application/json"});function C(){const[x,y]=d.useState({content:[],totalElements:0}),[n,i]=d.useState(0),[f,j]=d.useState(""),[a,S]=d.useState(""),[m,h]=d.useState(!1),l=async(e=n,r=a)=>{h(!0);try{const o=new URLSearchParams({page:e,size:20,...r&&{keyword:r}}),u=await fetch(`${c}?${o}`,{headers:p()});u.ok&&y(await u.json())}finally{h(!1)}};d.useEffect(()=>{l()},[n,a]);const k=e=>{e.preventDefault(),i(0),S(f)},v=async(e,r)=>{confirm(`${r?"비활성화":"활성화"}하시겠습니까?`)&&(await fetch(`${c}/${e}/status`,{method:"PATCH",headers:p(),body:JSON.stringify({active:!r})}),l())},z=async e=>{confirm("삭제하면 복구할 수 없습니다. 삭제하시겠습니까?")&&(await fetch(`${c}/${e}`,{method:"DELETE",headers:p()}),l())},g=x.content||[],b=x.totalElements||0,s=Math.ceil(b/20);return t.jsxs("div",{children:[t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:24},children:[t.jsxs("div",{children:[t.jsx("h2",{style:{fontSize:20,fontWeight:700,color:"#1e293b",margin:0},children:"회원 관리"}),t.jsxs("p",{style:{fontSize:13,color:"#64748b",margin:"4px 0 0"},children:["총 ",b.toLocaleString(),"명"]})]}),t.jsxs("form",{onSubmit:k,style:{display:"flex",gap:8},children:[t.jsx("input",{value:f,onChange:e=>j(e.target.value),placeholder:"이름 / 이메일 / 소속 검색",style:{padding:"8px 14px",border:"1px solid #e2e8f0",borderRadius:8,fontSize:13,width:240,outline:"none"}}),t.jsx("button",{type:"submit",style:{padding:"8px 16px",background:"#1a5fd8",color:"#fff",border:"none",borderRadius:8,fontSize:13,cursor:"pointer"},children:"검색"})]})]}),t.jsx("div",{style:{background:"#fff",border:"1px solid #e2e8f0",borderRadius:10,overflow:"hidden"},children:t.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},children:[t.jsx("thead",{children:t.jsx("tr",{style:{background:"#f8fafc"},children:["ID","이름","이메일","연락처","소속","가입일","상태","액션"].map(e=>t.jsx("th",{style:{padding:"10px 14px",textAlign:"left",fontWeight:600,color:"#475569",borderBottom:"1px solid #e2e8f0"},children:e},e))})}),t.jsx("tbody",{children:m?t.jsx("tr",{children:t.jsx("td",{colSpan:8,style:{padding:40,textAlign:"center",color:"#94a3b8"},children:"로딩 중..."})}):g.length===0?t.jsx("tr",{children:t.jsx("td",{colSpan:8,style:{padding:40,textAlign:"center",color:"#94a3b8"},children:a?"검색 결과가 없습니다.":"등록된 회원이 없습니다."})}):g.map(e=>t.jsxs("tr",{style:{borderBottom:"1px solid #f1f5f9"},children:[t.jsxs("td",{style:{padding:"10px 14px",color:"#94a3b8"},children:["#",e.id]}),t.jsx("td",{style:{padding:"10px 14px",fontWeight:600,color:"#1e293b"},children:e.name}),t.jsx("td",{style:{padding:"10px 14px",color:"#475569"},children:e.email}),t.jsx("td",{style:{padding:"10px 14px",color:"#64748b"},children:e.phone||"-"}),t.jsx("td",{style:{padding:"10px 14px",color:"#64748b"},children:e.company||"-"}),t.jsx("td",{style:{padding:"10px 14px",color:"#64748b",fontSize:12},children:e.createdAt?new Date(e.createdAt).toLocaleDateString("ko-KR"):"-"}),t.jsx("td",{style:{padding:"10px 14px"},children:t.jsx("span",{style:{padding:"3px 10px",borderRadius:12,fontSize:11,fontWeight:700,background:e.active?"#dcfce7":"#fee2e2",color:e.active?"#16a34a":"#dc2626"},children:e.active?"활성":"비활성"})}),t.jsx("td",{style:{padding:"10px 14px"},children:t.jsxs("div",{style:{display:"flex",gap:6},children:[t.jsx("button",{onClick:()=>v(e.id,e.active),style:{padding:"4px 10px",fontSize:11,borderRadius:6,cursor:"pointer",background:e.active?"#fef3c7":"#dcfce7",color:e.active?"#92400e":"#166534",border:"none"},children:e.active?"비활성화":"활성화"}),t.jsx("button",{onClick:()=>z(e.id),style:{padding:"4px 10px",fontSize:11,borderRadius:6,cursor:"pointer",background:"#fef2f2",color:"#dc2626",border:"none"},children:"삭제"})]})})]},e.id))})]})}),s>1&&t.jsxs("div",{style:{display:"flex",gap:6,justifyContent:"center",marginTop:20},children:[t.jsx("button",{onClick:()=>i(e=>Math.max(0,e-1)),disabled:n===0,style:{padding:"6px 14px",borderRadius:6,border:"1px solid #e2e8f0",background:"#fff",cursor:"pointer",fontSize:13},children:"이전"}),Array.from({length:Math.min(5,s)},(e,r)=>{const o=Math.max(0,Math.min(n-2,s-5))+r;return t.jsx("button",{onClick:()=>i(o),style:{padding:"6px 12px",borderRadius:6,fontSize:13,cursor:"pointer",border:o===n?"none":"1px solid #e2e8f0",background:o===n?"#1a5fd8":"#fff",color:o===n?"#fff":"#475569"},children:o+1},o)}),t.jsx("button",{onClick:()=>i(e=>Math.min(s-1,e+1)),disabled:n===s-1,style:{padding:"6px 14px",borderRadius:6,border:"1px solid #e2e8f0",background:"#fff",cursor:"pointer",fontSize:13},children:"다음"})]})]})}export{C as default};
|
||||
@ -1 +1 @@
|
||||
import{c as u,r as d,j as e}from"./index-ChpGil2q.js";const h=()=>localStorage.getItem("admin_token");function f(){const m=u(),i=JSON.parse(localStorage.getItem("admin_user")||"{}"),[r,n]=d.useState({currentPassword:"",newPassword:"",confirmPassword:""}),[t,o]=d.useState(null),[l,c]=d.useState(!1),p=async()=>{if(r.newPassword!==r.confirmPassword){o({text:"새 비밀번호가 일치하지 않습니다.",type:"error"});return}if(r.newPassword.length<8){o({text:"비밀번호는 8자 이상이어야 합니다.",type:"error"});return}c(!0);const s=await fetch("/api/admin/password",{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${h()}`},body:JSON.stringify({currentPassword:r.currentPassword,newPassword:r.newPassword})}),a=await s.json();c(!1),s.ok?(o({text:"비밀번호가 변경되었습니다. 다시 로그인해주세요.",type:"success"}),n({currentPassword:"",newPassword:"",confirmPassword:""}),setTimeout(()=>{localStorage.removeItem("admin_token"),m("/admin/login")},2e3)):o({text:a.message||"변경 실패",type:"error"})};return e.jsxs("div",{style:{maxWidth:520},children:[e.jsxs("div",{className:"admin-card",style:{marginBottom:20},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{children:"👤 계정 정보"})}),e.jsx("div",{style:{display:"grid",gap:12},children:[["아이디",i.username],["표시 이름",i.displayName||"-"]].map(([s,a])=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[e.jsx("span",{style:{fontSize:12,fontWeight:600,color:"#64748b",width:80},children:s}),e.jsx("span",{style:{fontSize:14},children:a})]},s))})]}),e.jsxs("div",{className:"admin-card",children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{children:"🔒 비밀번호 변경"})}),t&&e.jsx("div",{style:{padding:"10px 14px",borderRadius:7,marginBottom:16,fontSize:13,background:t.type==="error"?"#fff1f2":"#f0fdf4",color:t.type==="error"?"#dc2626":"#16a34a",border:`1px solid ${t.type==="error"?"#fecaca":"#bbf7d0"}`},children:t.text}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:"현재 비밀번호"}),e.jsx("input",{type:"password",className:"form-control",value:r.currentPassword,onChange:s=>n(a=>({...a,currentPassword:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:"새 비밀번호"}),e.jsx("input",{type:"password",className:"form-control",value:r.newPassword,placeholder:"8자 이상",onChange:s=>n(a=>({...a,newPassword:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:"새 비밀번호 확인"}),e.jsx("input",{type:"password",className:"form-control",value:r.confirmPassword,onChange:s=>n(a=>({...a,confirmPassword:s.target.value}))})]}),e.jsx("button",{className:"btn btn-primary",onClick:p,disabled:l||!r.currentPassword||!r.newPassword,children:l?"변경 중...":"비밀번호 변경"})]})]})}export{f as default};
|
||||
import{c as u,r as d,j as e}from"./index-B5QEzx5R.js";const h=()=>localStorage.getItem("admin_token");function f(){const m=u(),i=JSON.parse(localStorage.getItem("admin_user")||"{}"),[r,n]=d.useState({currentPassword:"",newPassword:"",confirmPassword:""}),[t,o]=d.useState(null),[l,c]=d.useState(!1),p=async()=>{if(r.newPassword!==r.confirmPassword){o({text:"새 비밀번호가 일치하지 않습니다.",type:"error"});return}if(r.newPassword.length<8){o({text:"비밀번호는 8자 이상이어야 합니다.",type:"error"});return}c(!0);const s=await fetch("/api/admin/password",{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${h()}`},body:JSON.stringify({currentPassword:r.currentPassword,newPassword:r.newPassword})}),a=await s.json();c(!1),s.ok?(o({text:"비밀번호가 변경되었습니다. 다시 로그인해주세요.",type:"success"}),n({currentPassword:"",newPassword:"",confirmPassword:""}),setTimeout(()=>{localStorage.removeItem("admin_token"),m("/admin/login")},2e3)):o({text:a.message||"변경 실패",type:"error"})};return e.jsxs("div",{style:{maxWidth:520},children:[e.jsxs("div",{className:"admin-card",style:{marginBottom:20},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{children:"👤 계정 정보"})}),e.jsx("div",{style:{display:"grid",gap:12},children:[["아이디",i.username],["표시 이름",i.displayName||"-"]].map(([s,a])=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[e.jsx("span",{style:{fontSize:12,fontWeight:600,color:"#64748b",width:80},children:s}),e.jsx("span",{style:{fontSize:14},children:a})]},s))})]}),e.jsxs("div",{className:"admin-card",children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{children:"🔒 비밀번호 변경"})}),t&&e.jsx("div",{style:{padding:"10px 14px",borderRadius:7,marginBottom:16,fontSize:13,background:t.type==="error"?"#fff1f2":"#f0fdf4",color:t.type==="error"?"#dc2626":"#16a34a",border:`1px solid ${t.type==="error"?"#fecaca":"#bbf7d0"}`},children:t.text}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:"현재 비밀번호"}),e.jsx("input",{type:"password",className:"form-control",value:r.currentPassword,onChange:s=>n(a=>({...a,currentPassword:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:"새 비밀번호"}),e.jsx("input",{type:"password",className:"form-control",value:r.newPassword,placeholder:"8자 이상",onChange:s=>n(a=>({...a,newPassword:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:"새 비밀번호 확인"}),e.jsx("input",{type:"password",className:"form-control",value:r.confirmPassword,onChange:s=>n(a=>({...a,confirmPassword:s.target.value}))})]}),e.jsx("button",{className:"btn btn-primary",onClick:p,disabled:l||!r.currentPassword||!r.newPassword,children:l?"변경 중...":"비밀번호 변경"})]})]})}export{f as default};
|
||||
@ -1 +0,0 @@
|
||||
.inner-page{padding-top:var(--header-h)}.page-hero{background:linear-gradient(135deg,var(--secondary),var(--primary-dark));padding:60px 0;color:#fff}.page-hero-title{font-size:40px;font-weight:900;margin:8px 0 12px}.page-hero p{color:#ffffffbf;font-size:16px}
|
||||
@ -0,0 +1 @@
|
||||
.inner-page{padding-top:var(--header-h)}.page-hero{background:linear-gradient(135deg,var(--secondary),var(--primary-dark));padding:60px 0;color:#fff}.page-hero-title{font-size:40px;font-weight:900;margin:8px 0 12px}.page-hero p{color:#ffffffbf;font-size:16px}.prose{color:var(--gray-700);line-height:1.8;font-size:15px}.prose h2{font-size:18px;font-weight:700;color:var(--gray-900);margin:32px 0 12px;border-left:4px solid var(--accent);padding-left:12px}.prose p{margin-bottom:14px}.prose ul{margin:0 0 14px 20px}.prose ul li{margin-bottom:6px}.prose a{color:var(--accent)}.policy-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px}.policy-table th,.policy-table td{padding:10px 14px;border:1px solid var(--gray-200)}.policy-table th{background:var(--gray-50);font-weight:600;color:var(--gray-700);text-align:left}.policy-footer{margin-top:40px;padding:20px;background:var(--gray-50);border-radius:10px;font-size:13px;color:var(--gray-500);line-height:1.8}
|
||||
@ -1 +0,0 @@
|
||||
import{r as i,j as e}from"./index-ChpGil2q.js";import{a as j}from"./index-DcNlVx-A.js";function y(){const[a,t]=i.useState({name:"",email:"",phone:"",category:"제품문의",subject:"",content:"",agreePrivacy:!1}),[r,l]=i.useState(null),[o,d]=i.useState(!1),s=n=>{const{name:c,value:m,type:p,checked:x}=n.target;t(u=>({...u,[c]:p==="checkbox"?x:m}))},h=async n=>{if(n.preventDefault(),!a.agreePrivacy){l({type:"error",msg:"개인정보 수집·이용에 동의해주세요."});return}d(!0);try{await j.post("/api/inquiry",a),l({type:"success",msg:"문의가 접수되었습니다. 빠른 시일 내에 연락드리겠습니다."}),t({name:"",email:"",phone:"",category:"제품문의",subject:"",content:"",agreePrivacy:!1})}catch{l({type:"error",msg:"문의 접수 중 오류가 발생했습니다. 잠시 후 다시 시도해주세요."})}finally{d(!1)}};return e.jsxs("main",{id:"main-content",className:"contact-page",children:[e.jsx("div",{className:"page-hero",children:e.jsxs("div",{className:"container",children:[e.jsx("span",{className:"section-label",children:"Contact Us"}),e.jsx("h1",{className:"page-hero-title",children:"문의하기"}),e.jsx("p",{children:"GUARDiA ITSM 도입 문의 및 제품 상담을 받아드립니다."})]})}),e.jsx("section",{className:"section",children:e.jsxs("div",{className:"container contact-grid",children:[e.jsxs("div",{className:"contact-info",children:[e.jsx("h2",{children:"연락처 정보"}),[{icon:"📞",label:"대표전화",value:"02-000-0000"},{icon:"✉️",label:"이메일",value:"info@zioinfo.co.kr"},{icon:"🕐",label:"운영시간",value:"평일 09:00 ~ 18:00"},{icon:"📍",label:"주소",value:"서울특별시"}].map((n,c)=>e.jsxs("div",{className:"info-item",children:[e.jsx("span",{className:"info-icon",children:n.icon}),e.jsxs("div",{children:[e.jsx("strong",{children:n.label}),e.jsx("p",{children:n.value})]})]},c))]}),e.jsxs("form",{className:"contact-form card",onSubmit:h,children:[e.jsx("h2",{children:"온라인 문의"}),r&&e.jsxs("div",{className:`form-alert ${r.type}`,children:[r.type==="success"?"✅":"❌"," ",r.msg]}),e.jsxs("div",{className:"form-row",children:[e.jsxs("div",{className:"form-group",children:[e.jsxs("label",{htmlFor:"name",children:["성함 ",e.jsx("span",{className:"required",children:"*"})]}),e.jsx("input",{id:"name",name:"name",type:"text",required:!0,value:a.name,onChange:s,placeholder:"홍길동"})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"phone",children:"연락처"}),e.jsx("input",{id:"phone",name:"phone",type:"tel",value:a.phone,onChange:s,placeholder:"010-0000-0000"})]})]}),e.jsxs("div",{className:"form-row",children:[e.jsxs("div",{className:"form-group",children:[e.jsxs("label",{htmlFor:"email",children:["이메일 ",e.jsx("span",{className:"required",children:"*"})]}),e.jsx("input",{id:"email",name:"email",type:"email",required:!0,value:a.email,onChange:s,placeholder:"your@email.com"})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"category",children:"문의 유형"}),e.jsxs("select",{id:"category",name:"category",value:a.category,onChange:s,children:[e.jsx("option",{children:"제품문의"}),e.jsx("option",{children:"데모 신청"}),e.jsx("option",{children:"기술지원"}),e.jsx("option",{children:"사업제안"}),e.jsx("option",{children:"채용문의"}),e.jsx("option",{children:"기타"})]})]})]}),e.jsxs("div",{className:"form-group",children:[e.jsxs("label",{htmlFor:"subject",children:["제목 ",e.jsx("span",{className:"required",children:"*"})]}),e.jsx("input",{id:"subject",name:"subject",type:"text",required:!0,value:a.subject,onChange:s,placeholder:"문의 제목을 입력해주세요"})]}),e.jsxs("div",{className:"form-group",children:[e.jsxs("label",{htmlFor:"content",children:["문의 내용 ",e.jsx("span",{className:"required",children:"*"})]}),e.jsx("textarea",{id:"content",name:"content",rows:6,required:!0,value:a.content,onChange:s,placeholder:"문의 내용을 자세히 작성해주세요."})]}),e.jsxs("label",{className:"privacy-agree",children:[e.jsx("input",{type:"checkbox",name:"agreePrivacy",checked:a.agreePrivacy,onChange:s}),e.jsxs("span",{children:["개인정보 수집·이용에 동의합니다. ",e.jsx("a",{href:"/privacy",target:"_blank",children:"[보기]"})]})]}),e.jsx("button",{type:"submit",className:"btn btn-primary btn-lg",style:{width:"100%"},disabled:o,children:o?"전송 중...":"문의 접수하기"})]})]})})]})}export{y as default};
|
||||
@ -0,0 +1 @@
|
||||
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f4ff,#e8f0fe);padding:40px 16px}.auth-box{background:#fff;border-radius:16px;box-shadow:0 4px 32px #0000001a;padding:40px 40px 32px;width:100%;max-width:440px}.auth-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--primary, #1a3a6b);font-weight:700;font-size:16px;margin-bottom:28px}.auth-tabs{display:flex;border-bottom:2px solid #e2e8f0;margin-bottom:24px}.auth-tab{flex:1;padding:10px;border:none;background:none;font-size:15px;font-weight:600;color:#94a3b8;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.auth-tab.active{color:var(--accent, #1a5fd8);border-bottom-color:var(--accent, #1a5fd8)}.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form .form-group{display:flex;flex-direction:column;gap:6px}.auth-form label{font-size:13px;font-weight:600;color:#374151}.auth-form .required{color:#ef4444}.auth-form input{padding:10px 14px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;color:#1e293b;transition:border-color .2s;outline:none}.auth-form input:focus{border-color:var(--accent, #1a5fd8)}.btn-full{width:100%;justify-content:center}.sns-divider{display:flex;align-items:center;gap:12px;font-size:12px;color:#94a3b8;margin:4px 0}.sns-divider:before,.sns-divider:after{content:"";flex:1;height:1px;background:#e2e8f0}.sns-buttons{display:flex;flex-direction:column;gap:8px}.sns-btn{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:8px;border:1.5px solid #e2e8f0;font-size:14px;font-weight:600;cursor:pointer;background:#fff;transition:all .2s}.sns-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.sns-kakao{border-color:#fee500;background:#fee500;color:#191919}.sns-naver{border-color:#03c75a;background:#03c75a;color:#fff}.sns-google{border-color:#e2e8f0;color:#374151}.sns-icon{width:20px;text-align:center;font-weight:900}.auth-switch{font-size:13px;color:#64748b;text-align:center;margin:0}.link-btn{background:none;border:none;color:var(--accent, #1a5fd8);font-weight:600;cursor:pointer;text-decoration:underline;font-size:inherit}.auth-terms{font-size:11px;color:#94a3b8;text-align:center;margin-top:20px}.auth-terms a{color:#64748b}.member-guard{position:relative}.member-guard-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:inherit;z-index:10;gap:12px}.member-guard-icon{font-size:36px}.member-guard-text{font-size:15px;font-weight:600;color:#1e293b}.member-guard-sub{font-size:13px;color:#64748b}@media (max-width: 480px){.auth-box{padding:28px 20px 24px}}
|
||||
@ -1,4 +1,4 @@
|
||||
import{j as e,b as o,a as n,r as h,N as x}from"./index-ChpGil2q.js";/* empty css */const p=[{path:"/news/newsroom",label:"뉴스룸"},{path:"/news/blog",label:"기술 블로그"}];function d({title:a}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"page-hero",children:e.jsxs("div",{className:"container",children:[e.jsx("span",{className:"section-label",children:"News"}),e.jsx("h1",{className:"page-hero-title",children:a})]})}),e.jsx("nav",{className:"sub-nav",children:e.jsx("div",{className:"container",children:p.map(t=>e.jsx(x,{to:t.path,className:({isActive:i})=>"sub-nav-item"+(i?" active":""),children:t.label},t.path))})})]})}const l=[{id:1,cat:"제품 출시",date:"2026.05.15",title:"GUARDiA ITSM v2.0 정식 출시 — AI ChatOps 오케스트레이션 플랫폼",summary:"메신저 한 줄 명령으로 1,000개+ 공공기관 레거시 인프라를 자동 운영하는 GUARDiA ITSM v2.0이 정식 출시되었습니다. 신규 기능으로 AI 자연어 명령, 에이전트리스 배포 엔진, 멀티테넌트 지원이 추가됐습니다.",content:`GUARDiA ITSM v2.0은 공공기관의 레거시 IT 인프라 운영 자동화를 위한 AI 기반 플랫폼입니다.
|
||||
import{j as e,b as o,a as n,r as h,N as x}from"./index-B5QEzx5R.js";/* empty css */const p=[{path:"/news/newsroom",label:"뉴스룸"},{path:"/news/blog",label:"기술 블로그"}];function d({title:a}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"page-hero",children:e.jsxs("div",{className:"container",children:[e.jsx("span",{className:"section-label",children:"News"}),e.jsx("h1",{className:"page-hero-title",children:a})]})}),e.jsx("nav",{className:"sub-nav",children:e.jsx("div",{className:"container",children:p.map(t=>e.jsx(x,{to:t.path,className:({isActive:i})=>"sub-nav-item"+(i?" active":""),children:t.label},t.path))})})]})}const l=[{id:1,cat:"제품 출시",date:"2026.05.15",title:"GUARDiA ITSM v2.0 정식 출시 — AI ChatOps 오케스트레이션 플랫폼",summary:"메신저 한 줄 명령으로 1,000개+ 공공기관 레거시 인프라를 자동 운영하는 GUARDiA ITSM v2.0이 정식 출시되었습니다. 신규 기능으로 AI 자연어 명령, 에이전트리스 배포 엔진, 멀티테넌트 지원이 추가됐습니다.",content:`GUARDiA ITSM v2.0은 공공기관의 레거시 IT 인프라 운영 자동화를 위한 AI 기반 플랫폼입니다.
|
||||
|
||||
주요 신기능:
|
||||
- AI ChatOps: 메신저 자연어 명령 → Ollama LLM 파싱 → 자동 실행
|
||||
@ -1 +1 @@
|
||||
import{j as e,L as t}from"./index-ChpGil2q.js";function i(){return e.jsxs("main",{style:{paddingTop:"var(--header-h)",minHeight:"60vh",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:"16px",textAlign:"center"},children:[e.jsx("div",{style:{fontSize:"72px"},children:"404"}),e.jsx("h1",{style:{fontSize:"24px",fontWeight:"700"},children:"페이지를 찾을 수 없습니다"}),e.jsx("p",{style:{color:"var(--gray-600)"},children:"요청하신 페이지가 존재하지 않거나 이동되었습니다."}),e.jsx(t,{to:"/",className:"btn btn-primary",children:"홈으로 돌아가기"})]})}export{i as default};
|
||||
import{j as e,L as t}from"./index-B5QEzx5R.js";function i(){return e.jsxs("main",{style:{paddingTop:"var(--header-h)",minHeight:"60vh",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:"16px",textAlign:"center"},children:[e.jsx("div",{style:{fontSize:"72px"},children:"404"}),e.jsx("h1",{style:{fontSize:"24px",fontWeight:"700"},children:"페이지를 찾을 수 없습니다"}),e.jsx("p",{style:{color:"var(--gray-600)"},children:"요청하신 페이지가 존재하지 않거나 이동되었습니다."}),e.jsx(t,{to:"/",className:"btn btn-primary",children:"홈으로 돌아가기"})]})}export{i as default};
|
||||
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-B5QEzx5R.js";/* empty css */import{u as i}from"./useSeoMeta-SwLKmP5e.js";function c(){return i({title:"개인정보처리방침",description:"(주)지오정보기술 개인정보처리방침. 수집 항목, 보유 기간, 이용자 권리, 개인정보 보호책임자 안내.",path:"/privacy"}),s.jsx("main",{id:"main-content",className:"inner-page",children:s.jsx("section",{className:"section",children:s.jsxs("div",{className:"container",style:{maxWidth:"800px"},children:[s.jsxs("div",{className:"section-header",children:[s.jsx("span",{className:"section-label",children:"Privacy Policy"}),s.jsx("h1",{className:"section-title",children:"개인정보처리방침"}),s.jsx("p",{className:"section-desc",style:{fontSize:"13px",color:"var(--gray-500)"},children:"시행일자: 2026년 01월 01일 | 최종 수정: 2026년 05월 31일"})]}),s.jsxs("div",{className:"prose",children:[s.jsx("p",{children:'(주)지오정보기술(이하 "회사")은 이용자의 개인정보를 중요시하며, 「개인정보 보호법」 및 관련 법령을 준수합니다.'}),s.jsx("h2",{children:"제1조 (개인정보의 수집 항목 및 목적)"}),s.jsxs("table",{className:"policy-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"구분"}),s.jsx("th",{children:"수집 항목"}),s.jsx("th",{children:"수집 목적"})]})}),s.jsxs("tbody",{children:[s.jsxs("tr",{children:[s.jsx("td",{children:"회원가입"}),s.jsx("td",{children:"이름, 이메일, 비밀번호, 연락처, 소속"}),s.jsx("td",{children:"회원 식별, 서비스 제공"})]}),s.jsxs("tr",{children:[s.jsx("td",{children:"문의 접수"}),s.jsx("td",{children:"이름, 이메일, 연락처, 문의 내용"}),s.jsx("td",{children:"문의 처리, 답변 발송"})]}),s.jsxs("tr",{children:[s.jsx("td",{children:"채용 지원"}),s.jsx("td",{children:"이름, 이메일, 연락처, 이력서"}),s.jsx("td",{children:"채용 심사, 합격자 통보"})]}),s.jsxs("tr",{children:[s.jsx("td",{children:"서비스 이용"}),s.jsx("td",{children:"접속 IP, 쿠키, 방문 이력"}),s.jsx("td",{children:"서비스 개선, 보안"})]})]})]}),s.jsx("h2",{children:"제2조 (개인정보의 보유 및 이용 기간)"}),s.jsxs("ul",{children:[s.jsx("li",{children:"회원 정보: 회원 탈퇴 시 즉시 파기"}),s.jsx("li",{children:"문의/상담 이력: 처리 완료 후 3년"}),s.jsx("li",{children:"채용 서류: 채용 완료 후 6개월 (불합격자 즉시 파기 원칙)"}),s.jsx("li",{children:"법령에 의한 보존이 필요한 경우 해당 기간"})]}),s.jsx("h2",{children:"제3조 (개인정보의 제3자 제공)"}),s.jsx("p",{children:"회사는 이용자의 개인정보를 원칙적으로 외부에 제공하지 않습니다. 단, 이용자의 동의가 있거나 법령에 의한 경우에는 예외로 합니다."}),s.jsx("h2",{children:"제4조 (개인정보 처리의 위탁)"}),s.jsx("p",{children:"현재 개인정보 처리를 위탁하는 업무는 없습니다. 추후 위탁 발생 시 사전 고지합니다."}),s.jsx("h2",{children:"제5조 (이용자의 권리)"}),s.jsxs("ul",{children:[s.jsx("li",{children:"개인정보 열람, 정정, 삭제, 처리정지 요청 가능"}),s.jsx("li",{children:"요청 방법: 이메일(info@zioinfo.co.kr) 또는 전화(031-483-1766)"}),s.jsx("li",{children:"처리 기간: 요청 후 10일 이내"})]}),s.jsx("h2",{children:"제6조 (개인정보의 파기)"}),s.jsx("p",{children:"보유 기간 만료 시 지체 없이 파기합니다. 전자 파일은 복구 불가능한 방법으로 삭제하며, 서면은 분쇄 또는 소각합니다."}),s.jsx("h2",{children:"제7조 (쿠키 사용)"}),s.jsx("p",{children:"홈페이지 이용 편의를 위해 쿠키를 사용합니다. 브라우저 설정에서 쿠키 허용 여부를 조정할 수 있습니다."}),s.jsx("h2",{children:"제8조 (개인정보 보호책임자)"}),s.jsx("table",{className:"policy-table",children:s.jsxs("tbody",{children:[s.jsxs("tr",{children:[s.jsx("td",{children:"성명"}),s.jsx("td",{children:"홍영택"})]}),s.jsxs("tr",{children:[s.jsx("td",{children:"직책"}),s.jsx("td",{children:"대표이사"})]}),s.jsxs("tr",{children:[s.jsx("td",{children:"연락처"}),s.jsx("td",{children:"031-483-1766"})]}),s.jsxs("tr",{children:[s.jsx("td",{children:"이메일"}),s.jsx("td",{children:"info@zioinfo.co.kr"})]})]})}),s.jsx("h2",{children:"제9조 (개인정보 침해 신고)"}),s.jsxs("ul",{children:[s.jsx("li",{children:"개인정보보호위원회 개인정보 침해 신고센터: (국번없이) 182"}),s.jsx("li",{children:"대검찰청 사이버수사과: (국번없이) 1301"}),s.jsx("li",{children:"경찰청 사이버안전국: (국번없이) 182"})]}),s.jsxs("p",{className:"policy-footer",children:["본 방침은 2026년 01월 01일부터 시행됩니다.",s.jsx("br",{}),"변경 시 홈페이지를 통해 공지합니다."]})]})]})})})}export{c as default};
|
||||
@ -0,0 +1 @@
|
||||
import{j as a,L as n}from"./index-B5QEzx5R.js";/* empty css */import{u as s}from"./useSeoMeta-SwLKmP5e.js";const p=[{title:"홈",icon:"🏠",links:[{label:"메인 홈페이지",path:"/"}]},{title:"회사소개",icon:"🏢",links:[{label:"CEO 인사말",path:"/company/greeting"},{label:"연혁",path:"/company/history"},{label:"조직도",path:"/company/organization"},{label:"CI 소개",path:"/company/ci"},{label:"오시는 길",path:"/company/location"}]},{title:"솔루션",icon:"🛡️",links:[{label:"GUARDiA ITSM",path:"/solution/guardia",badge:"NEW"},{label:"ERP 솔루션",path:"/solution/erp"},{label:"CRM 솔루션",path:"/solution/crm"},{label:"BI 솔루션",path:"/solution/bi"}]},{title:"사업실적",icon:"📊",links:[{label:"구축 레퍼런스",path:"/business/reference"},{label:"파트너",path:"/business/partner"}]},{title:"고객지원",icon:"💬",links:[{label:"공지사항",path:"/support/notice"},{label:"FAQ",path:"/support/faq"},{label:"카탈로그",path:"/support/catalog"},{label:"문의하기",path:"/support/contact"}]},{title:"채용",icon:"👥",links:[{label:"채용공고",path:"/recruit/jobs"},{label:"복리후생",path:"/recruit/welfare"},{label:"지원하기",path:"/recruit/apply"}]},{title:"뉴스",icon:"📰",links:[{label:"뉴스룸",path:"/news/newsroom"},{label:"기술 블로그",path:"/news/blog"}]},{title:"회원",icon:"🔑",links:[{label:"로그인 / 회원가입",path:"/login"}]},{title:"정책",icon:"📋",links:[{label:"개인정보처리방침",path:"/privacy"},{label:"이용약관",path:"/terms"},{label:"사이트맵",path:"/sitemap"}]}];function h(){return s({title:"사이트맵",description:"(주)지오정보기술 홈페이지 전체 메뉴 안내. 회사소개, 솔루션, 사업실적, 고객지원, 채용, 뉴스 등 모든 페이지를 확인하세요.",path:"/sitemap"}),a.jsx("main",{id:"main-content",className:"inner-page",children:a.jsx("section",{className:"section",children:a.jsxs("div",{className:"container",style:{maxWidth:"960px"},children:[a.jsxs("div",{className:"section-header",children:[a.jsx("span",{className:"section-label",children:"Sitemap"}),a.jsx("h1",{className:"section-title",children:"사이트맵"}),a.jsx("p",{className:"section-desc",children:"(주)지오정보기술 홈페이지 전체 메뉴 안내"})]}),a.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:"24px",marginTop:"40px"},children:p.map((l,t)=>a.jsxs("div",{style:{background:"#fff",borderRadius:"12px",padding:"24px",boxShadow:"0 2px 12px rgba(0,0,0,.06)",border:"1px solid var(--gray-200)"},children:[a.jsxs("h2",{style:{fontSize:"16px",fontWeight:"700",color:"var(--gray-900)",marginBottom:"16px",display:"flex",alignItems:"center",gap:"8px"},children:[a.jsx("span",{children:l.icon})," ",l.title]}),a.jsx("ul",{style:{listStyle:"none",display:"flex",flexDirection:"column",gap:"10px"},children:l.links.map((e,i)=>a.jsx("li",{children:a.jsxs(n,{to:e.path,style:{color:"var(--primary)",textDecoration:"none",fontSize:"14px",display:"flex",alignItems:"center",gap:"6px"},children:[a.jsx("span",{style:{color:"var(--gray-400)",fontSize:"12px"},children:"›"}),e.label,e.badge&&a.jsx("span",{style:{fontSize:"10px",padding:"1px 6px",background:"var(--accent)",color:"#fff",borderRadius:"8px",fontWeight:"700"},children:e.badge})]})},i))})]},t))})]})})})}export{h as default};
|
||||
68
backend/src/main/resources/static/assets/index-B5QEzx5R.js
Normal file
@ -0,0 +1 @@
|
||||
import{r as $}from"./index-B5QEzx5R.js";const u="https://zioinfo.co.kr",d="(주)지오정보기술";function S({title:a,description:o,path:m="",image:c="/logo.png",keywords:r=""}){$.useEffect(()=>{const l=a?`${a} | ${d}`:d,i=`${u}${m}`,p=c.startsWith("http")?c:`${u}${c}`;document.title=l;const t=(s,f,g)=>{let n=document.querySelector(s);if(!n){n=document.createElement("meta");const[h,E]=s.replace("meta[","").replace("]","").split("=");n.setAttribute(h,E.replace(/"/g,"")),document.head.appendChild(n)}n.setAttribute(f,g)};let e=document.querySelector('link[rel="canonical"]');e||(e=document.createElement("link"),e.rel="canonical",document.head.appendChild(e)),e.href=i,t('meta[name="description"]',"content",o),r&&t('meta[name="keywords"]',"content",r),t('meta[property="og:title"]',"content",l),t('meta[property="og:description"]',"content",o),t('meta[property="og:url"]',"content",i),t('meta[property="og:image"]',"content",p),t('meta[name="twitter:title"]',"content",l),t('meta[name="twitter:description"]',"content",o),t('meta[name="twitter:image"]',"content",p)},[a,o,m,c,r])}export{S as u};
|
||||
@ -3,17 +3,91 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="(주)지오정보기술 — AI 기반 레거시 인프라 자율 운영 플랫폼 GUARDiA ITSM 및 ERP·CRM·BI 솔루션">
|
||||
<meta name="keywords" content="지오정보기술, GUARDiA, ITSM, 인프라자동화, 공공기관, ERP, ChatOps">
|
||||
<meta property="og:title" content="(주)지오정보기술">
|
||||
<meta property="og:description" content="AI 기반 레거시 인프라 자율 운영 플랫폼 GUARDiA ITSM">
|
||||
|
||||
<!-- 기본 SEO -->
|
||||
<title>(주)지오정보기술 — AI 기반 인프라 자율 운영 플랫폼 GUARDiA ITSM</title>
|
||||
<meta name="description" content="(주)지오정보기술은 AI 기반 레거시 인프라 자율 운영 플랫폼 GUARDiA ITSM을 개발합니다. 1,000개 이상 공공기관 IT 인프라를 메신저 한 줄 명령으로 자동 운영하세요.">
|
||||
<meta name="keywords" content="지오정보기술, GUARDiA, ITSM, AI인프라자동화, 공공기관IT, 레거시인프라, ChatOps, 에이전트리스배포, ERP, CRM, SI, 안산IT기업">
|
||||
<meta name="author" content="(주)지오정보기술">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="canonical" href="https://zioinfo.co.kr/">
|
||||
|
||||
<!-- Open Graph (카카오·페이스북·네이버) -->
|
||||
<meta property="og:type" content="website">
|
||||
<title>(주)지오정보기술</title>
|
||||
<link rel="icon" type="image/png" href="/favicon.ico">
|
||||
<meta property="og:site_name" content="(주)지오정보기술">
|
||||
<meta property="og:title" content="(주)지오정보기술 — GUARDiA ITSM AI 인프라 자동화">
|
||||
<meta property="og:description" content="메신저 한 줄 명령으로 공공기관 레거시 서버를 자동 운영. GUARDiA ITSM으로 IT 운영 혁신을 경험하세요.">
|
||||
<meta property="og:url" content="https://zioinfo.co.kr/">
|
||||
<meta property="og:image" content="https://zioinfo.co.kr/logo.png">
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="630">
|
||||
<meta property="og:locale" content="ko_KR">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="(주)지오정보기술 — GUARDiA ITSM">
|
||||
<meta name="twitter:description" content="AI 기반 레거시 인프라 자율 운영 플랫폼. 공공기관 IT 운영 자동화의 새로운 기준.">
|
||||
<meta name="twitter:image" content="https://zioinfo.co.kr/logo.png">
|
||||
|
||||
<!-- 네이버 서치어드바이저 인증 (등록 후 content 값 교체) -->
|
||||
<!-- <meta name="naver-site-verification" content="YOUR_NAVER_CODE"> -->
|
||||
<!-- 구글 서치콘솔 인증 (등록 후 content 값 교체) -->
|
||||
<!-- <meta name="google-site-verification" content="YOUR_GOOGLE_CODE"> -->
|
||||
|
||||
<!-- JSON-LD: 기업 정보 -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "(주)지오정보기술",
|
||||
"alternateName": "ZioInfo",
|
||||
"url": "https://zioinfo.co.kr",
|
||||
"logo": "https://zioinfo.co.kr/logo.png",
|
||||
"description": "AI 기반 레거시 인프라 자율 운영 플랫폼 GUARDiA ITSM 및 ERP·CRM·BI 솔루션 전문 IT 기업",
|
||||
"foundingDate": "2000",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "광덕4로 220 오피스브이 578호",
|
||||
"addressLocality": "안산시 단원구",
|
||||
"addressRegion": "경기도",
|
||||
"postalCode": "15440",
|
||||
"addressCountry": "KR"
|
||||
},
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"telephone": "+82-31-483-1766",
|
||||
"contactType": "customer service",
|
||||
"availableLanguage": "Korean"
|
||||
},
|
||||
"founder": { "@type": "Person", "name": "홍영택" }
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- JSON-LD: 웹사이트 -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "(주)지오정보기술",
|
||||
"url": "https://zioinfo.co.kr",
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": "https://zioinfo.co.kr/support/faq?q={search_term_string}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="/logo.png">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<script type="module" crossorigin src="/assets/index-ChpGil2q.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-B5QEzx5R.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-Dk81znn6.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
24
backend/src/main/resources/static/robots.txt
Normal file
@ -0,0 +1,24 @@
|
||||
# robots.txt — (주)지오정보기술
|
||||
# https://zioinfo.co.kr
|
||||
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
# 관리자 페이지 크롤링 차단
|
||||
Disallow: /admin/
|
||||
Disallow: /api/
|
||||
|
||||
# 크롤러별 개별 설정
|
||||
User-agent: Googlebot
|
||||
Allow: /
|
||||
Crawl-delay: 1
|
||||
|
||||
User-agent: Yeti
|
||||
Allow: /
|
||||
Crawl-delay: 1
|
||||
|
||||
User-agent: Baiduspider
|
||||
Disallow: /
|
||||
|
||||
# 사이트맵 위치
|
||||
Sitemap: https://zioinfo.co.kr/sitemap.xml
|
||||
165
backend/src/main/resources/static/sitemap.xml
Normal file
@ -0,0 +1,165 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<!-- 홈 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
|
||||
<!-- 솔루션 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/solution/guardia</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/solution/erp</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/solution/crm</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/solution/bi</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- 회사소개 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/company/greeting</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/company/history</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/company/organization</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/company/ci</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/company/location</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- 사업실적 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/business/reference</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/business/partner</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- 고객지원 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/support/notice</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/support/faq</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/support/catalog</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/support/contact</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
|
||||
<!-- 채용 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/recruit/jobs</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/recruit/welfare</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/recruit/apply</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- 뉴스 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/news/newsroom</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/news/blog</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- 정책 -->
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/privacy</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.4</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/terms</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.4</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://zioinfo.co.kr/sitemap</loc>
|
||||
<lastmod>2026-05-31</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
|
||||
</urlset>
|
||||
BIN
backend/src/main/resources/static/ziologo.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
backend/src/main/resources/static/지오정보기술로고.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
backend/src/main/resources/static/지오정보기술사옥전경.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
frontend/public/CI.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
frontend/public/ziologo.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
frontend/public/지오정보기술로고.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
frontend/public/지오정보기술사옥전경.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
@ -105,8 +105,8 @@ export default function Header() {
|
||||
<div className="header-inner container">
|
||||
{/* 로고 */}
|
||||
<Link to="/" className="logo" aria-label="(주)지오정보기술 홈으로">
|
||||
<img src="/logo.png" alt="(주)지오정보기술 로고" height="40"
|
||||
onError={e => { e.target.style.display='none'; e.target.nextSibling.style.display='flex'; }} />
|
||||
<img src="/지오정보기술로고.png" alt="(주)지오정보기술 로고" height="40"
|
||||
onError={e => { e.target.src='/ziologo.png'; e.target.onerror = () => { e.target.style.display='none'; e.target.nextSibling.style.display='flex'; }; }} />
|
||||
<span className="logo-text" style={{display:'none'}}>
|
||||
<strong>Zio</strong>Info
|
||||
</span>
|
||||
|
||||
@ -82,6 +82,7 @@
|
||||
.ci-section { margin-bottom: 56px; }
|
||||
.ci-title { font-size: 20px; font-weight: 800; color: var(--gray-900); margin-bottom: 24px; padding-bottom: 12px; border-bottom: 2px solid var(--gray-200); }
|
||||
.ci-logo-wrap { display: flex; gap: 24px; flex-wrap: wrap; }
|
||||
.ci-logo-showcase { display: flex; gap: 24px; flex-wrap: wrap; }
|
||||
.ci-logo-box {
|
||||
flex: 1; min-width: 200px; padding: 48px 32px; border-radius: 12px;
|
||||
display: flex; flex-direction: column; align-items: center; gap: 16px;
|
||||
@ -92,7 +93,7 @@
|
||||
.ci-logo-mark { font-size: 32px; font-weight: 900; color: var(--accent); letter-spacing: 4px; }
|
||||
.ci-logo-sub { font-size: 14px; font-weight: 600; color: rgba(255,255,255,.7); letter-spacing: 2px; }
|
||||
.ci-logo-label { font-size: 12px; color: rgba(255,255,255,.5); }
|
||||
.ci-colors { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
|
||||
.ci-colors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
|
||||
.ci-color-card { border: 1px solid var(--gray-200); border-radius: 10px; overflow: hidden; }
|
||||
.ci-color-swatch { height: 100px; }
|
||||
.ci-color-info { padding: 16px; display: flex; flex-direction: column; gap: 4px; }
|
||||
|
||||
@ -46,8 +46,12 @@ function Greeting() {
|
||||
<div className="container" style={{ maxWidth: '860px' }}>
|
||||
<div className="ceo-wrap">
|
||||
<div className="ceo-photo">
|
||||
<div className="ceo-avatar">
|
||||
<span>CEO</span>
|
||||
<div className="ceo-avatar" style={{ overflow: 'hidden', background: 'none', padding: 0 }}>
|
||||
<img
|
||||
src="/지오정보기술사옥전경.png"
|
||||
alt="(주)지오정보기술 사옥 전경"
|
||||
style={{ width: '100%', height: '100%', objectFit: 'cover' }}
|
||||
/>
|
||||
</div>
|
||||
<p className="ceo-name">홍영택</p>
|
||||
<p className="ceo-sign">대표이사</p>
|
||||
@ -290,62 +294,131 @@ function Organization() {
|
||||
|
||||
/* ── CI 소개 ── */
|
||||
function CI() {
|
||||
useSeoMeta({ title: 'CI 소개 — 브랜드 아이덴티티', description: '(주)지오정보기술 CI 소개. AI와 첨단 정보 기술을 기반으로 연결되고 확장되는 미래를 상징하는 기업 이미지를 확인하세요.', path: '/company/ci' });
|
||||
return (
|
||||
<main id="main-content" className="inner-page">
|
||||
<SubNav title="CI 소개" />
|
||||
<section className="section">
|
||||
<div className="container" style={{ maxWidth: '900px' }}>
|
||||
<div className="container" style={{ maxWidth: '960px' }}>
|
||||
<div className="section-header">
|
||||
<span className="section-label">Corporate Identity</span>
|
||||
<h2 className="section-title">브랜드 아이덴티티</h2>
|
||||
<p className="section-desc">지오정보기술의 브랜드는 신뢰·혁신·전문성을 상징합니다</p>
|
||||
<h2 className="section-title">(주)지오정보기술 CI 소개</h2>
|
||||
<p className="section-desc">
|
||||
인공지능(AI)과 첨단 정보 기술을 기반으로 연결되고 확장되는 미래를 상징합니다
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* 로고 */}
|
||||
{/* 메인 로고 */}
|
||||
<div className="ci-section">
|
||||
<h3 className="ci-title">로고 시스템</h3>
|
||||
<div className="ci-logo-wrap">
|
||||
<div className="ci-logo-box dark">
|
||||
<div className="ci-logo-text-wrap">
|
||||
<span className="ci-logo-mark">GEO</span>
|
||||
<span className="ci-logo-sub">정보기술</span>
|
||||
</div>
|
||||
<p className="ci-logo-label">다크 배경용</p>
|
||||
</div>
|
||||
<div className="ci-logo-box light">
|
||||
<div className="ci-logo-text-wrap">
|
||||
<span className="ci-logo-mark" style={{ color: 'var(--primary)' }}>GEO</span>
|
||||
<span className="ci-logo-sub" style={{ color: 'var(--gray-700)' }}>정보기술</span>
|
||||
</div>
|
||||
<h3 className="ci-title">메인 로고</h3>
|
||||
<div className="ci-logo-showcase">
|
||||
<div className="ci-logo-box light" style={{ flex: 1, minHeight: '200px', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', gap: '16px' }}>
|
||||
<img
|
||||
src="/지오정보기술로고.png"
|
||||
alt="(주)지오정보기술 로고"
|
||||
style={{ maxWidth: '320px', width: '100%', objectFit: 'contain' }}
|
||||
/>
|
||||
<p className="ci-logo-label" style={{ color: 'var(--gray-500)' }}>라이트 배경용</p>
|
||||
</div>
|
||||
<div className="ci-logo-box dark" style={{ flex: 1, minHeight: '200px', display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', gap: '16px' }}>
|
||||
<img
|
||||
src="/지오정보기술로고.png"
|
||||
alt="(주)지오정보기술 로고 (다크)"
|
||||
style={{ maxWidth: '320px', width: '100%', objectFit: 'contain', filter: 'brightness(0) invert(1)' }}
|
||||
/>
|
||||
<p className="ci-logo-label">다크 배경용</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 브랜드 컬러 */}
|
||||
{/* CI 심볼 */}
|
||||
<div className="ci-section">
|
||||
<h3 className="ci-title">브랜드 컬러</h3>
|
||||
<h3 className="ci-title">CI 심볼 디자인</h3>
|
||||
<div style={{ display: 'flex', gap: '40px', alignItems: 'flex-start', flexWrap: 'wrap' }}>
|
||||
<div style={{ flex: '0 0 auto' }}>
|
||||
<img
|
||||
src="/CI.jpg"
|
||||
alt="지오정보기술 CI 심볼"
|
||||
style={{ width: '280px', borderRadius: '12px', boxShadow: '0 4px 24px rgba(0,0,0,0.10)', display: 'block' }}
|
||||
/>
|
||||
</div>
|
||||
<div style={{ flex: 1, minWidth: '260px' }}>
|
||||
<h4 style={{ fontSize: '17px', fontWeight: '700', marginBottom: '16px', color: 'var(--gray-800)' }}>디자인 콘셉트 및 상징성</h4>
|
||||
<div style={{ display: 'flex', flexDirection: 'column', gap: '14px' }}>
|
||||
<div style={{ padding: '16px 20px', background: 'var(--gray-50)', borderRadius: '10px', borderLeft: '4px solid var(--primary)' }}>
|
||||
<strong style={{ display: 'block', fontSize: '14px', color: 'var(--primary)', marginBottom: '6px' }}>구조적 결합</strong>
|
||||
<p style={{ fontSize: '14px', color: 'var(--gray-600)', lineHeight: '1.7', margin: 0 }}>
|
||||
기하학적 도형들이 서로 맞물려 있는 형태는 인공지능 알고리즘과 데이터의 정교한 결합, 시스템 간의 통합, 그리고 기술을 통해 구축되는 견고한 지능형 네트워크를 의미합니다.
|
||||
</p>
|
||||
</div>
|
||||
<div style={{ padding: '16px 20px', background: 'var(--gray-50)', borderRadius: '10px', borderLeft: '4px solid var(--accent)' }}>
|
||||
<strong style={{ display: 'block', fontSize: '14px', color: 'var(--accent)', marginBottom: '6px' }}>지향점</strong>
|
||||
<p style={{ fontSize: '14px', color: 'var(--gray-600)', lineHeight: '1.7', margin: 0 }}>
|
||||
서로 다른 방향을 가리키는 도형의 배치는 기존의 틀을 깨고 AI 기술을 통해 끊임없이 확장해 나가는 기업의 도전 정신과 변화하는 디지털 환경을 선도하겠다는 의지를 투영합니다.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* CI 색상 체계 */}
|
||||
<div className="ci-section">
|
||||
<h3 className="ci-title">CI 색상 체계 및 의미</h3>
|
||||
<p style={{ fontSize: '14px', color: 'var(--gray-500)', marginBottom: '24px', lineHeight: '1.7' }}>
|
||||
(주)지오정보기술의 색상 팔레트는 기술적 가치와 미래 지향적 철학을 시각화합니다.
|
||||
</p>
|
||||
<div className="ci-colors">
|
||||
{[
|
||||
{ name: 'Primary Blue', hex: '#0051A2', cmyk: 'C100 M50 Y0 K37', usage: '주요 UI·버튼·강조' },
|
||||
{ name: 'Accent Blue', hex: '#00A3E0', cmyk: 'C100 M28 Y0 K12', usage: '포인트·링크·아이콘' },
|
||||
{ name: 'Dark Navy', hex: '#1A1A2E', cmyk: 'C40 M40 Y0 K82', usage: '헤더·배경·텍스트' },
|
||||
{ name: 'Pure White', hex: '#FFFFFF', cmyk: 'C0 M0 Y0 K0', usage: '배경·반전 텍스트' },
|
||||
{
|
||||
name: '딥 블루 (Deep Blue)',
|
||||
hex: '#0D2B6E',
|
||||
label: '신뢰와 전문성',
|
||||
desc: '로고의 구조적 중심을 이루는 이 색상은 IT 기업의 핵심 가치인 신뢰와 안정감을 상징합니다. 고객의 데이터를 안전하게 보호하고 흔들림 없는 서비스를 제공하겠다는 기업의 약속입니다.',
|
||||
},
|
||||
{
|
||||
name: '라이트 블루 (Light Blue)',
|
||||
hex: '#4DA6D9',
|
||||
label: '혁신과 창의성',
|
||||
desc: '다이내믹하게 교차하는 하늘색 계열은 AI 기술로 열어갈 지능형 미래와 혁신을 상징합니다. 끊임없이 새로운 가치를 창출하고 확장해 나가는 진취적인 기업 정신을 투영합니다.',
|
||||
},
|
||||
{
|
||||
name: '그레이 (Gray)',
|
||||
hex: '#8C9BAA',
|
||||
label: '안정과 균형',
|
||||
desc: '회색조의 배치 면은 기술과 비즈니스 사이의 중립적 균형을 의미합니다. 복잡한 데이터를 명확하고 논리적으로 분석하는 데이터 전문 기업의 이성적 판단력과 솔루션의 완성도를 대변합니다.',
|
||||
},
|
||||
].map((c, i) => (
|
||||
<div key={i} className="ci-color-card">
|
||||
<div className="ci-color-swatch" style={{ background: c.hex, border: c.hex === '#FFFFFF' ? '1px solid #eee' : 'none' }} />
|
||||
<div key={i} className="ci-color-card" style={{ alignItems: 'flex-start' }}>
|
||||
<div className="ci-color-swatch" style={{ background: c.hex, borderRadius: '10px', flexShrink: 0 }} />
|
||||
<div className="ci-color-info">
|
||||
<strong>{c.name}</strong>
|
||||
<span className="ci-hex">{c.hex}</span>
|
||||
<span className="ci-cmyk">{c.cmyk}</span>
|
||||
<span className="ci-usage">{c.usage}</span>
|
||||
<strong style={{ fontSize: '15px' }}>{c.name}</strong>
|
||||
<span className="ci-hex" style={{ background: 'var(--gray-100)', borderRadius: '4px', padding: '2px 8px', display: 'inline-block', marginTop: '4px' }}>{c.hex}</span>
|
||||
<span style={{ fontSize: '13px', fontWeight: '600', color: 'var(--primary)', marginTop: '6px', display: 'block' }}>[{c.label}]</span>
|
||||
<p style={{ fontSize: '13px', color: 'var(--gray-600)', lineHeight: '1.65', margin: '6px 0 0' }}>{c.desc}</p>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 슬로건 */}
|
||||
{/* 경영 철학 및 AI 비전 */}
|
||||
<div className="ci-section">
|
||||
<h3 className="ci-title">경영 철학 및 AI 비전</h3>
|
||||
<div style={{ padding: '32px 36px', background: 'linear-gradient(135deg, #f0f6ff 0%, #e8f4fd 100%)', borderRadius: '16px', borderLeft: '5px solid var(--primary)', position: 'relative', overflow: 'hidden' }}>
|
||||
<div style={{ position: 'absolute', top: '-20px', right: '-20px', width: '120px', height: '120px', background: 'rgba(0,81,162,0.05)', borderRadius: '50%' }} />
|
||||
<p style={{ fontSize: '15px', color: 'var(--gray-700)', lineHeight: '1.85', margin: 0 }}>
|
||||
(주)지오정보기술은 CI가 담고 있는 <strong>결합과 확장의 철학</strong>을 바탕으로, 단순한 정보 처리를 넘어 인공지능이 더해진 최적화된 솔루션을 제공합니다.
|
||||
우리는 기술과 기술, 사람과 AI가 조화롭게 연결되는 지점에서 새로운 가치를 창출하며, AI 기반의 안정적이고 효율적인 정보 인프라로 미래의 가능성을 실현해 나갑니다.
|
||||
</p>
|
||||
<p style={{ fontSize: '15px', color: 'var(--gray-700)', lineHeight: '1.85', margin: '16px 0 0' }}>
|
||||
이러한 시각적 정체성을 통해 (주)지오정보기술은 단순한 IT 기술 공급자를 넘어,
|
||||
<strong> 고객의 비즈니스에 지능형 가치를 더하는 파트너</strong>로서의 입지를 공고히 합니다.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 브랜드 슬로건 */}
|
||||
<div className="ci-section">
|
||||
<h3 className="ci-title">브랜드 슬로건</h3>
|
||||
<div className="ci-slogan-wrap">
|
||||
|
||||