학교 동아리 축제 기간에 새내기들에게 동아리를 홍보하기 위해 제작된 밥친구 매칭 서비스의 백엔드 서버입니다.
코매칭 ver3.5는 학교 동아리 축제 기간에 새내기들과 기존 동아리 구성원을 연결하여 밥친구를 매칭하는 웹 기반 서비스입니다. 개인 프로젝트로 제작되었으며, 본 문서는 백엔드 개발 내용을 중점적으로 다루고 있습니다.
- 사용자 인증: 카카오 OAuth 로그인 및 JWT를 통한 안전한 사용자 인증 처리
- 매칭 서비스: 사용자의 입학 연도, 나이 등 정보를 기반으로 최적의 밥친구를 자동 매칭
- 회원 정보 관리: 회원 가입 및 프로필 정보 관리 기능 제공
- 자동화 배포: Render 플랫폼을 활용한 CI/CD 파이프라인 구축
- Node.js & Express: 백엔드 서버와 RESTful API 구성
- MongoDB & Mongoose: NoSQL 데이터베이스 관리
- JWT (JSON Web Token): 사용자 인증 토큰 생성 및 검증
- Passport & Kakao OAuth: 카카오 계정을 이용한 소셜 로그인 인증
- Render: CI/CD 및 자동 배포 서비스
- dotenv & Cors: 환경 변수 관리 및 교차 출처 리소스 공유 처리
├── config
│ ├── db.js # MongoDB 연결 설정
│ ├── jwt.js # JWT 생성 및 검증
│ └── passport.js # Passport OAuth 설정
│
├── models
│ └── User.js # 사용자 정보 스키마 정의
│
├── routes
│ ├── auth.js # 인증 관련 라우팅
│ ├── matching.js # 매칭 기능 라우팅
│ └── user.js # 사용자 정보 관련 라우팅
│
├── scripts # DB 초기화 및 테스트 데이터 추가 스크립트
│
├── .env # 환경 변수 파일
├── package.json
└── server.js # 서버 시작 파일
git clone https://github.com/<your-username>/comatching-backend.git
cd comatching-backendnpm installPORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
FRONTEND_URL=https://your-frontend-url.comnpm run dev| Method | URL | Description |
|---|---|---|
| GET | /auth/kakao | 카카오 로그인 페이지 리다이렉트 |
| GET | /auth/kakao/callback | 카카오 로그인 인증 콜백 처리 |
| GET | /auth/logout | 사용자 로그아웃 처리 |
| GET | /auth/is-first-login | 사용자의 첫 로그인 여부 확인 |
| POST | /auth/signup | 사용자 회원가입 및 정보 업데이트 |
| GET | /api/matching | 사용자 매칭 요청 |
| GET | /api/matching/matched-users | 매칭된 사용자 목록 조회 |
- 카카오 OAuth를 사용한 소셜 로그인
- 로그인 성공 시 JWT 기반의 accessToken을 발급하고 쿠키에 저장
- 이후 요청마다 JWT 토큰의 유효성을 검사하여 보안 유지
- kakaoId: String
- admissionYear: String
- age: String
- hobby: Array[String]
- comment: String
- contactFrequency: String
- contact_id: String
- major: String
- mbti: String
- song: String
- isFirstLogin: Boolean
- isFirstMatch: Boolean
- matchedUsers: Array[ObjectId(User)]
- Render 플랫폼을 활용하여 자동화된 CI/CD 구축
- GitHub 저장소와 연동되어 커밋마다 자동 빌드 및 배포 수행
- HTTPS 및 SSL 인증서를 자동 제공하여 보안성 보장