실시간 풋살 매칭 플랫폼

1. 프로젝트 수행 방향

  1) 실시간 팀원매칭

  2) 팀 매칭 및 구장 기반 매칭

  3) 신뢰도 기반 매칭

  4) 실시간 채팅

2. 프로젝트 목적

이 프로젝트의 핵심 목적은 “실시간성”을 경험하는 것입니다.

WebSocket 기술 숙달: 일반적인 REST API(요청/응답) 방식이 아닌, 서버와 클라이언트가 지속적인 연결을 맺고 양방향으로 데이터를 주고받는 WebSocket 통신을 구현하고 이해하는 것이 주된 목표입니다.

동시성 관리: 여러 사용자가 동시에 접속하고, 매칭을 요청하고, 채팅을 보내는 상황을 처리하는 백엔드 로직을 경험합니다.

즉각적인 사용자 경험 제공: 사용자가 "같이 풋살 할 사람!" 하고 방을 만들면, 다른 사용자들이 이 방을 즉시 볼 수 있어야 합니다. 또한, 매칭이 성사되거나 채팅을 보낼 때 페이지 새로고침 없이 바로바로 정보가 반영되어야 합니다.

3. 필수 기능

  1. 사용자 관련 (User) :
  1. 회원가입 (이메일/소셜 로그인)

  2. 프로필 관리 (닉네임, 선호 지역, 선호 포지션, 실력 자가 진단)

  3. 내 정보 (매너 점수, 실력 티어, 경기 이력) 조회

  1. 매칭 관련 (Matching) :

    1. 경기(방) 생성 (날짜, 시간, 풋살장 위치, 모집 인원, 실력 제한)

    2. 경기 목록 조회 (위치 기반 필터링, 시간순 정렬)

    3. 매칭 신청 및 호스트의 수락/거절 기능

    4. 실시간 통신 관련 (Real-time / WebSocket)

    5. 매칭 신청/수락/거절에 대한 실시간 알림(수신자에게 푸시)

    6. 매칭 완료된 유저 간 1:1 또는 그룹 채팅

4. 포함 기술

  1. 백엔드 (Backend) - API 서버 : Java Spring Boot
  2. 실시간 통신 (Real-time) : WebSocket
  3. 데이터베이스 (Database) : MySQL
  4. 인증 : JWT (JSON Web Token)
  5. 배포 및 관리 (DevOps) : Docker, AWS