안녕하세요, 이중혁입니다

배우고 경험한 기술들을 하나씩 정리하는 공간

홈 서버 아키텍처

Home Server Architecture
클릭하여 확대

게임 서비스 최적화 아키텍처 - 실시간 통신, 캐싱, 이벤트 스트리밍, 블록체인 연동

클라이언트 계층

Web ClientGame Client는 HTTP, WebSocket 을 통해 서버와 통신합니다.

Web Client

  • • HTTP → Api/Admin
  • • WebSocket → Socket
  • • RESTful API 통신

Game Client

  • • HTTP → Game
  • • WebSocket → Socket
  • • RESTful API 통신

서버 계층

핵심 서비스백그라운드 서비스로 구성된 마이크로서비스 아키텍처입니다.

Game

  • • 게임 로직 처리
  • • 플레이어 상태 관리
  • • 게임 세션 관리

Admin

  • • 관리자 기능
  • • 사용자 관리
  • • 데이터 관리

API

  • • REST API 제공
  • • 데이터 CRUD 작업
  • • 비즈니스 로직 처리
  • • 외부 시스템 연동

Socket

  • • 실시간 통신
  • • WebSocket 연결
  • • 채널/매치 큐 관리

Job

  • • 백그라운드 비동기 작업 처리
  • • Cron 스케줄러 연동
  • • Batch 작업 트리거

Batch

  • • 배치 데이터 처리
  • • 대용량 데이터 처리
  • • Kafka 이벤트 발행
  • • 정기 작업 실행

백엔드 서비스

데이터베이스, 이벤트 스트리밍, 블록체인으로 구성된 분산 데이터 아키텍처입니다.

MySQL

  • • 메인 데이터 저장소
  • • 트랜잭션 데이터
  • • 사용자 정보
  • • 게임 데이터

Redis

  • • 캐시/세션 관리
  • • 랭킹 시스템
  • • PubSub 메시징
  • • 실시간 데이터

MongoDB

  • • 로그 데이터 저장
  • • 분석 데이터
  • • 비정형 데이터
  • • 대용량 로그 처리

Kafka

  • • 실시간 이벤트 스트리밍
  • • 서비스 간 비동기 통신
  • • 이벤트 기반 아키텍처
  • • 대용량 메시지 처리

BlockChain

  • • 블록체인 트랜잭션
  • • 암호화폐 연동
  • • NFT 거래
  • • 스마트 컨트랙트

4Ground9 서버 아키텍처

4Ground9 Server Architecture
클릭하여 확대

다중 리전(SG/US) 분산 시스템과 플랫폼 계층, Publisher SDK를 통한 서버 아키텍처

Platform Region Server

PlatformRegionServer는 사용자의 리전을 결정하고 통합 계정 관리를 담당하는 핵심 서버입니다.

주요 기능

  • 리전 선택: 사용자의 위치/선호도에 따른 최적 리전 결정
  • 통합 계정 관리: 멀티 리전 간 계정 동기화
  • 로드 밸런싱: 리전별 서버 부하 분산
  • 장애 복구: 리전 장애 시 자동 페일오버

API Gateway 아키텍처

PlatformApiServerPlatformAdminServer API Gateway 역할을 수행합니다.

PlatformApiServer

  • • 클라이언트 API 요청의 단일 진입점
  • • US/SG ApiServer로 요청 라우팅
  • • 로드 밸런싱 및 부하 분산
  • • API 인증/인가 처리

PlatformAdminServer

  • • 관리 도구 요청의 단일 진입점
  • • US/SG AdminServer로 요청 라우팅
  • • 관리자 권한 검증
  • • 관리 기능 통합 제공

마이크로서비스 아키텍처

각 리전 클러스터(SG_Cluster, US_Cluster)는 서비스별로 분리된 마이크로서비스로 구성되어 있습니다.

GameServer

  • • 게임 로직 처리
  • • 실시간 게임플레이
  • • 플레이어 상태 관리
  • • 게임 세션 관리

BatchServer

  • • 백그라운드 작업
  • • 데이터 처리
  • • 정기 작업 스케줄링
  • • Publisher SDK 연동

ApiServer

  • • REST API 제공
  • • 데이터 CRUD 작업
  • • 비즈니스 로직 처리
  • • 외부 시스템 연동

AdminServer

  • • 관리자 기능
  • • 시스템 모니터링
  • • 사용자 관리
  • • Publisher SDK 연동

서비스 분리의 장점

  • 독립적 배포: 각 서비스별 독립적인 배포 및 스케일링
  • 장애 격리: 한 서비스의 장애가 다른 서비스에 영향 없음
  • 기술 스택 다양성: 서비스별 최적의 기술 스택 선택 가능
  • 개발 효율성: 팀별 독립적인 개발 및 유지보수

Luxon & Desperado 서버 통합 아키텍처

Luxon Desperado Server Architecture
클릭하여 확대

Luxon, Desperado, Exos 게임 서버와 Platform 서버, 블록체인 연동 구조

서버 구성

Luxon Cluster

  • Luxon_Job: 블록체인 작업 스케줄링
  • Luxon_Batch: 배치 처리 및 데이터 동기화
  • Luxon_Api: REST API 서버
  • Luxon_Admin: 관리자 기능
  • Polygon/Immutable: 블록체인 연동

DesperadoEh Cluster

  • Desperado: 게임 서버 (Admin, Api, Batch, Game)
  • Exos: 게임 서버 (Admin, Game)
  • Combine Game: 통합 게임 로직
  • 독립 DB: 각 서버별 MySQL/Redis

Platform Servers

  • Platform_Auth: 통합 인증 서버
  • Platform_Purchase: 결제 처리
  • Platform_Log: 로깅 서버
  • MongoDB: 로그 데이터 저장

블록체인 연동

Polygon | Immutable Mainnet과의 연동을 통해 Web3 게임 기능을 제공합니다.

주요 연동 기능

  • 퀘스트, 길드, 랭킹 등: 스마트 컨트랙트 로직
  • ERC721 ERC1155: 토큰, 데이터 관리
  • 지갑 연동: 사용자 지갑 연결
  • 탈|중앙화 관리

데이터 흐름

  • Luxon → Blockchain: 게임 데이터 블록체인 기록
  • Blockchain → Luxon: 블록체인 이벤트 처리
  • Batch Processing: 대량 트랜잭션 처리
  • 주기적으로 batch 작업: 동기화
  • Desperado 탈|중앙화 관리