Skip to content

Latest commit

 

History

History
78 lines (63 loc) · 2.55 KB

File metadata and controls

78 lines (63 loc) · 2.55 KB

RunMate Backend 기술 스택

🚀 런타임 & 언어

  • Node.js - JavaScript 런타임 환경
  • TypeScript (v5.9.3) - 정적 타입 언어

🌐 웹 프레임워크

  • Express (v5.1.0) - Node.js 웹 애플리케이션 프레임워크
  • HTTP Server - Socket.io를 위한 HTTP 서버

🗄️ 데이터베이스 & ORM

  • PostgreSQL - 관계형 데이터베이스
  • Prisma (v6.19.0) - 차세대 ORM
    • 타입 안전한 데이터베이스 클라이언트
    • 마이그레이션 관리
    • 스키마 기반 데이터 모델링

🔐 인증 & 보안

  • JWT (jsonwebtoken) (v9.0.2) - 토큰 기반 인증
  • bcryptjs (v3.0.3) - 비밀번호 해싱
  • CORS (v2.8.5) - Cross-Origin Resource Sharing

📁 파일 업로드 & 스토리지

  • AWS S3 (@aws-sdk/client-s3 v3.933.0) - 클라우드 스토리지
  • Multer (v2.0.2) - 파일 업로드 미들웨어
  • Multer-S3 (v3.0.1) - S3 직접 업로드

💬 실시간 통신

  • Socket.io (v4.8.1) - 실시간 양방향 통신 (채팅 기능)

📚 API 문서화

  • Swagger JSDoc (v6.2.8) - JSDoc 주석 기반 API 문서 생성
  • Swagger UI Express (v5.0.1) - Swagger UI 제공

🔧 개발 도구

  • ts-node-dev (v2.0.0) - TypeScript 개발 서버 (핫 리로드)
  • dotenv (v17.2.3) - 환경 변수 관리

📦 기타 라이브러리

  • Firebase Admin (v13.6.0) - Firebase 관리 SDK (푸시 알림 등에 사용 가능)

🏗️ 프로젝트 구조

src/
├── config/          # 설정 파일 (Swagger 등)
├── middleware/      # 미들웨어 (인증 등)
├── routes/          # API 라우트
│   ├── auth.routes.ts
│   ├── user.routes.ts
│   ├── tag.routes.ts
│   ├── runs.routes.ts
│   ├── like.routes.ts
│   ├── post.routes.ts
│   ├── achievement.routes.ts
│   └── chat.routes.ts
├── socket/          # Socket.io 설정
└── server.ts        # 메인 서버 파일

prisma/
├── schema.prisma    # 데이터베이스 스키마
└── migrations/      # 마이그레이션 파일

🎯 주요 기능별 기술

  • 인증: JWT + bcryptjs
  • 데이터베이스: Prisma ORM + PostgreSQL
  • 파일 업로드: Multer + AWS S3
  • 실시간 채팅: Socket.io
  • API 문서: Swagger/OpenAPI 3.0
  • 개발 환경: TypeScript + ts-node-dev

📝 스크립트

  • npm run dev - 개발 서버 실행 (핫 리로드)
  • npm run build - TypeScript 컴파일
  • npm start - 프로덕션 서버 실행
  • npm run seed - 데이터베이스 시드 실행