1+ "use client" ;
2+
3+ import { useTheme } from "@/contexts/ThemeContext" ;
4+ import { ArrowLeftIcon } from "@heroicons/react/24/outline" ;
5+ import { useRouter } from "next/navigation" ;
6+ import Link from "next/link" ;
7+
8+ export default function EmulatorGuidePage ( ) {
9+ const { currentTheme } = useTheme ( ) ;
10+ const router = useRouter ( ) ;
11+
12+ return (
13+ < div className = "container mx-auto px-4 py-8" >
14+ < div className = "max-w-4xl mx-auto" >
15+ < div className = "flex items-center gap-4 mb-8" >
16+ < button
17+ onClick = { ( ) => router . back ( ) }
18+ className = "p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"
19+ >
20+ < ArrowLeftIcon className = "w-6 h-6" />
21+ </ button >
22+ < h1 className = { `text-3xl font-bold ${ currentTheme . text } ` } >
23+ 자동차 관제 에뮬레이터 가이드
24+ </ h1 >
25+ </ div >
26+
27+ < div className = { `space-y-8 ${ currentTheme . text } ` } >
28+ { /* 개요 섹션 */ }
29+ < section className = { `${ currentTheme . cardBg } rounded-lg shadow-lg p-8` } >
30+ < h2 className = "text-2xl font-bold mb-4" > 개요</ h2 >
31+ < p className = { `${ currentTheme . mutedText } leading-relaxed` } >
32+ 이 에뮬레이터는 실제 차량에 장착하는 관제 장치의 기능을 웹 애플리케이션으로 구현한 소프트웨어입니다.
33+ 개발 및 테스트 환경에서 실제 장비 없이도 자동차의 위치와 상태를 효과적으로 시뮬레이션하고 검증할 수 있도록 설계되었습니다.
34+ </ p >
35+ </ section >
36+
37+ { /* 주요 특징 섹션 */ }
38+ < section className = { `${ currentTheme . cardBg } rounded-lg shadow-lg p-8` } >
39+ < h2 className = "text-2xl font-bold mb-6" > 주요 특징</ h2 >
40+ < div className = "grid md:grid-cols-3 gap-6" >
41+ < div className = "space-y-2" >
42+ < h3 className = "text-lg font-semibold text-blue-500" > 웹 기반 애플리케이션</ h3 >
43+ < p className = { `${ currentTheme . mutedText } ` } > 별도의 설치 없이 웹 브라우저에서 바로 사용할 수 있습니다.</ p >
44+ </ div >
45+ < div className = "space-y-2" >
46+ < h3 className = "text-lg font-semibold text-blue-500" > 반응형 인터페이스</ h3 >
47+ < p className = { `${ currentTheme . mutedText } ` } > 데스크탑, 태블릿, 모바일 등 다양한 기기에서 최적화된 화면을 제공합니다.</ p >
48+ </ div >
49+ < div className = "space-y-2" >
50+ < h3 className = "text-lg font-semibold text-blue-500" > 다크모드 지원</ h3 >
51+ < p className = { `${ currentTheme . mutedText } ` } > 사용자의 환경 및 취향에 맞춰 라이트/다크 테마를 자유롭게 전환할 수 있습니다.</ p >
52+ </ div >
53+ </ div >
54+ </ section >
55+
56+ { /* 제공 모드 섹션 */ }
57+ < section className = { `${ currentTheme . cardBg } rounded-lg shadow-lg p-8` } >
58+ < h2 className = "text-2xl font-bold mb-6" > 제공 모드</ h2 >
59+
60+ { /* 시뮬레이션 모드 */ }
61+ < div className = "mb-8" >
62+ < h3 className = "text-xl font-semibold text-blue-500 mb-4" > 시뮬레이션 모드</ h3 >
63+ < div className = "space-y-4" >
64+ < div >
65+ < h4 className = "font-semibold mb-2" > 기능 개요</ h4 >
66+ < p className = { `${ currentTheme . mutedText } ` } >
67+ 미리 제공된 GPX 파일(실제 한국 도로 기반 경로 데이터)을 활용하여 차량의 움직임을 시뮬레이션합니다.
68+ 1초마다 GPX 파일에서 위치 정보를 읽어와 실제 차량이 이동하는 것처럼 위치 정보를 갱신합니다.
69+ </ p >
70+ </ div >
71+ < div >
72+ < h4 className = "font-semibold mb-2" > 주요 기능</ h4 >
73+ < ul className = { `${ currentTheme . mutedText } list-disc list-inside space-y-1` } >
74+ < li > GPX 파일을 불러와 경로를 시각적으로 표시</ li >
75+ < li > 출발지와 도착지 정보를 명확하게 제공</ li >
76+ < li > 실제 도로를 반영한 경로 데이터로 현실감 있는 테스트 가능</ li >
77+ < li > 위치 정보가 1초 단위로 자동 갱신되어 실시간과 유사한 테스트 환경 제공</ li >
78+ </ ul >
79+ </ div >
80+ </ div >
81+ </ div >
82+
83+ < div >
84+ < h3 className = "text-xl font-semibold text-blue-500 mb-4" > 실시간 모드</ h3 >
85+ < div className = "space-y-4" >
86+ < div >
87+ < h4 className = "font-semibold mb-2" > 기능 개요</ h4 >
88+ < p className = { `${ currentTheme . mutedText } ` } >
89+ GPS 모듈이 장착된 기기를 통해 사용자의 실제 위치 정보를 1초마다 수집하고 누적합니다.
90+ 실제 차량, 자전거, 도보 등 다양한 운송수단을 이용한 실시간 테스트가 가능합니다.
91+ </ p >
92+ </ div >
93+ < div >
94+ < h4 className = "font-semibold mb-2" > 주요 기능</ h4 >
95+ < ul className = { `${ currentTheme . mutedText } list-disc list-inside space-y-1` } >
96+ < li > GPS 모듈이 있는 기기에서 1초마다 정확한 위치 정보 수집</ li >
97+ < li > 실시간으로 위치 이동 경로를 지도에 표시</ li >
98+ < li > 다양한 이동 수단 테스트 지원</ li >
99+ < li > 위치 정보 누적 및 이동 경로 기록 기능 제공</ li >
100+ </ ul >
101+ </ div >
102+ </ div >
103+ </ div >
104+ </ section >
105+
106+ { /* 추가 기능 섹션 */ }
107+ < section className = { `${ currentTheme . cardBg } rounded-lg shadow-lg p-8` } >
108+ < h2 className = "text-2xl font-bold mb-6" > 추가 제공 기능</ h2 >
109+ < div className = "grid md:grid-cols-2 gap-6" >
110+ < div >
111+ < h3 className = "text-lg font-semibold text-blue-500 mb-3" > GPX 파일 관리</ h3 >
112+ < ul className = { `${ currentTheme . mutedText } list-disc list-inside space-y-1` } >
113+ < li > 다양한 GPX 파일을 업로드 및 관리 가능</ li >
114+ < li > 경로별 테스트 시나리오 저장 및 불러오기 지원</ li >
115+ </ ul >
116+ </ div >
117+ < div >
118+ < h3 className = "text-lg font-semibold text-blue-500 mb-3" > 로그 및 기록 기능</ h3 >
119+ < ul className = { `${ currentTheme . mutedText } list-disc list-inside space-y-1` } >
120+ < li > 위치 정보와 이동 경로를 기록</ li >
121+ < li > 테스트 결과를 파일로 저장하거나 분석에 활용 가능</ li >
122+ </ ul >
123+ </ div >
124+ </ div >
125+ </ section >
126+
127+ { /* 참고 사항 섹션 */ }
128+ < section className = { `${ currentTheme . cardBg } rounded-lg shadow-lg p-8` } >
129+ < h2 className = "text-2xl font-bold mb-4" > 참고 사항</ h2 >
130+ < ul className = { `${ currentTheme . mutedText } list-disc list-inside space-y-2` } >
131+ < li > 정확한 테스트를 위해 실시간 모드에서는 GPS 모듈이 장착된 장비 사용을 권장합니다.</ li >
132+ < li > GPX 파일은 GPS 기반 경로 데이터로, 실제 도로 상황을 반영한 경로 시뮬레이션에 활용됩니다.</ li >
133+ < li > IP 기반 위치 추적은 참고용으로만 사용하시고, 실제 서비스 품질 검증에는 GPS 기반 테스트를 권장합니다.</ li >
134+ </ ul >
135+ </ section >
136+
137+ { /* 데모 체험하기 버튼 섹션 추가 */ }
138+ < div className = "flex flex-col items-center py-8" >
139+ < p className = { `${ currentTheme . mutedText } text-center mb-6 text-lg` } >
140+ 지금 바로 WHERE CAR 에뮬레이터를 체험해보세요!
141+ </ p >
142+ < Link
143+ href = "/trial"
144+ className = "inline-flex items-center px-8 py-4 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors shadow-lg hover:shadow-xl"
145+ >
146+ < span className = "text-lg font-semibold" > 데모 체험하기</ span >
147+ < svg
148+ className = "w-5 h-5 ml-2"
149+ fill = "none"
150+ stroke = "currentColor"
151+ viewBox = "0 0 24 24"
152+ xmlns = "http://www.w3.org/2000/svg"
153+ >
154+ < path
155+ strokeLinecap = "round"
156+ strokeLinejoin = "round"
157+ strokeWidth = { 2 }
158+ d = "M13 7l5 5m0 0l-5 5m5-5H6"
159+ />
160+ </ svg >
161+ </ Link >
162+ </ div >
163+
164+ </ div >
165+ </ div >
166+ </ div >
167+ ) ;
168+ }
0 commit comments