Browse Source

test

remotes/origin/main
김지은 2 months ago
parent
commit
7f47371493
  1. BIN
      public/images/mainvideo.mp4
  2. BIN
      public/images/test.mp4
  3. 83
      src/Router.jsx
  4. 131
      src/components/Header.jsx
  5. 109
      src/components/main/MainUtm.jsx
  6. 6
      src/components/main/MainVisual.jsx
  7. 58
      src/css/common.css
  8. 2
      src/css/header.css
  9. 16
      src/pages/AboutPage.jsx
  10. 21
      src/pages/CasePage.jsx
  11. 25
      src/pages/FlightControlPage.jsx
  12. 21
      src/pages/HistoryPage.jsx
  13. 25
      src/pages/IbePage.jsx
  14. 25
      src/pages/InquiryPage.jsx
  15. 25
      src/pages/IntroPage.jsx
  16. 25
      src/pages/KtGcloudPage.jsx
  17. 21
      src/pages/LocationPage.jsx
  18. 4
      src/pages/MainPage.jsx
  19. 25
      src/pages/MaintenancePage.jsx
  20. 21
      src/pages/PartnersPage.jsx
  21. 25
      src/pages/RecruitPage.jsx
  22. 25
      src/pages/RndPage.jsx
  23. 25
      src/pages/SiPage.jsx
  24. 25
      src/pages/SmartTourPage.jsx

BIN
public/images/mainvideo.mp4

Binary file not shown.

BIN
public/images/test.mp4

Binary file not shown.

83
src/Router.jsx

@ -1,19 +1,84 @@
import { Routes, Route, Navigate } from 'react-router-dom'
import { Routes, Route, Navigate } from "react-router-dom";
import MainLayout from './components/MainLayout'
import MainPage from './pages/MainPage'
import AboutPage from './pages/AboutPage'
import MainLayout from "./components/MainLayout";
import SubLayout from "./components/SubLayout";
// Main
import MainPage from "./pages/MainPage";
// Company
import CompanyAboutPage from "./pages/company/AboutPage";
import CompanyHistoryPage from "./pages/company/HistoryPage";
import CompanyPartnersPage from "./pages/company/PartnersPage";
import CompanyLocationPage from "./pages/company/LocationPage";
// UAM/UATM
import UamIntroPage from "./pages/uam/IntroPage";
import UamCasePage from "./pages/uam/CasePage";
// Business
import BusinessSiPage from "./pages/business/SiPage";
import BusinessRndPage from "./pages/business/RndPage";
import BusinessMaintenancePage from "./pages/business/MaintenancePage";
// Solution
import SolutionFlightControlPage from "./pages/solution/FlightControlPage";
import SolutionIbePage from "./pages/solution/IbePage";
import SolutionSmartTourPage from "./pages/solution/SmartTourPage";
import SolutionKtGcloudPage from "./pages/solution/KtGcloudPage";
// Contact
import ContactInquiryPage from "./pages/contact/InquiryPage";
import ContactRecruitPage from "./pages/contact/RecruitPage";
function Router() {
return (
<Routes>
{/* 루트 진입 시 메인으로 리다이렉트 */}
<Route path="/" element={<Navigate to="/main" replace />} />
{/* 메인 페이지 */}
<Route element={<MainLayout />}>
<Route index element={<Navigate to="/Main" replace />} />
<Route path="/Main" element={<MainPage />} />
<Route path="/About" element={<AboutPage />} />
<Route path="/main" element={<MainPage />} />
</Route>
{/* 서브 페이지 */}
<Route element={<SubLayout />}>
{/* Company */}
<Route path="/company" element={<Navigate to="/company/about" replace />} />
<Route path="/company/about" element={<CompanyAboutPage />} />
<Route path="/company/history" element={<CompanyHistoryPage />} />
<Route path="/company/partners" element={<CompanyPartnersPage />} />
<Route path="/company/location" element={<CompanyLocationPage />} />
{/* UAM/UATM */}
<Route path="/uam" element={<Navigate to="/uam/intro" replace />} />
<Route path="/uam/intro" element={<UamIntroPage />} />
<Route path="/uam/case" element={<UamCasePage />} />
{/* Business */}
<Route path="/business" element={<Navigate to="/business/si" replace />} />
<Route path="/business/si" element={<BusinessSiPage />} />
<Route path="/business/rnd" element={<BusinessRndPage />} />
<Route path="/business/maintenance" element={<BusinessMaintenancePage />} />
{/* Solution */}
<Route path="/solution" element={<Navigate to="/solution/flight-control" replace />} />
<Route path="/solution/flight-control" element={<SolutionFlightControlPage />} />
<Route path="/solution/ibe" element={<SolutionIbePage />} />
<Route path="/solution/smart-tour" element={<SolutionSmartTourPage />} />
<Route path="/solution/kt-gcloud" element={<SolutionKtGcloudPage />} />
{/* Contact Us */}
<Route path="/contact" element={<Navigate to="/contact/inquiry" replace />} />
<Route path="/contact/inquiry" element={<ContactInquiryPage />} />
<Route path="/contact/recruit" element={<ContactRecruitPage />} />
</Route>
{/* 404: 잘못된 경로는 메인으로 */}
{/* <Route path="*" element={<Navigate to="/main" replace />} /> */}
</Routes>
)
);
}
export default Router
export default Router;

