지하철 실시간 도착 정보와 알림 서비스를 제공하는 Node.js 기반 서버입니다.
사용자는 웹소켓 및 푸시 알림을 통해 원하는 지하철의 도착 정보를 실시간으로 받아볼 수 있습니다.
- 회원가입/로그인/로그아웃
- JWT 기반 인증 및 세션 관리
- 지하철 실시간 정보 조회
- 서울 열린데이터광장 API를 활용한 실시간 도착 정보 제공
- 지하철 도착 알림 구독
- 특정 지하철/역을 추적하여 도착 시점에 웹 푸시 및 웹소켓 알림 제공
- 웹소켓 실시간 업데이트
- 클라이언트와의 실시간 데이터 송수신
POST /auth/signup
: 회원가입POST /auth/signin
: 로그인POST /auth/logout
: 로그아웃GET /user/me
: 내 정보 조회 (로그인 필요)POST /subscribe/
: 알림 구독 (로그인 필요)POST /subscribe/check
: 구독 상태 확인 (로그인 필요)
- WebSocket
- 실시간 지하철 정보 및 추적 상태를 클라이언트에 전송
- Web Push
- 지하철 도착 시점에 푸시 알림 발송
-
의존성 설치
yarn install # 또는 npm install
-
환경 변수 설정
프로젝트 루트에.env
파일을 생성하고 아래 항목을 설정하세요.# 데이터베이스 SEQUELIZE_PASSWORD=your_mysql_password DATABASE_PASSWORD=your_prod_mysql_password # JWT JWT_SECRET=your_jwt_secret RT_SECRET=your_refresh_token_secret COOKIE_SECRET=your_cookie_secret # Web Push VAPID_PUBLIC_KEY=your_vapid_public_key VAPID_PRIVATE_KEY=your_vapid_private_key # 서울 열린데이터광장 API VITE_API_KEY=your_seoul_openapi_key
-
DB 생성
yarn db:create # 또는 npm run db:create
-
서버 실행
- 개발:
yarn dev
또는npm run dev
- 운영:
yarn start
또는npm start
- 개발:
- Node.js, Express
- Sequelize, MySQL
- WebSocket, web-push
- JWT, bcrypt
- dotenv, cors 등