웹 서버와 게임 서버 비교 / VS Code 실행 환경 설정

심지태
∙∙조회 5

서버란? - 다른 컴퓨터에서 연결이 가능하도록 대기 상태로 상시 실행 중인 프로그램

웹 서버와 게임 서버 차이

웹 서버(테이크아웃 포장 전문 식당) - HTTP Server, 질의/응답 형태

  • 서버와 클라이언트가 실시간으로 교류하기보다 필요할 때 정보를 요청·갱신하며, 일반적으로 실시간 상호작용이 필요하지 않다.
  • 게임에 국한되지 않고, 웹 서비스를 만드는 데 사용 (구글, 아마존, 네이버 등)
  • 처음부터 만드는 경우는 사실상 없고, 프레임워크를 하나 골라서 사용(ASP.NET, Spring, Node.js)

게임 서버(일반 식당) - TCP Server, 실시간 Interaction으로 교류

  • 요청/갱신 횟수가 많고 실시간 Interaction이 필요하다.

  • 게임/장르에 따라 요구사항이 다르기 때문에 최적의 프레임워크가 존재하기 애매함

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

서버 테스트 환경 구축

  1. Server, ServerCore, DummyClient 프로젝트를 각각 준비한다.

Server - 클라이언트 접속을 처리하는 실행 프로젝트

ServerCore - 서버의 핵심 기능을 담은 공통 라이브러리

DummyClient - 테스트용 가상 클라이언트를 실행하는 프로젝트

  1. 여러 프로젝트를 함께 실행할 디버그 설정을 만든다.

우선 Ctrl+Shift+D를 눌러 실행 및 디버그 화면을 연다.

create a launch.json file을 선택한다. launch.json은 VS Code의 실행·디버그 설정을 저장하는 파일이다.

상단의 디버거 목록에서 C#을 선택한다.

Add Configuration에서 {} .NET: Launch C# project를 선택한다. configuration은 하나의 실행 대상을 위한 디버그 설정이며, 이 메뉴는 C# 프로젝트용 설정 틀을 추가한다.

  1. launch.json의 configurations에 Server와 DummyClient의 디버그 구성을 각각 추가하고 실행할 프로젝트를 지정한다.

  4. configurations와 같은 수준에 compounds를 추가한다(Ctrl+Space). compounds는 여러 디버그 구성을 함께 시작하도록 묶는 항목이다.

  1. 프로젝트를 함께 실행할 복합 구성의 이름을 정하고, Server와 DummyClient의 디버그 구성을 지정한다.

  1. Run and Debug 목록에서 방금 만든 복합 실행 구성을 선택하고 F5를 누른다.