-
React 18 기반 SPA (Single Page Application)
-
Vite로 빠른 빌드 및 개발 환경 제공
-
주요 기능:
- JSON Formatter (
JsonPage) - Base64 Encoder/Decoder (
Base64Page) - SHA-256 Crypto Hash Generator (
CryptoPage) - GuestBook API 연동 (
GuestBookPage)
- JSON Formatter (
-
공통 페이지 레이아웃 컴포넌트(
PageLayout)를 사용하여 일관된 UI 유지
| 구분 | 라이브러리/도구 | 버전 |
|---|---|---|
| Frontend | React | 18.3.1 |
| Router | React Router DOM | 7.9.5 |
| HTTP 요청 | Axios | 1.13.2 |
| Crypto | Crypto-js | 4.2.0 |
| Bundler | Vite | 7.1.7 |
| Lint | ESLint + React Hooks | 9.x |
# 1. 저장소 클론
git clone <레포지토리 URL>
cd devhub-front
# 2. 의존성 설치
npm install
# 3. 개발 서버 실행
npm run dev
# 브라우저에서 http://localhost:5173/ 접속# 1. 빌드
npm run build
# 2. 빌드 결과 미리보기
npm run previewdevhub-front/
├─ public/
├─ src/
│ ├─ pages/
│ │ ├─ Home.jsx
│ │ ├─ JsonPage.jsx
│ │ ├─ Base64Page.jsx
│ │ ├─ CryptoPage.jsx
│ │ ├─ GuestBookPage.jsx
│ │ └─ PageLayout.jsx
│ ├─ App.jsx
│ ├─ App.css
│ └─ main.jsx
├─ package.json
└─ vite.config.js
pages/PageLayout.jsx: 모든 페이지에서 공통으로 사용하는 레이아웃 컴포넌트pages/*.jsx: 각 기능 페이지 (JSON, Base64, Crypto, GuestBook)App.jsx: 라우터 및 상단 네비게이션 정의App.css: 글로벌 스타일 및 공통 UI 스타일
| 경로 | 페이지 | 설명 |
|---|---|---|
/ |
Home | 프로젝트 소개 및 안내 |
/json |
JSON Formatter | 입력 JSON 문자열 포맷팅 및 확인 |
/base64 |
Base64 Encoder/Decoder | 문자열 인코딩/디코딩 |
/crypto |
Crypto Hash Generator | SHA-256 해시 생성 |
/guestbook |
GuestBook | API와 연동된 방명록 조회 및 입력 |
- 공통 레이아웃(
PageLayout)을 사용하여 페이지 UI 통일 - API 호출 시
fetch사용 -> 추후 변경 예정 - 스타일은
App.css또는 각 페이지별 inline 스타일/모듈 CSS 사용 가능
- React Router v7 기준으로
Routes및Route사용 - Crypto는 브라우저 내장
crypto.subtle또는crypto-js사용 가능 - Vite는 ES 모듈 기반으로
type: "module"설정 필요
# ESLint 검사
npm run lint@eslint/js,eslint-plugin-react-hooks,eslint-plugin-react-refresh포함- 코드 일관성 유지 및 오류 예방