## index.html (기반 메타태그) - title: 풀네임 + 키워드 포함 - description: 160자 최적화 - keywords: 지오정보기술·GUARDiA·공공기관IT·안산IT기업 등 - og:type/title/description/url/image/locale - twitter:card/title/description/image - JSON-LD: Organization (주소·전화·대표자) + WebSite 스키마 - 네이버/구글 서치콘솔 인증 주석 준비 ## public/sitemap.xml (26개 URL) - priority: 홈 1.0, GUARDiA 0.9, 오시는길·문의 0.8 - changefreq: 뉴스/공지 weekly, 솔루션 monthly, 약관 yearly ## public/robots.txt - Googlebot/Yeti(네이버) Allow, Baiduspider Disallow - /admin/ /api/ Disallow - Sitemap 경로 명시 ## hooks/useSeoMeta.js - 페이지별 title/description/og/twitter/canonical 동적 업데이트 ## 적용 페이지 (6개) - Home: AI 인프라 자율 운영 키워드 - GuardiaDetail: GUARDiA ITSM 상세 설명 - Company>Greeting: CEO 인사말·홍영택 - Company>Location: 안산 주소·전화번호 - Privacy/Terms/Sitemap: 각 페이지 설명 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
143 lines
5.0 KiB
JavaScript
143 lines
5.0 KiB
JavaScript
import React from 'react';
|
||
import { Link } from 'react-router-dom';
|
||
import './Common.css';
|
||
import { useSeoMeta } from '../hooks/useSeoMeta';
|
||
|
||
const MAP = [
|
||
{
|
||
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' },
|
||
],
|
||
},
|
||
];
|
||
|
||
export default function Sitemap() {
|
||
useSeoMeta({ title: '사이트맵', description: '(주)지오정보기술 홈페이지 전체 메뉴 안내. 회사소개, 솔루션, 사업실적, 고객지원, 채용, 뉴스 등 모든 페이지를 확인하세요.', path: '/sitemap' });
|
||
return (
|
||
<main id="main-content" className="inner-page">
|
||
<section className="section">
|
||
<div className="container" style={{ maxWidth: '960px' }}>
|
||
<div className="section-header">
|
||
<span className="section-label">Sitemap</span>
|
||
<h1 className="section-title">사이트맵</h1>
|
||
<p className="section-desc">(주)지오정보기술 홈페이지 전체 메뉴 안내</p>
|
||
</div>
|
||
|
||
<div style={{
|
||
display: 'grid',
|
||
gridTemplateColumns: 'repeat(auto-fill, minmax(220px, 1fr))',
|
||
gap: '24px',
|
||
marginTop: '40px',
|
||
}}>
|
||
{MAP.map((section, i) => (
|
||
<div key={i} style={{
|
||
background: '#fff',
|
||
borderRadius: '12px',
|
||
padding: '24px',
|
||
boxShadow: '0 2px 12px rgba(0,0,0,.06)',
|
||
border: '1px solid var(--gray-200)',
|
||
}}>
|
||
<h2 style={{
|
||
fontSize: '16px', fontWeight: '700', color: 'var(--gray-900)',
|
||
marginBottom: '16px', display: 'flex', alignItems: 'center', gap: '8px',
|
||
}}>
|
||
<span>{section.icon}</span> {section.title}
|
||
</h2>
|
||
<ul style={{ listStyle: 'none', display: 'flex', flexDirection: 'column', gap: '10px' }}>
|
||
{section.links.map((link, j) => (
|
||
<li key={j}>
|
||
<Link to={link.path} style={{
|
||
color: 'var(--primary)',
|
||
textDecoration: 'none',
|
||
fontSize: '14px',
|
||
display: 'flex',
|
||
alignItems: 'center',
|
||
gap: '6px',
|
||
}}>
|
||
<span style={{ color: 'var(--gray-400)', fontSize: '12px' }}>›</span>
|
||
{link.label}
|
||
{link.badge && (
|
||
<span style={{
|
||
fontSize: '10px', padding: '1px 6px',
|
||
background: 'var(--accent)', color: '#fff',
|
||
borderRadius: '8px', fontWeight: '700',
|
||
}}>
|
||
{link.badge}
|
||
</span>
|
||
)}
|
||
</Link>
|
||
</li>
|
||
))}
|
||
</ul>
|
||
</div>
|
||
))}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
);
|
||
}
|