Skip to content

traguild/traguild-backend

Repository files navigation

Traguild Backend (Capstone Design)

이 프로젝트는 인제대학교 캡스톤 디자인 프로젝트인 Traguild의 백엔드 서버입니다. Node.js (Express)를 기반으로 구축되었으며, 여행 가이드 및 매칭 서비스를 위한 REST API를 제공합니다.

🛠 기술 스택 (Tech Stack)

Core

  • Node.js: 자바스크립트 런타임 환경
  • Express.js: 웹 애플리케이션 프레임워크

Database & Storage

  • MySQL (v8.0): 관계형 데이터베이스 관리 시스템 (RDBMS)
  • Sequelize: MySQL ORM (Object-Relational Mapping)
  • Elasticsearch (v7.13.4): 검색 엔진 및 분석

Infrastructure & Tools

  • Docker & Docker Compose: 컨테이너 기반 배포 및 관리 환경
  • Nginx: 리버스 프록시 및 웹 서버
  • Swagger: API 문서화 도구

Major Libraries

  • Socket.io: 실시간 통신
  • Bcrypt: 비밀번호 해싱
  • Twilio: SMS 발송 서비스
  • Winston: 로깅 처리

🚀 시작하기 (Getting Started)

프로젝트를 로컬 환경 또는 서버에 배포하기 위한 방법입니다.

1. 전제 조건 (Prerequisites)

2. 환경 변수 설정 (Environment Setup)

프로젝트 루트 디렉토리에 .env 파일을 생성하고, .env.example 파일의 내용을 참고하여 환경 변수를 설정해주세요.

cp .env.example .env

주요 환경 변수:

  • PORT: 서버 포트 (기본값: 3000)
  • DB_HOST, DB_USER, DB_PASSWORD, DB_NAME: MySQL 데이터베이스 설정
  • ES_HOST, ES_PORT: Elasticsearch 설정

3. 프로젝트 실행 (Running the Project)

Docker 환경에서 실행 (권장)

Docker Compose를 사용하여 데이터베이스(MySQL, Elasticsearch)와 애플리케이션을 한 번에 실행할 수 있습니다.

개발 모드 (Development):

npm run docker:dev

mysql-develastic-dev 컨테이너와 함께 개발 프로필로 실행됩니다.

운영 모드 (Production):

npm run docker

mysql-prod, elastic-prod, 및 nginx 컨테이너와 함께 운영 프로필로 실행됩니다.

로컬 환경에서 실행 (NPM)

데이터베이스가 로컬 또는 별도 서버에 실행 중이어야 합니다.

# 의존성 설치
npm install

# 개발 모드 실행
npm run start:dev

# 운영 모드 실행
npm run start

📂 프로젝트 구조 (Project Structure)

├── src
│   ├── config        # 환경 설정 및 라이브러리 설정 (Swagger, DB 연결 등)
│   ├── controllers   # 요청 처리 및 응답 반환 로직 (Controller Layer)
│   ├── middlewares   # Express 미들웨어
│   ├── models        # Sequelize 데이터베이스 모델 정의
│   ├── routes        # API 라우팅 정의
│   ├── services      # 비즈니스 로직 처리 (Service Layer)
│   ├── app.js        # Express 앱 초기화
│   └── server.js     # 서버 실행 엔트리 포인트
├── Dockerfile        # Docker 이미지 빌드 설정
├── docker-compose.yml # Docker 서비스 오케스트레이션 설정
├── nginx.conf        # Nginx 설정 파일
└── package.json      # 프로젝트 의존성 및 스크립트 정의

📚 API 문서 (API Documentation)

서버가 실행 중일 때, 브라우저에서 /api-docs 경로로 접속하면 Swagger UI를 통해 API 문서를 확인할 수 있습니다.

About

모험가 길드 (API)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •