뒤로
한경민
한경민 ·

기절초퐁 (4인팀) 프로젝트 소개

친구와 함께하는 채팅과 멀티플레이 Pong 게임 웹서비스

Github 레포지토리 : github.com/brilliantshell/ft_transcendence

개발 기간 : 2022.12. ~ 2023.03.


0 기술 스택

1 기능

🗝️ 로그인

  • 42 API OAuth 로 1차 인증 후, access token & refresh token 발급하여 유저 인증
  • refresh token 의 재사용 감지 기능을 추가하여 보안 강화
  • Nodemailer 를 활용하여 이메일 인증코드 2차 인증

🧒 유저 프로필

  • 닉네임, 프로필 사진 수정 및 2차 인증 설정
  • 유저 접속 상태(🟢 online / 🟠 in-game / 🔴 offline) 실시간 업데이트
  • Pong 게임 레벨, 전적, 업적

🕹️ 멀티플레이 Pong 게임

  • 실시간 관전 가능한 2D 반응형 1 vs 1 Pong 게임
  • 네트워크 지연 및 재연결 시에도 게임 session 유지
  • 다양한 게임 모드 지원 (공 사이즈 2x, 짧은 paddle)
  • 플레이어 랭킹 보드

💬 채팅

  • 실시간 메시지 전송 및 수신
  • 유저 간 DM 기능
  • 채팅 방 소유자(owner)
  • 채팅 방 모드 및 비밀번호 설정, 참여자에게 채널 권한을 부여하거나 삭제하는 등 모든 권한
  • 채팅 방 관리자(admin)
  • 다른 유저를 채널에서 추방하거나 일정 시간 동안 음소거 할 수 있는 권한
  • 유저를 검색하고 채팅 방에 초대
  • 전체 채팅 방 리스트에서 생성 또는 삭제된 채팅방, 읽지 않은 메시지 개수, 접근 권한 변경 등을 실시간 반영

👯 유저 관계

  • 친구 리스트에서 받거나 보낸 친구 요청과 내 친구들을 간편하게 확인
  • 차단 시 일부 상호 작용 제한 (채팅 숨김, 친구 요청 금지, 게임 초대 금지, etc.)

2 설계 문서

3 역할 및 기여

3.0 기여도

  • 커밋 : 41% (234/575 commits without merges)
  • 이슈 : 48% (95/200 assigned issues)
  • PR : 45% (67/149 merged PRs)

3.1 역할

Backend

  • 성능 개선을 위한 유저-to-유저, 유저-to-채팅방 관계 데이터 in-memory 캐싱
  • 멀티플레이 Pong 게임 플레이 및 관전 API 담당하는 GameModule 구현
  • 유저 관계 및 접속 상태 CRUD & 실시간 업데이트 API 담당하는 UserModule 구현
  • 플레이어 랭킹 보드 데이터 가공 및 실시간 업데이트 API 담당하는 RanksModule 구현
  • Jest 로 각 service 객체 유닛 테스트 및 supertest 로 controller & gateway e2e 테스트

Frontend

  • 게임 대기방 & 게임 플레이 반응형 UI/UX
2

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.