131
src/components/Header.jsx

@ -3,133 +3,134 @@ import { Link, NavLink } from "react-router-dom";
const menuData = [
{
key: "about",
key: "company",
label: "Company",
to: "/company",
panelTitle: "PAL Networks",
panelDesc: "회사 소개와 비전, 연혁, 인증 및 조직 정보를 확인할 수 있습니다.",
panelDesc: "회사 소개와 비전, 연혁, 파트너십 정보를 확인할 수 있습니다.",
sections: [
{
title: "회사 소개",
items: [
{ label: "회사소개", to: "/About", desc: "기업 철학과 핵심 가치" },
{ label: "연혁", to: "/history", desc: "주요 실적과 성장 과정" },
{ label: "조직도", to: "/organization", desc: "조직 구성과 역할" },
{ label: "회사소개", to: "/company/about", desc: "기업 철학과 핵심 가치" },
{ label: "연혁", to: "/company/history", desc: "주요 실적과 성장 과정" },
],
},
{
title: "신뢰 정보",
items: [
{ label: "인증 및 특허", to: "/certification", desc: "기술력과 공인 인증 현황" },
{ label: "파트너십", to: "/partners", desc: "협력사 및 네트워크" },
{ label: "오시는 길", to: "/location", desc: "위치 및 연락처 안내" },
{ label: "고객 및 협력사", to: "/company/partners", desc: "주요 고객과 협력 네트워크" },
{ label: "찾아오시는 길", to: "/company/location", desc: "위치 및 연락처 안내" },
],
},
],
featured: {
eyebrow: "About Us",
title: "신뢰를 기반으로\n항공·플랫폼 기술을 확장합니다.",
text: "기업 소개 영역은 가볍게 보이지 않도록, 핵심 메시지와 신뢰 요소를 함께 노출하는 구성이 좋습니다.",
// text: " , .",
cta: { label: "회사소개 보기", to: "/company" },
},
},
{
key: "uam",
label: "UAM/UATM",
to: "/uam",
panelTitle: "UAM / UATM",
panelDesc: "도심 항공 모빌리티와 통합 항공 교통 관리 기술을 소개합니다.",
sections: [
{
title: "기술 소개",
items: [
{ label: "UAM/UATM 소개", to: "/uam/intro", desc: "도심 항공 모빌리티 핵심 기술" },
{ label: "도입사례", to: "/uam/case", desc: "주요 도입 및 운영 사례" },
],
},
],
featured: {
eyebrow: "Advanced Air Mobility",
title: "안전한 하늘길,\n기술로 완성합니다.",
text: "PAL Networks의 UAM·UATM 기술은 도심 상공의 안전 운항과 통합 관제를 실현합니다.",
cta: { label: "UAM/UATM 보기", to: "/uam" },
},
},
{
key: "business",
label: "Business",
to: "/business",
panelTitle: "Business Area",
panelDesc: "팔네트웍스의 주요 사업 영역과 구축 역량을 한눈에 볼 수 있습니다.",
panelDesc: "구축부터 운영까지, PAL Networks의 종합 IT 서비스 역량을 소개합니다.",
sections: [
{
title: "사업 분야",
title: "구축 · 개발",
items: [
{ label: "System Integration", to: "/business/system-integration", desc: "맞춤형 정보시스템 구축" },
{ label: "플랫폼 구축", to: "/business/platform", desc: "서비스 플랫폼 기획·개발" },
{ label: "System Integration", to: "/business/si", desc: "맞춤형 정보시스템 구축" },
{ label: "R&D", to: "/business/rnd", desc: "연구 개발 및 기술 고도화" },
],
},
{
title: "특화 영역",
items: [
{ label: "항공/관제", to: "/business/aviation", desc: "항공·관제 특화 서비스" },
{ label: "스마트 관광", to: "/business/tourism", desc: "관광·예약 플랫폼 구축" },
{ label: "공공/기업 SI", to: "/business/public-enterprise", desc: "공공·기업 대상 구축 경험" },
],
title: "운영 · 지원",
items: [{ label: "운영 · 유지보수", to: "/business/maintenance", desc: "안정적인 시스템 운영과 사후 관리" }],
},
],
featured: {
eyebrow: "Core Capability",
title: "기획부터 구축, 운영까지\n실무형 역량으로 연결합니다.",
text: "사업영역은 단순 나열보다 “무엇을 잘하는 회사인지” 바로 이해되게 보여주는 게 중요합니다.",
title: "구축에서 운영까지,\n끝까지 책임지는 파트너.",
text: "단순 납품이 아닌 장기 파트너십으로, 고객 시스템의 안정적 운영을 함께합니다.",
cta: { label: "사업영역 보기", to: "/business" },
},
},
{
key: "solution",
label: "Solution",
to: "/solution",
panelTitle: "Solution & Service",
panelDesc: "산업별 솔루션과 서비스 포트폴리오를 확장 가능한 구조로 구성합니다.",
panelDesc: "산업별 솔루션과 서비스 포트폴리오를 확인하실 수 있습니다.",
sections: [
{
title: "주요 솔루션",
title: "운영 솔루션",
items: [
{ label: "항공예약 플랫폼", to: "/solution/air-booking", desc: "예약·발권·운영 플랫폼" },
{ label: "스마트 관광 플랫폼", to: "/solution/smart-tour", desc: "관광 서비스 통합 운영" },
{ label: "상황관제 시스템", to: "/solution/control", desc: "실시간 상황 모니터링" },
{ label: "비행상황관리 시스템", to: "/solution/flight-control", desc: "실시간 비행 상황 통합 관제" },
{ label: "IBE (Internet Booking Engine)", to: "/solution/ibe", desc: "항공 예약·발권 엔진" },
],
},
{
title: "확장 서비스",
title: "플랫폼 · 인프라",
items: [
{ label: "VR/AR 시뮬레이터", to: "/solution/simulator", desc: "훈련·체험형 시뮬레이션" },
{ label: "클라우드 서비스", to: "/solution/cloud", desc: "운영 인프라 및 클라우드 연계" },
{ label: "커스텀 솔루션", to: "/solution/custom", desc: "고객 맞춤형 확장 개발" },
{ label: "스마트 관광 예약 플랫폼", to: "/solution/smart-tour", desc: "관광 예약 통합 운영 플랫폼" },
{ label: "KT G-cloud 인천총판", to: "/solution/kt-gcloud", desc: "공공 클라우드 인프라 공급" },
],
},
],
featured: {
eyebrow: "Scalable Navigation",
title: "지금은 기업 사이트,\n나중에는 솔루션 허브까지.",
text: "메가패널 구조를 미리 잡아두면 추후 메뉴가 늘어나도 헤더를 다시 뜯지 않아도 됩니다.",
eyebrow: "Scalable Solutions",
title: "검증된 솔루션으로\n비즈니스 가치를 만듭니다.",
text: "운영 노하우가 축적된 자체 솔루션과 파트너십 기반 인프라를 함께 제공합니다.",
cta: { label: "솔루션 보기", to: "/solution" },
},
},
{
key: "reference",
label: "Reference",
panelTitle: "Reference",
panelDesc: "구축 사례와 주요 프로젝트를 통해 신뢰도를 높일 수 있습니다.",
key: "contact",
label: "Contact Us",
to: "/contact",
panelTitle: "Contact Us",
panelDesc: "프로젝트 문의와 인재 채용 정보를 확인하실 수 있습니다.",
sections: [
{
title: "프로젝트",
title: "문의 및 채용",
items: [
{ label: "구축 사례", to: "/reference/case", desc: "주요 구축 사례 소개" },
{ label: "프로젝트 실적", to: "/reference/project", desc: "산업별 수행 실적" },
{ label: "고객사", to: "/reference/client", desc: "주요 고객 및 협력 기관" },
],
},
{
title: "콘텐츠",
items: [
{ label: "뉴스", to: "/news", desc: "기업 소식 및 업데이트" },
{ label: "홍보자료", to: "/media", desc: "브로슈어 및 홍보 콘텐츠" },
{ label: "공지사항", to: "/notice", desc: "공지 및 안내 정보" },
{ label: "문의하기", to: "/contact/inquiry", desc: "프로젝트 및 협업 문의" },
{ label: "채용정보", to: "/contact/recruit", desc: "함께할 동료를 찾습니다" },
],
},
],
featured: {
eyebrow: "Trust Point",
title: "결국 회사 사이트는\n“무엇을 해왔는지”가 보여야 합니다.",
text: "레퍼런스와 뉴스는 단순 보조 메뉴가 아니라 신뢰를 만드는 핵심 축으로 잡는 게 좋습니다.",
cta: { label: "레퍼런스 보기", to: "/reference" },
eyebrow: "Get in Touch",
title: "함께 만들어갈\n파트너를 기다립니다.",
text: "프로젝트 협업이든 커리어든, 편하게 연락 주세요.",
cta: { label: "문의 바로가기", to: "/contact/inquiry" },
},
},
{
key: "contact",
label: "Contact",
to: "/contact",
simple: true,
},
];
export default function PalRenewalHeader() {
const [activeMenu, setActiveMenu] = useState(null);
const [isHeaderHover, setIsHeaderHover] = useState(false);
@ -330,9 +331,13 @@ export default function PalRenewalHeader() {
</nav>
<div className="pal-header-util">
<Link to="/contact" className="pal-header-contact" onClick={closeAllMenus}>
Contact
</Link>
<div className="pal-header-lang">
<button type="button" className="is-active">
KOR
</button>
<span className="pal-header-lang-divider">|</span>
<button type="button">ENG</button>
</div>
<button type="button" className={`pal-header-hamburger ${isMobileMenuOpen ? "is-active" : ""}`} aria-label={isMobileMenuOpen ? "모바일 메뉴 닫기" : "모바일 메뉴 열기"} aria-expanded={isMobileMenuOpen} aria-controls="pal-mobile-menu" onClick={toggleMobileMenu}>
<span></span>

109
src/components/main/MainUtm.jsx

@ -5,7 +5,114 @@ import { ScrollTrigger } from "gsap/ScrollTrigger";
gsap.registerPlugin(ScrollTrigger);
function MainUtm() {
return <section className="main-uam-section">utm uam</section>;
const sectionRef = useRef(null);
const itemsRef = useRef([]);
useEffect(() => {
const ctx = gsap.context(() => {
itemsRef.current.forEach((el) => {
const text = el.querySelector(".main-utm-text");
const visual = el.querySelector(".main-utm-visual");
gsap.fromTo(
text,
{ y: 50, opacity: 0 },
{
y: 0,
opacity: 1,
duration: 0.8,
ease: "power3.out",
scrollTrigger: {
trigger: el,
start: "top 80%",
},
},
);
gsap.fromTo(
visual,
{ x: el.classList.contains("reverse") ? -80 : 80, opacity: 0 },
{
x: 0,
opacity: 1,
duration: 0.9,
ease: "power3.out",
scrollTrigger: {
trigger: el,
start: "top 80%",
},
},
);
});
}, sectionRef);
return () => ctx.revert();
}, []);
return (
<section className="main-utm-section" ref={sectionRef}>
<div className="main-utm-inner">
<div className="main-utm-head">
<p className="main-utm-eyebrow">UTM SYSTEM</p>
<h2 className="main-utm-title">Unmanned Aircraft Traffic Management</h2>
<p className="main-utm-desc">드론 하늘길을 통제하는 관제 시스템</p>
</div>
{/* STEP 1 */}
<div className="main-utm-item" ref={(el) => (itemsRef.current[0] = el)}>
<div className="main-utm-text">
<span className="main-utm-step">01</span>
<h3>Flight Planning</h3>
<p>비행 계획을 등록하고 승인 가능 여부를 자동으로 판단합니다</p>
</div>
<div className="main-utm-visual">
<img src="./images/test.png" alt="" />
</div>
</div>
{/* STEP 2 */}
<div className="main-utm-item reverse" ref={(el) => (itemsRef.current[1] = el)}>
<div className="main-utm-text">
<span className="main-utm-step">02</span>
<h3>Auto Approval</h3>
<p>공역, 장애물, 규제 조건을 기반으로 비행 승인 여부를 결정합니다</p>
</div>
<div className="main-utm-visual">
<img src="./images/test.png" alt="" />
</div>
</div>
{/* STEP 3 */}
<div className="main-utm-item" ref={(el) => (itemsRef.current[2] = el)}>
<div className="main-utm-text">
<span className="main-utm-step">03</span>
<h3>Real-time Monitoring</h3>
<p>비행 상태를 실시간으로 추적하고 상황을 시각화합니다</p>
</div>
<div className="main-utm-visual">
<img src="./images/test.png" alt="" />
</div>
</div>
{/* STEP 4 */}
<div className="main-utm-item reverse" ref={(el) => (itemsRef.current[3] = el)}>
<div className="main-utm-text">
<span className="main-utm-step">04</span>
<h3>Alert & Response</h3>
<p>비정상 상황 발생 즉시 대응할 있도록 지원합니다</p>
</div>
<div className="main-utm-visual">
<img src="./images/test.png" alt="" />
</div>
</div>
<div className="main-utm-final">
<p>복잡한 공역 관리부터 실시간 대응까지</p>
<h3>UTM은 드론 운영의 모든 과정을 하나의 시스템으로 통합합니다</h3>
</div>
</div>
</section>
);
}
export default MainUtm;

6
src/components/main/MainVisual.jsx

@ -38,7 +38,7 @@ function MainVisual() {
const darkHeroTrigger = ScrollTrigger.create({
trigger: sectionRef.current,
start: "top top",
end: "+=3000",
end: "+=2000",
onEnter: () => document.body.classList.add("is-dark-hero"),
onEnterBack: () => document.body.classList.add("is-dark-hero"),
onLeave: () => document.body.classList.remove("is-dark-hero"),
@ -51,7 +51,7 @@ function MainVisual() {
scrollTrigger: {
trigger: sectionRef.current,
start: "top top",
end: "+=3000",
end: "+=2000",
scrub: 1.15,
pin: true,
anticipatePin: 1,
@ -96,7 +96,7 @@ function MainVisual() {
<div className="main-bg-hero1"></div>
<div className="main-bg-hero2" ref={hero2Ref}>
<video ref={videoRef} className="hero-video" src="./images/test.mp4" muted loop playsInline preload="auto" />
<video ref={videoRef} className="hero-video" src="./images/mainvideo.mp4" muted loop playsInline preload="auto" />
</div>
<div className="main-visible-atmo main-visible-atmo1"></div>

58
src/css/common.css

@ -135,6 +135,64 @@ body{overflow-x:hidden;}
.main-scroll-line{height:22px;}
.main-scroll-text{font-size:10px;letter-spacing:.22em;}
}
/*main utm*/
:root{--header-height:100px;}
.main-utm-section{background:#fff;}
.main-utm-inner{max-width:1440px;margin:0 auto;padding:calc(var(--header-height) + 40px) 80px 120px;}
.main-utm-head{max-width:800px;margin-bottom:100px;}
.main-utm-eyebrow{font-size:14px;font-weight:700;letter-spacing:.2em;color:#3A4081;margin-bottom:12px;}
.main-utm-title{font-size:clamp(36px,4vw,64px);font-weight:700;line-height:1.1;margin:0;}
.main-utm-desc{font-size:18px;color:#555;margin-top:16px;}
.main-utm-item{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;margin-bottom:160px;}
.main-utm-item.reverse{direction:rtl;}
.main-utm-item.reverse .main-utm-text{direction:ltr;}
.main-utm-text{max-width:420px;}
.main-utm-step{font-size:14px;color:#3A4081;font-weight:700;letter-spacing:.2em;}
.main-utm-text h3{font-size:32px;margin:16px 0;}
.main-utm-text p{font-size:16px;color:#555;line-height:1.6;}
.main-utm-visual img{width:100%;border-radius:20px;}
.main-utm-final{text-align:center;margin-top:120px;}
.main-utm-final p{color:#3A4081;margin-bottom:12px;}
.main-utm-final h3{font-size:clamp(28px,3vw,48px);}
@media (max-width:1024px){
.main-utm-item{grid-template-columns:1fr;gap:40px;}
.main-utm-item.reverse{direction:ltr;}
}
/*main uam*/

2
src/css/header.css

@ -14,7 +14,7 @@
.pal-gnb-item{position:relative;height:100%;}
.pal-gnb-link{position:relative;display:inline-flex;align-items:center;justify-content:center;height:100%;padding:0 20px;border:0;background:none;color:#111;text-decoration:none;cursor:pointer;transition:color .3s ease,transform .3s ease;}
.pal-gnb-link:hover,.pal-gnb-link:focus-visible{color:var(--color-primary);transform:translateY(-2px);outline:none;}
.pal-gnb-link-text{position:relative;z-index:1;font-size:16px;font-weight:700;line-height:1;letter-spacing:-0.02em;}
.pal-gnb-link-text{position:relative;z-index:1;font-size:16px;font-weight:700;line-height:1;letter-spacing:-0.02em;text-transform:uppercase;}
.pal-gnb-link-line{position:absolute;left:20px;right:20px;bottom:26px;height:2px;border-radius:999px;background:var(--color-primary);transform:scaleX(0);transform-origin:center;transition:transform .32s ease;}
.pal-gnb-item.is-active .pal-gnb-link{color:var(--color-primary);transform:translateY(-2px);}
.pal-gnb-item.is-active .pal-gnb-link-line{transform:scaleX(1);}

16
src/pages/AboutPage.jsx

@ -3,19 +3,23 @@ function AboutPage() {
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>About</h2>
<p>서브페이지 테스트 영역</p>
<h2>회사소개</h2>
<p>About PAL Networks</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>About Content</h3>
<p>라우터 연결 확인용 페이지입니다.</p>
<h3>기업 철학과 핵심 가치</h3>
<p>
PAL Networks는 항공 데이터와 통합 관제 기술을 기반으로
<br />
안전한 하늘길과 신뢰할 있는 IT 서비스를 만들어갑니다.
</p>
</div>
</section>
</main>
)
);
}
export default AboutPage
export default AboutPage;

21
src/pages/CasePage.jsx

@ -0,0 +1,21 @@
function CasePage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>도입사례</h2>
<p>UAM/UATM Case Studies</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>주요 도입 운영 사례</h3>
<p>PAL Networks의 UAM/UATM 기술이 적용된 실제 사례를 소개합니다.</p>
</div>
</section>
</main>
);
}
export default CasePage;

25
src/pages/FlightControlPage.jsx

@ -0,0 +1,25 @@
function FlightControlPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>비행상황관리 시스템</h2>
<p>Flight Situation Management System</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>실시간 비행 상황 통합 관제</h3>
<p>
항공기 운항 정보를 실시간으로 수집·분석하여
<br />
안전한 비행 운영을 지원하는 통합 관제 솔루션입니다.
</p>
</div>
</section>
</main>
);
}
export default FlightControlPage;

21
src/pages/HistoryPage.jsx

@ -0,0 +1,21 @@
function HistoryPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>연혁</h2>
<p>History</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>주요 실적과 성장 과정</h3>
<p>PAL Networks가 걸어온 길과 주요 성과를 소개합니다.</p>
</div>
</section>
</main>
);
}
export default HistoryPage;

25
src/pages/IbePage.jsx

@ -0,0 +1,25 @@
function IbePage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>IBE</h2>
<p>Internet Booking Engine</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>항공 예약 · 발권 엔진</h3>
<p>
온라인 항공 예약과 발권을 위한 통합 엔진으로
<br />
안정적이고 확장 가능한 예약 플랫폼을 제공합니다.
</p>
</div>
</section>
</main>
);
}
export default IbePage;

25
src/pages/InquiryPage.jsx

@ -0,0 +1,25 @@
function InquiryPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>문의하기</h2>
<p>Inquiry</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>프로젝트 협업 문의</h3>
<p>
PAL Networks에 프로젝트 협업이나 기술 도입을 문의하고 싶으시다면
<br />
아래 정보를 통해 편하게 연락 주세요.
</p>
</div>
</section>
</main>
);
}
export default InquiryPage;

25
src/pages/IntroPage.jsx

@ -0,0 +1,25 @@
function IntroPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>UAM/UATM 소개</h2>
<p>Urban Air Mobility &amp; UAM Air Traffic Management</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>도심 항공 모빌리티 핵심 기술</h3>
<p>
안전한 도심 상공 운항과 통합 관제를 실현하는
<br />
PAL Networks의 UAM/UATM 기술을 소개합니다.
</p>
</div>
</section>
</main>
);
}
export default IntroPage;

