기간: 2024.04 ~ 2024.06 (3개월)

역할: 서버 개발 (팀원)

기술 스택: NestJS, TypeORM, Redis, MySQL, JWT, OAuth 2.0, Docker


프로젝트 개요

게임 런처의 인증과 게임 로직을 담당하는 백엔드 시스템으로, Auth Server와 Game Server로 분리된 마이크로서비스 구조입니다. Facebook / Google / Apple 소셜 로그인을 지원하고, 대규모 트래픽 처리를 위한 Multi-Shard Database와 동시성 제어 메커니즘을 구현했습니다.

시스템 플로우

  1. 인증: OAuth 2.0 기반 소셜 로그인 → JWT 발급 → 세션 관리
  2. 게임 로직: 8단계 동시성 제어(Sequence 검증 → Lock 획득 → 비즈니스 로직 → 보상 지급)
  3. 데이터 관리: PHP Static Data 자동 변환 → TypeScript Entity 생성 → 메모리 로드

핵심 기여

1. Delegate 패턴 기반 멀티 플랫폼 OAuth 2.0 통합

배경

게임 런처 출시와 함께 Facebook, Google, Apple 소셜 로그인을 동시에 지원해야 했습니다. 각 플랫폼마다 OAuth 프로토콜은 동일하지만 API 엔드포인트, 토큰 검증 방식, 사용자 정보 조회 포맷이 모두 달랐습니다.

해결

Delegate 패턴으로 플랫폼별 OAuth 로직을 분리하고, 런타임에 동적으로 선택되도록 구현했습니다.

기술 구현