dh_0e

[특강] 게임 서버 아키텍처 본문

내일배움캠프/특강

[특강] 게임 서버 아키텍처

dh_0e 2024. 8. 2. 22:00

서버 아키텍처 종류

일반적인 클라이언트 - 서버 아키텍처

  • 게임 서버의 모든 기능이 하나의 코드베이스와 배포 단위로 구성되는 방식
  • 배포를 단순하게 할 수 있고, 초기 개발 및 설정이 쉬움
  • 확장성과 유지보수에 어려움이 있음
  • 초기 스타트업이나 소규모 프로젝트에 적용하기에 좋음

 

데디케이트 서버 아키텍처

  • 게임 회사에서 관리하는 전용 서버를 이용하여 게임 세션을 호스팅하는 방식
  • 하나의 서버가 게임 한판 만을 전담
  • 높은 대역폭과 최적화된 네트워크 환경을 제공하여 지연 시간을 최소화함
  • FPS게임에서 많이 사용되는 아키텍처로 일관성을 유지할 수 있음

 

분산 서버 아키텍처

  • 단일 서버 대신 여러 서버가 협력하여 하나의 시스템을 구성하는 방식
  • 대규모 사용자 기반 처리, 시스템의 가용성과 확장성을 극대화하기에 용이함
  • 대부분의 상용 게임들이 이 아키텍처를 사용중임

 

Stateful 서버는 분산 서버로 운영할 수 있는가?

  • Stateless 서버는 비연결성 서버로 각 요청이 독립적이므로 로드 밸런서를 통해 여러 서버로 부냅하면 되므로 분산 서버 아키텍처로 가도 큰 문제가 없음
  • Stateful 서버는 세션 정보와 상태를 유지해야 한다는 조건이 있기 때문에 적절한 방법을 통해 분산 서버로 녹여내야 함

세션 클러스터링 기법

  • 세션 정보 자체를 서버가 직접 들고 있지 않고, 여러 서버 간에 세션 정보를 공유하는 것이 특징
  • Redis, Memcached와 같은 캐시 엔진을 지원하는 메모리 저장소를 사용하여 구현