[Server] #15-1. 서버 OT

게임 서버의 종류

게임 서버는 크게 두 가지 유형으로 나뉜다.

  1. WebServer
  2. GameServer

WebServer

  • 예시 : 클래시 오브 클랜
  • 비유 : 테이크아웃 포장 전문 식당. 손님이 음식을 받아 떠나면 그 이후로는 연락이 끊긴다.
  • 특징
    • 드물게 정보를 요청, 갱신한다.
    • 실시간 Interaction이 필요하지 않다.
    • Stateless - 손님이 떠나면 손님의 상태를 당분간 잊고 지낸다.
    • 웹 서비스(구글, 아마존, 네이버 등)를 만드는 데 사용되며, 처음부터 만들기보다 프레임워크를 하나 골라서 사용한다.
  • 사용 기술 : ASP.NET(C#), Spring(Java), Node JS(JavaScript) 등
  • 장단점
    • 장점 : 확장성이 뛰어나며, 유지보수가 상대적으로 용이하다.
    • 단점 : 실시간 상호작용이 어렵다.

GameServer

  • 예시 : 스타 크래프트, 월드 오브 워
  • 비유 : 일반 식당. 서빙 직원이 와서 손님에게 물어볼 수도 있고, 손님이 추가 주문을 하기도 한다.
  • 특징
    • 요청, 갱신 횟수가 많다.
    • 실시간 Interaction이 필요하다.
    • Stateful - 손님이 식당에 머무는 동안 손님의 상태를 보며 최상의 서비스를 제공한다.
    • 최적의 framework라는 게 존재하지 않는다(게임마다 요구 사항이 너무 다름).
  • 사용 기술 : TCP 기반 네트워크 프로토콜, 커스텀 서버 프레임워크
  • 장단점
    • 장점 : 실시간 상호작용이 가능하여 FPS, MMOPRG 등의 게임 개발에 필수적이다.
    • 단점 : 서버 개발 난이도가 높고, 최적화 및 확장성이 어렵다.
  • 참고
    • 서버를 직접 구현하면 4~5년 걸리고, 언리얼 엔진 데디 서버를 사용하면 1년 걸린다.
    • 데디 서버는 꼭 공부하는 게 좋다!!

비교하기

고려할 대상 게임 서버의 유사성
손님 한도(몇 명까지 받을 수 있는지) 최대 동시 접속자
한 방에 들어갈 수 있는 손님의 일행 한도(인테리어) 게임 장르 및 채널링
직원 역할 구분(겸직 가능) 게임 로직(요리사), 네트워크(서빙), DB(결제)
직원은 몇 명을 둘지? 쓰레드 개수
요리사/서빙/결제 직원 비율을 어떻게? 쓰레드 모델
주문은 어떻게 받을까?(손님이 불러서? 벨?) 네트워크 모델
손님이 기다릴 수 있는 시간 한도(패스트 푸드? 고급?) 반응성(FPS, MMORPG…)
장부 및 결제는 어떻게? 데이터베이스

출처 Rookiss님 게임 프로그래머 입문 올인원

Categories:

Updated:

Leave a comment