부산 해수욕장 혼잡도 및 알림 서비스 - React 프론트엔드
# 1. 의존성 설치
npm install
# 2. 환경변수 설정
cp .env.example .env.local
# .env.local 파일을 편집하여 Firebase 설정 입력
# 3. 개발 서버 실행
npm run dev
# 브라우저에서 http://localhost:3000 자동 오픈
⚠️ 중요: 백엔드 서버(8080 포트)가 실행 중이어야 합니다!
-
백엔드 개발자용 가이드: Beach-complex/docs 가이드
- 프로젝트 구조, API 연동, Firebase FCM, PWA 설정 등 상세 설명
- 백엔드 개발자라면 이 문서를 먼저 읽으세요!
-
아이콘 생성 가이드:
public/ICONS_README.md- PWA 아이콘 생성 및 관리
- 프레임워크: React 18 + TypeScript
- 빌드 도구: Vite 6
- UI: Radix UI + TailwindCSS
- 푸시 알림: Firebase Cloud Messaging (FCM)
- 지도: Leaflet
- PWA: Service Worker + Manifest
frontend/
├── public/ # 정적 파일 (아이콘, manifest 등)
├── src/
│ ├── api/ # 백엔드 API 호출
│ ├── components/ # React 컴포넌트
│ ├── config/ # Firebase 등 설정
│ ├── hooks/ # 커스텀 Hook
│ ├── types/ # TypeScript 타입
│ └── utils/ # 유틸리티 함수
├── .env.example # 환경변수 템플릿
└── vite.config.ts # Vite 설정
npm run dev # 개발 서버 실행
npm run build # 프로덕션 빌드
npm run generate-icons # PWA 아이콘 생성.env.local 파일에 다음 값을 설정하세요:
# Firebase 설정 (Firebase Console에서 확인)
VITE_FIREBASE_API_KEY=
VITE_FIREBASE_AUTH_DOMAIN=
VITE_FIREBASE_PROJECT_ID=
VITE_FIREBASE_STORAGE_BUCKET=
VITE_FIREBASE_MESSAGING_SENDER_ID=
VITE_FIREBASE_APP_ID=
VITE_FIREBASE_MEASUREMENT_ID=
VITE_FIREBASE_VAPID_KEY=
.env.local은 절대 Git에 커밋하지 마세요!
npm run build빌드 결과물은 dist/ 폴더에 생성됩니다.
Option 1: Nginx
server {
root /var/www/beach-complex/frontend/dist;
location / {
try_files $uri /index.html;
}
location /api {
proxy_pass http://localhost:8080;
}
}Option 2: Spring Boot 정적 서빙(레거시/선택)
- 백엔드 레포에서 정적 서빙을 유지해야 하는 경우에만
dist/내용을 백엔드src/main/resources/static/으로 복사
- Firebase Console (https://console.firebase.google.com) 접속
- 프로젝트 생성
- 프로젝트 설정 > 웹 앱 추가
- Cloud Messaging > 웹 푸시 인증서 생성
- 설정값을
.env.local에 복사
자세한 내용은 백엔드 개발자용 가이드 참고
아이콘은 자동으로 생성됩니다:
npm run generate-icons아이콘 디자인을 변경하려면 public/logo.svg를 수정한 후 위 명령어를 실행하세요.
- F12 > Application > Service Workers
- "Unregister" 클릭
- Ctrl+Shift+R (강제 새로고침)
- 백엔드 서버(8080) 실행 확인
vite.config.ts의 proxy 설정 확인- F12 > Network 탭에서 요청 URL 확인
.env.local파일 존재 및 내용 확인- 개발 서버 재시작 (
npm run dev) public/firebase-config.js생성 확인
더 많은 문제 해결 방법은 백엔드 개발자용 가이드 참고
해수욕장 상태를 테스트하려면:
docker compose exec postgres psql -U beach -d beach_complex -c \
"UPDATE beaches SET status='normal' WHERE code='HAEUNDAE';
UPDATE beaches SET status='free' WHERE code='SONGJEONG';
UPDATE beaches SET status='busy' WHERE code='GWANGALLI';"팀원이 처음 세팅할 때:
# 1. 클론
git clone https://github.com/Beach-complex/frontend.git
cd frontend
# 2. 설치
npm install
# 3. 환경변수 복사
cp .env.example .env.local
# .env.local 편집 (팀 리더에게 Firebase 설정 요청)
# 4. 실행
npm run dev프로젝트: 비치체크 (Beach Check) 기술 스택: React + TypeScript + Vite + Firebase 팀: 백엔드 개발자들이 프론트엔드도 관리 중 원본 디자인: Figma