25
src/pages/KtGcloudPage.jsx

@ -0,0 +1,25 @@
function KtGcloudPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>KT G-cloud 인천총판</h2>
<p>KT G-cloud Incheon Distributor</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>공공 클라우드 인프라 공급</h3>
<p>
KT G-cloud 인천 지역 총판 파트너로서
<br />
공공기관 클라우드 인프라 도입과 운영을 지원합니다.
</p>
</div>
</section>
</main>
);
}
export default KtGcloudPage;

21
src/pages/LocationPage.jsx

@ -0,0 +1,21 @@
function LocationPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>찾아오시는 </h2>
<p>Location</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>위치 연락처 안내</h3>
<p>PAL Networks 본사 위치와 연락처를 안내드립니다.</p>
</div>
</section>
</main>
);
}
export default LocationPage;

4
src/pages/MainPage.jsx

@ -6,8 +6,8 @@ function MainPage() {
return (
<main className="main-page">
<MainVisual />
{/* <MainUtm /> */}
<MainUam />
<MainUtm />
{/* <MainUam /> */}
</main>
);
}

25
src/pages/MaintenancePage.jsx

@ -0,0 +1,25 @@
function MaintenancePage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>운영 · 유지보수</h2>
<p>Operation &amp; Maintenance</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>안정적인 시스템 운영과 사후 관리</h3>
<p>
구축 이후에도 끊김 없는 서비스 운영을 위해
<br />
장기 파트너십 기반의 유지보수를 제공합니다.
</p>
</div>
</section>
</main>
);
}
export default MaintenancePage;

