게임 서버란

박세건·2024년 7월 12일
0

기술 학습

목록 보기
11/11
post-thumbnail

게임서버와 웹서버의 차이

웹 서버

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

특징

  • 요청과 응답의 형태로 데이터 전달
    • 클라이언트가 요청하면 서버가 응답
  • HTTP 통신을 사용하기 때문에 Stateless, Connectionless한 통신
    • 요청에 대한 응답을 하면 통신 종료
  • 단방향 통신 모델

게임 서버

게임을 즐기기 위해 게임 클라이언트에 쓰이는 서버

  • TCP Server라고도 불린다
    • 웹 서버와 다르게 TCP 통신이기에 요청-응답 구조가 아님
  • 클라이언트가 서버로 패킷을 전송해도 응답 하지 않아도 됨
  • 요청이 없어도 서버에서 독자적으로 패킷 전송 가능
  • 실시간 통신이 중요

특징

  • 실시간 게임 데이터 전송 : UPD 통신 사용
  • 채팅, 로그인, 파일 전송 등 신뢰성 있는 데이터 전송 : TCP 통신 사용

    결과적으로, 게임 서버는 TCP,UDP 혼합 사용


웹 서버의 비중이 높은 게임(Social Network Game, SNG)

실시간 데이터를 전달해야하는 게임에서는 게임 서버를 이용하는 것이 효율 적이다. 하지만, 온라인 커뮤니티, 온라인 인맥 과 같은 유대관계 기반의 게임은 웹 서버의 비중이 높은 편이다.

ex) 타이니팜, 클래시 오브 클랜 등

  • 주로 아이템을 수집하는 수집형 형태를 띄는 경우가 많다.

결론

웹 서버 사용이 적합한 경우:

  • 정적 콘텐츠(HTML, CSS, 이미지 등) 제공이 주요 기능인 경우
  • 실시간 상호작용이 필요하지 않고, 요청-응답 방식의 데이터 처리가 주된 경우
  • 확장성이 중요하고 로드밸런싱 등의 기술을 활용할 수 있는 경우
  • 개발 및 유지보수 비용이 중요한 경우

게임 서버 사용이 적합한 경우:

  • 실시간 상호작용(캐릭터 움직임, 채팅 등)이 필수적인 경우
  • 게임 상태 정보를 지속적으로 관리해야 하는 경우
  • 빠른 반응성이 중요한 경우
  • 복잡한 게임 로직 처리가 필요한 경우

궁금한 것

왜 Http 통신을 사용하지 않을까?

  • 다른 유저의 움직임이 모든 유저에게 보여져야 한다
    • 즉, 요청하지 않아도 데이터가 클라이언트에게 전달되어야 함
    • 때문에! 실시간 통신이 중요하다
  • 작은 데이터를 빠르게 전송해야 하기 때문
    • 웹은 상대적으로 큰 데이터(HTML, 이미지 등)를 전송 해야함

왜 데이터 전송이 빠른 게임 서버를 웹에서 사용하지 않을까?

  • 개발 난이도 및 비용
    • 웹 서버에 비해 게임 서버는 실시간 통신, 상태관리 등 복잡한 기능이 필요하기에 난이도가 높다
  • 기술 스택 및 인력 확보
    • 게임 서버는 C/C++ 등의 저수준 언어를 사용하기 때문에 기술 인력 확보가 어려울 수 있다
    • 이와 반대로 웹 서버는 고수준의 언어를 사용하기 때문에 개발자의 확보가 상대적으로 용이
  • 서비스 확장성
    • 게임 서버는 실시간 상호작용을 유지하며 메모리에 저장하기 때문에 확장성이 불편합니다.
    • 하지만 웹 서버는 상태를 저장할 필요가 없어서(Stateless) 확장에 용이
profile
멋있는 사람 - 일단 하자

0개의 댓글