팀 매칭의 새로운 기준을 제시하는 AI 기반 개발자 매칭 플랫폼
**Potential Radar(PR)**는 팀 매칭 플랫폼입니다. 프로젝트 리더에게는 필요한 기술 스택에 맞는 최적의 팀원을 추천하고, 개발자에게는 자신의 역량을 발휘할 수 있는 맞춤형 프로젝트를 연결합니다.
단순한 팀 프로젝트 매칭을 넘어, 성공적인 프로젝트 완수와 신뢰 기반의 개발자 생태계 조성을 목표로 합니다.
- 개인화된 추천: 사용자의 기술 스택, 프로젝트 경험, 동료 평가 데이터를 기반으로 최적의 팀원과 프로젝트를 양방향으로 추천
- 머신러닝 알고리즘: 과거 프로젝트 성공률과 팀워크 데이터를 학습하여 매칭 정확도 지속 개선
- Elasticsearch 기반: 실시간 검색과 복합 조건 필터링으로 원하는 조건의 프로젝트와 팀원을 빠르고 정확하게 발견
- 다중 검색 조건: 기술 스택, 경험 수준, 프로젝트 유형, 지역 등 다양한 조건으로 세밀한 검색 가능
- 프로젝트 이력 연동: 완료된 프로젝트가 자동으로 포트폴리오에 추가
- 평판 시스템: 팀원 간 상호 평가를 통한 신뢰도 점수 관리
- 성장 추적: 개발자의 기술 향상과 경험 누적을 시각적으로 표현
- OAuth2 통합: Google, Kakao 소셜 로그인 지원
- JWT 토큰: 안전한 인증/인가 시스템
- Redis 기반: 토큰 관리 및 세션 보안 강화
- Framework: Spring Boot 3.5.3
- Language: Java 17
- Security: Spring Security + OAuth2 + JWT
- Database: PostgreSQL (HikariCP 커넥션 풀)
- Search Engine: Elasticsearch 8.0
- Cache: Redis 7.0
- Cloud Storage: AWS S3
- Connection Pool: HikariCP (최적화된 데이터베이스 연결 관리)
- Email: Spring Mail (Gmail SMTP)
- WebSocket: 실시간 알림 시스템
- Validation: Spring Validation
- AI 추천 서비스: Python API 연동 (FastAPI)
- OAuth Providers: Google, Kakao
- File Storage: AWS S3 (프로필 이미지, 포트폴리오 파일)
User (사용자)
├── UserProfile (프로필)
├── UserTechStack (기술 스택)
├── UserEducation (학력)
├── UserExperience (경력)
└── UserProject (프로젝트 이력)
Project (프로젝트)
├── ProjectTechStack (필요 기술)
├── ProjectTechPart (모집 포지션)
├── ProjectMember (팀원)
├── ProjectApplication (지원)
└── ProjectComment (댓글)
Recommendation (추천)
├── RecommendationHistory (추천 이력)
└── MemberExplanation (추천 근거)
# Java 17
java --version
# PostgreSQL 14+
psql --version
# Redis 7.0+
redis-server --version
# Elasticsearch 8.0+
elasticsearch --version- 저장소 클론
git clone https://github.com/PotentialRadar/PR-Back.git
cd PR-Back- 데이터베이스 설정
-- PostgreSQL 데이터베이스 생성
CREATE DATABASE pr;
CREATE USER postgres WITH PASSWORD '1234';
GRANT ALL PRIVILEGES ON DATABASE pr TO postgres;- Redis 서버 시작
redis-server- Elasticsearch 서버 시작
# Elasticsearch 실행
elasticsearch- 애플리케이션 설정
# application.yml에서 환경별 설정 확인
# - 데이터베이스 연결 정보
# - Redis 연결 정보
# - Elasticsearch 연결 정보
# - OAuth2 클라이언트 정보
# - AWS S3 설정- 애플리케이션 실행
./gradlew bootRun서버가 http://localhost:8080에서 실행됩니다.
POST /api/users/signup- 회원가입POST /api/users/login- 로그인POST /api/auth/token- 토큰 갱신
GET /api/users/me- 내 정보 조회PUT /api/users/profile- 프로필 수정POST /api/users/tech-stacks- 기술 스택 추가
GET /api/projects- 프로젝트 목록 조회POST /api/projects- 프로젝트 생성POST /api/projects/{id}/apply- 프로젝트 지원
GET /api/search/projects- 프로젝트 검색GET /api/search/users- 사용자 검색
GET /api/recommendations/members- 팀원 추천GET /api/recommendations/projects- 프로젝트 추천
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Frontend │ │ Spring Boot │ │ PostgreSQL │
│ (React) │◄──►│ Backend │◄──►│ Database │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐ ┌─────────────────┐
│ Elasticsearch │ │ Redis │
│ (검색/분석) │ │ (캐시/세션) │
└──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐ ┌─────────────────┐
│ Python API │ │ AWS S3 │
│ (AI 추천) │ │ (파일 저장) │
└──────────────────┘ └─────────────────┘
spring:
datasource:
hikari:
maximum-pool-size: 6
minimum-idle: 2
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000app:
search:
indices:
default:
number-of-replicas: 0
number-of-shards: 1spring:
data:
redis:
host: localhost
port: 6379
timeout: 2000ms- 이 저장소를 포크합니다
- 새 기능 브랜치를 생성합니다 (
git checkout -b feature/amazing-feature) - 변경사항을 커밋합니다 (
git commit -m 'Add amazing feature') - 브랜치에 푸시합니다 (
git push origin feature/amazing-feature) - Pull Request를 생성합니다
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
Potential Radar Team - 개발자 생태계의 새로운 가능성을 탐지합니다.
- 프로젝트 라이프사이클: 생성 → 지원 → 승인 → 마감 → 리뷰 전 과정
- 파일 관리: AWS S3 연동 및 파일 업로드/다운로드
- 소셜 기능: 댓글, 좋아요, 상호작용 시스템
- 고성능 검색: Elasticsearch 기반 실시간 검색 엔진
- 캐싱 시스템: Redis를 활용한 인기 검색어 및 성능 최적화
- 실시간 알림: Server-Sent Events(SSE) 기반 알림 시스템
- 지능형 매칭: 사용자 선호도 및 프로젝트 특성 기반 추천
- 하이브리드 알고리즘: 협업 필터링 + 콘텐츠 기반 필터링
- 마이크로서비스: Spring Boot와 FastAPI 간 효율적 연동
- 학습 시스템: 사용자 피드백 기반 실시간 모델 개선
- 인증/인가: JWT 토큰 기반 보안 시스템 + Redis 세션 관리
- 소셜 로그인: OAuth2 프로토콜 기반 Google, Kakao 연동
- 사용자 관리: 회원가입, 프로필 관리, 포트폴리오 시스템
- 이메일 인증: SMTP 기반 이메일 검증 시스템
🌟 Star this project if you found it helpful!