게임서버와 웹서버의 차이
웹 서버
HTTP 통신을 사용해 클라이언트의 요청에 해당하는 HTML문서, 이미지 등 으로 응답하는 서버를 의미

특징
- 요청과 응답의 형태로 데이터 전달
- HTTP 통신을 사용하기 때문에 Stateless, Connectionless한 통신
- 단방향 통신 모델
게임 서버
게임을 즐기기 위해 게임 클라이언트에 쓰이는 서버
- TCP Server라고도 불린다
- 웹 서버와 다르게 TCP 통신이기에 요청-응답 구조가 아님
- 클라이언트가 서버로 패킷을 전송해도 응답 하지 않아도 됨
- 요청이 없어도 서버에서 독자적으로 패킷 전송 가능
- 실시간 통신이 중요

특징
- 실시간 게임 데이터 전송 : UPD 통신 사용
- 채팅, 로그인, 파일 전송 등 신뢰성 있는 데이터 전송 : TCP 통신 사용
결과적으로, 게임 서버는 TCP,UDP 혼합 사용
웹 서버의 비중이 높은 게임(Social Network Game, SNG)
실시간 데이터를 전달해야하는 게임에서는 게임 서버를 이용하는 것이 효율 적이다. 하지만, 온라인 커뮤니티, 온라인 인맥 과 같은 유대관계 기반의 게임은 웹 서버의 비중이 높은 편이다.
ex) 타이니팜, 클래시 오브 클랜 등
- 주로 아이템을 수집하는 수집형 형태를 띄는 경우가 많다.
결론
웹 서버 사용이 적합한 경우:
- 정적 콘텐츠(HTML, CSS, 이미지 등) 제공이 주요 기능인 경우
- 실시간 상호작용이 필요하지 않고, 요청-응답 방식의 데이터 처리가 주된 경우
- 확장성이 중요하고 로드밸런싱 등의 기술을 활용할 수 있는 경우
- 개발 및 유지보수 비용이 중요한 경우
게임 서버 사용이 적합한 경우:
- 실시간 상호작용(캐릭터 움직임, 채팅 등)이 필수적인 경우
- 게임 상태 정보를 지속적으로 관리해야 하는 경우
- 빠른 반응성이 중요한 경우
- 복잡한 게임 로직 처리가 필요한 경우
궁금한 것
왜 Http 통신을 사용하지 않을까?
- 다른 유저의 움직임이 모든 유저에게 보여져야 한다
- 즉, 요청하지 않아도 데이터가 클라이언트에게 전달되어야 함
- 때문에! 실시간 통신이 중요하다
- 작은 데이터를 빠르게 전송해야 하기 때문
- 웹은 상대적으로 큰 데이터(HTML, 이미지 등)를 전송 해야함
왜 데이터 전송이 빠른 게임 서버를 웹에서 사용하지 않을까?
- 개발 난이도 및 비용
- 웹 서버에 비해 게임 서버는 실시간 통신, 상태관리 등 복잡한 기능이 필요하기에 난이도가 높다
- 기술 스택 및 인력 확보
- 게임 서버는 C/C++ 등의 저수준 언어를 사용하기 때문에 기술 인력 확보가 어려울 수 있다
- 이와 반대로 웹 서버는 고수준의 언어를 사용하기 때문에 개발자의 확보가 상대적으로 용이
- 서비스 확장성
- 게임 서버는 실시간 상호작용을 유지하며 메모리에 저장하기 때문에 확장성이 불편합니다.
- 하지만 웹 서버는 상태를 저장할 필요가 없어서(Stateless) 확장에 용이