[Server] #15-1. 서버 OT
게임 서버의 종류
게임 서버는 크게 두 가지 유형으로 나뉜다.
- WebServer
- 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…) |
장부 및 결제는 어떻게? | 데이터베이스 |
Leave a comment