본문 바로가기
프로그래밍/Game Dev

웹 서버 방식의 게임 서버 정리

by YuminK 2023. 8. 19.

최흥배님의 '웹 서버 방식의 게임 서버' 영상을 보고 정리한 글입니다.

https://www.youtube.com/watch?v=NuxHxHbU-jU&ab_channel=%EC%B5%9C%ED%9D%A5%EB%B0%B0

 

Socket 서버 방식의 게임 서버

1. 게임 서버는 일반적으로 socket 서버이다.

2. 실시간 통신이 많이 필요한 곳에서 주로 사용한다.

3. TCP/UDP, IOCP

웹서버 기반 게임 서버

1. 주로 모바일 게임에서 사용한다.

2. 수집형 RPG 게임들에서 주로 사용
3. 백엔드 개발과 다르지 않음. 
4. 웹 프론트 기술 스택은 사용하지 않음. (게임 엔진을 쓰지...)
5. 주로 POST 방식의 통신 

 

사용하는 웹서버들
C#(ASP.Net core)
Java(Spring)
PHP 

Nodejs 등등

 

C#
Unity에서 사용하는 언어로 ASP.NET으로 언어 통일을 하려는 경향이 있다.
문제는 한국은 Spring아니면 Nodejs를 사용하는 경우가 많다. (수요도 적고 자료도 없음)

웹 서버는 요청을 주고 DB에 저장하고 데이터를 가져오는 방식(메모리에 데이터 저장X)
그래서 DB의 역할이 매우 중요하다. 

소켓 서버는 메모리에서 데이터를 많이 들고 처리하는 경우가 많다. 

DB는 중요하지만 웹 서버보다 덜 중요한 느낌?

모바일의 성능 때문에 HTTP 통신을 기반으로 선택한 것도 있다. 

예전 같은 경우에는 Socket 통신하면 성능이 안 나오는 경우가 많았다.

웹서버 방식의 경우 로드밸런서가 서버를 연결시켜준다. 확장성이 좋다. 패치도 편하다.

(Socket 서버는 상대적으로 어렵다)

포트폴리오를 개발한다면, 둘 다 하는 것을 추천한다.
실시간 통신이 중요한 게임도 웹서버를 같이 쓰는 경우도 많다. 

 

추천하는 기술스택(최흥배님의 의견)

C#을 공부해서 ASP.NET을 배우는 것을 추천하지만 다른 언어로 공부해도 괜찮다.

Socket 기반이든 웹 서버 기반이든 다 사용한다.

Socket 기반 통신이 어렵다면 웹 서버 기반이라도 익히는 것을 추천한다. 


나의 의견

실시간 통신을 사용하지 않는 게임에서 웹서버 기반으로 개발하는 경우가 있다는 것을 알게 되었다.

또한 실시간 통신을 필요로 하는 게임 역시 두 방식을 혼용해서 사용한다는 것도 알게 되었다. 

 

현재 나의 경우에는 두 방식 모두 관심이 있는 편이다.

어느 하나에 초점을 맞추지 않고 두 방식 모두 공부하면서 포트폴리오를 만들어보면 좋을 것 같다. 

'프로그래밍 > Game Dev' 카테고리의 다른 글

[C#] MessagePack  (0) 2023.08.26
[C#] 메모리 베리어  (0) 2023.08.26
[C#] 캐시 메모리 철학  (0) 2023.08.26
[C#] 쓰레드 생성  (0) 2023.08.26
채용 정보를 통해 알아보는 게임 서버 기술 스택 정리  (0) 2023.08.19

댓글