diff --git a/public/images/si_injustice_drone.png b/public/images/si_injustice_drone.png new file mode 100644 index 0000000..c07e532 Binary files /dev/null and b/public/images/si_injustice_drone.png differ diff --git a/public/images/si_kac_utm.png b/public/images/si_kac_utm.png new file mode 100644 index 0000000..92b50f4 Binary files /dev/null and b/public/images/si_kac_utm.png differ diff --git a/public/images/utm_what_img.png b/public/images/utm_what_img.png index a4d66bf..9fe4f9f 100644 Binary files a/public/images/utm_what_img.png and b/public/images/utm_what_img.png differ diff --git a/src/pages/business/SiPage.jsx b/src/pages/business/SiPage.jsx index f0d9475..6866807 100644 --- a/src/pages/business/SiPage.jsx +++ b/src/pages/business/SiPage.jsx @@ -2,12 +2,78 @@ import { useRef, useState, useEffect } from "react"; import { motion, AnimatePresence, useInView } from "framer-motion"; import SubHero from "../../components/SubHero"; import useFadeIn from "../../hooks/useFadeIn"; -import { Plane, Globe, UtensilsCrossed, Thermometer, MapPin, Link, QrCode, Users, Siren, Wrench, PlusCircle, Settings, ShieldCheck, Monitor, Building2, ClipboardList } from "lucide-react"; +import { + Plane, + Globe, + UtensilsCrossed, + Thermometer, + MapPin, + Link, + QrCode, + Users, + Siren, + Wrench, + PlusCircle, + Settings, + ShieldCheck, + Monitor, + Building2, + ClipboardList, + Radio, + Database, + Navigation, +} from "lucide-react"; const ease = [0.25, 0.1, 0.25, 1]; const PROJECTS = [ { id: "01", + title: "KAC UTM 시스템 구축", + tags: ["항공/관제", "UTM"], + image: "/images/si_kac_utm.png", + desc: [ + { + icon: , + title: "실시간 관제", + text: "무인기 실시간 공역 감시 및 관제 시스템", + }, + { + icon: , + title: "비행 경로 관리", + text: "비행 계획 승인 및 충돌 위험 사전 분석", + }, + { + icon: , + title: "데이터 통합", + text: "비행 데이터 수집·분석 통합 플랫폼 구축", + }, + ], + }, + { + id: "02", + title: "불법드론 탐지 시스템 구축", + tags: ["항공/보안", "드론"], + image: "/images/si_injustice_drone.png", + desc: [ + { + icon: , + title: "불법드론 탐지", + text: "비인가 드론 실시간 탐지 및 식별 시스템", + }, + { + icon: , + title: "위협 대응", + text: "불법 비행체 침입 시 신속 경보 및 대응", + }, + { + icon: , + title: "관제 연동", + text: "UTM 관제 시스템과 실시간 연계 운영", + }, + ], + }, + { + id: "03", title: "제주패스 OTA 항공 서비스 구축", tags: ["항공/여행", "OTA"], image: "/images/si_img1.png", @@ -30,7 +96,7 @@ const PROJECTS = [ ], }, { - id: "02", + id: "04", title: "안전관광 방역 시스템 구축", tags: ["공공/방역", "방역/보안"], image: "/images/si_img2.png", @@ -53,7 +119,7 @@ const PROJECTS = [ ], }, { - id: "03", + id: "05", title: "클린인천 출입인증 시스템 구축", tags: ["공공/출입", "인증/보안"], image: "/images/si_img3.png", @@ -76,7 +142,7 @@ const PROJECTS = [ ], }, { - id: "04", + id: "06", title: "SSG.COM 항공서비스 운영 및 유지보수", tags: ["항공/이커머스", "운영 · 유지보수"], image: "/images/si_img4.png", @@ -99,7 +165,7 @@ const PROJECTS = [ ], }, { - id: "05", + id: "07", title: "현대자동차 출입인증 시스템 구축", tags: ["기업/보안", "인증/보안"], image: "/images/si_img5.png", @@ -122,7 +188,7 @@ const PROJECTS = [ ], }, { - id: "06", + id: "08", title: "하이에어 항공운항 시스템 구축", tags: ["항공", "인증/스케줄"], image: "/images/si_img6.png", @@ -145,7 +211,6 @@ const PROJECTS = [ ], }, ]; - const AUTO_DELAY = 5000; function SiPage() { @@ -205,13 +270,15 @@ function SiPage() { }; const handleDragStart = (e) => { - dragStartX.current = e.type === "touchstart" ? e.touches[0].clientX : e.clientX; + dragStartX.current = + e.type === "touchstart" ? e.touches[0].clientX : e.clientX; dragStartCurrent.current = current; }; const handleDragEnd = (e) => { if (dragStartX.current === null) return; - const endX = e.type === "touchend" ? e.changedTouches[0].clientX : e.clientX; + const endX = + e.type === "touchend" ? e.changedTouches[0].clientX : e.clientX; const diff = dragStartX.current - endX; if (diff > 50) next(); else if (diff < -50) prev(); @@ -258,10 +325,20 @@ function SiPage() {
{/* 헤더 */}
- + PROJECT ARCHIVE - + {window.innerWidth <= 768 ? ( "수행사업 아카이브" ) : ( @@ -272,7 +349,12 @@ function SiPage() { )} - + {window.innerWidth <= 768 ? ( "PAL Networks가 구축한 주요 프로젝트를 소개합니다." ) : ( @@ -286,17 +368,40 @@ function SiPage() { {/* 네비게이션 */}
- + - - {String(current + 1).padStart(2, "0")} + + + {String(current + 1).padStart(2, "0")} + / - {String(total).padStart(2, "0")} + + {String(total).padStart(2, "0")} + - +
@@ -304,27 +409,56 @@ function SiPage() { {/* 슬라이더 */}
- -
+ +
{PROJECTS.map((project, idx) => ( -
+
- {project.title} + {project.title}
-
{project.id}
-

{project.title}

+
+ {project.id} +
+

+ {project.title} +

@@ -338,9 +472,15 @@ function SiPage() {
    {project.desc.map((item, i) => (
  • -
    {item.icon}
    -
    {item.title}
    -
    {item.text}
    +
    + {item.icon} +
    +
    + {item.title} +
    +
    + {item.text} +
  • ))}