{"id":29479207,"url":"https://github.com/traguild/traguild-backend","last_synced_at":"2026-04-15T10:36:02.318Z","repository":{"id":304492523,"uuid":"1018483292","full_name":"traguild/traguild-backend","owner":"traguild","description":"모험가 길드 (API)","archived":false,"fork":false,"pushed_at":"2025-12-13T06:59:40.000Z","size":389,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-14T20:57:56.571Z","etag":null,"topics":["docker","express","mysql","nodejs","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/traguild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-12T11:05:06.000Z","updated_at":"2025-12-13T06:59:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"94d533ae-f56e-4eb2-be5b-9e22afea5b5c","html_url":"https://github.com/traguild/traguild-backend","commit_stats":null,"previous_names":["traguild/traguild-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/traguild/traguild-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traguild%2Ftraguild-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traguild%2Ftraguild-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traguild%2Ftraguild-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traguild%2Ftraguild-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/traguild","download_url":"https://codeload.github.com/traguild/traguild-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traguild%2Ftraguild-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31837465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T10:26:52.245Z","status":"ssl_error","status_checked_at":"2026-04-15T10:26:51.649Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","express","mysql","nodejs","socket-io"],"created_at":"2025-07-14T20:12:43.179Z","updated_at":"2026-04-15T10:36:02.306Z","avatar_url":"https://github.com/traguild.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Traguild Backend (Capstone Design)\r\n\r\n이 프로젝트는 인제대학교 캡스톤 디자인 프로젝트인 **Traguild**의 백엔드 서버입니다. Node.js (Express)를 기반으로 구축되었으며, 여행 가이드 및 매칭 서비스를 위한 REST API를 제공합니다.\r\n\r\n## 🛠 기술 스택 (Tech Stack)\r\n\r\n### Core\r\n- **Node.js**: 자바스크립트 런타임 환경\r\n- **Express.js**: 웹 애플리케이션 프레임워크\r\n\r\n### Database \u0026 Storage\r\n- **MySQL (v8.0)**: 관계형 데이터베이스 관리 시스템 (RDBMS)\r\n- **Sequelize**: MySQL ORM (Object-Relational Mapping)\r\n- **Elasticsearch (v7.13.4)**: 검색 엔진 및 분석\r\n\r\n### Infrastructure \u0026 Tools\r\n- **Docker \u0026 Docker Compose**: 컨테이너 기반 배포 및 관리 환경\r\n- **Nginx**: 리버스 프록시 및 웹 서버\r\n- **Swagger**: API 문서화 도구\r\n\r\n### Major Libraries\r\n- **Socket.io**: 실시간 통신\r\n- **Bcrypt**: 비밀번호 해싱\r\n- **Twilio**: SMS 발송 서비스\r\n- **Winston**: 로깅 처리\r\n\r\n---\r\n\r\n## 🚀 시작하기 (Getting Started)\r\n\r\n프로젝트를 로컬 환경 또는 서버에 배포하기 위한 방법입니다.\r\n\r\n### 1. 전제 조건 (Prerequisites)\r\n- [Node.js](https://nodejs.org/) (v14 이상 권장)\r\n- [Docker](https://www.docker.com/) \u0026 Docker Compose\r\n\r\n### 2. 환경 변수 설정 (Environment Setup)\r\n프로젝트 루트 디렉토리에 `.env` 파일을 생성하고, `.env.example` 파일의 내용을 참고하여 환경 변수를 설정해주세요.\r\n\r\n```bash\r\ncp .env.example .env\r\n```\r\n\r\n**주요 환경 변수:**\r\n- `PORT`: 서버 포트 (기본값: 3000)\r\n- `DB_HOST`, `DB_USER`, `DB_PASSWORD`, `DB_NAME`: MySQL 데이터베이스 설정\r\n- `ES_HOST`, `ES_PORT`: Elasticsearch 설정\r\n\r\n### 3. 프로젝트 실행 (Running the Project)\r\n\r\n#### Docker 환경에서 실행 (권장)\r\nDocker Compose를 사용하여 데이터베이스(MySQL, Elasticsearch)와 애플리케이션을 한 번에 실행할 수 있습니다.\r\n\r\n**개발 모드 (Development):**\r\n```bash\r\nnpm run docker:dev\r\n```\r\n\u003e `mysql-dev` 및 `elastic-dev` 컨테이너와 함께 개발 프로필로 실행됩니다.\r\n\r\n**운영 모드 (Production):**\r\n```bash\r\nnpm run docker\r\n```\r\n\u003e `mysql-prod`, `elastic-prod`, 및 `nginx` 컨테이너와 함께 운영 프로필로 실행됩니다.\r\n\r\n#### 로컬 환경에서 실행 (NPM)\r\n데이터베이스가 로컬 또는 별도 서버에 실행 중이어야 합니다.\r\n\r\n```bash\r\n# 의존성 설치\r\nnpm install\r\n\r\n# 개발 모드 실행\r\nnpm run start:dev\r\n\r\n# 운영 모드 실행\r\nnpm run start\r\n```\r\n\r\n---\r\n\r\n## 📂 프로젝트 구조 (Project Structure)\r\n\r\n```\r\n├── src\r\n│   ├── config        # 환경 설정 및 라이브러리 설정 (Swagger, DB 연결 등)\r\n│   ├── controllers   # 요청 처리 및 응답 반환 로직 (Controller Layer)\r\n│   ├── middlewares   # Express 미들웨어\r\n│   ├── models        # Sequelize 데이터베이스 모델 정의\r\n│   ├── routes        # API 라우팅 정의\r\n│   ├── services      # 비즈니스 로직 처리 (Service Layer)\r\n│   ├── app.js        # Express 앱 초기화\r\n│   └── server.js     # 서버 실행 엔트리 포인트\r\n├── Dockerfile        # Docker 이미지 빌드 설정\r\n├── docker-compose.yml # Docker 서비스 오케스트레이션 설정\r\n├── nginx.conf        # Nginx 설정 파일\r\n└── package.json      # 프로젝트 의존성 및 스크립트 정의\r\n```\r\n\r\n## 📚 API 문서 (API Documentation)\r\n서버가 실행 중일 때, 브라우저에서 `/api-docs` 경로로 접속하면 Swagger UI를 통해 API 문서를 확인할 수 있습니다.\r\n- 로컬 개발 시: `http://localhost:3000/api-docs`\r\n- **[API 명세서 보러가기 (API.md)](./API.md)**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraguild%2Ftraguild-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftraguild%2Ftraguild-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraguild%2Ftraguild-backend/lists"}