21
src/pages/PartnersPage.jsx

@ -0,0 +1,21 @@
function PartnersPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>고객 협력사</h2>
<p>Clients &amp; Partners</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>주요 고객과 협력 네트워크</h3>
<p>다양한 산업의 고객사 협력사와 함께 성장하고 있습니다.</p>
</div>
</section>
</main>
);
}
export default PartnersPage;

25
src/pages/RecruitPage.jsx

@ -0,0 +1,25 @@
function RecruitPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>채용정보</h2>
<p>Recruit</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>함께할 동료를 찾습니다</h3>
<p>
PAL Networks와 함께 성장할
<br />
새로운 동료를 기다리고 있습니다.
</p>
</div>
</section>
</main>
);
}
export default RecruitPage;

25
src/pages/RndPage.jsx

@ -0,0 +1,25 @@
function RndPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>R&amp;D</h2>
<p>Research &amp; Development</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>연구 개발 기술 고도화</h3>
<p>
항공·관제 도메인 특화 기술 연구로
<br />
차세대 솔루션을 만들어갑니다.
</p>
</div>
</section>
</main>
);
}
export default RndPage;

25
src/pages/SiPage.jsx

@ -0,0 +1,25 @@
function SiPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>System Integration</h2>
<p>시스템 통합 구축</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>맞춤형 정보시스템 구축</h3>
<p>
공공·민간 분야의 정보시스템 구축부터 운영까지
<br />
과정을 책임지는 SI 서비스를 제공합니다.
</p>
</div>
</section>
</main>
);
}
export default SiPage;

25
src/pages/SmartTourPage.jsx

@ -0,0 +1,25 @@
function SmartTourPage() {
return (
<main className="sub-page">
<section className="sub-visual">
<div className="inner">
<h2>스마트 관광 예약 플랫폼</h2>
<p>Smart Tourism Booking Platform</p>
</div>
</section>
<section className="sub-content-section">
<div className="inner">
<h3>관광 예약 통합 운영 플랫폼</h3>
<p>
관광 상품 검색부터 예약, 결제, 운영 관리까지
<br />
하나의 플랫폼에서 통합 제공하는 솔루션입니다.
</p>
</div>
</section>
</main>
);
}
export default SmartTourPage;
Loading…
Cancel
Save