서버
다른 컴퓨터들에서 연결이 가능하도록
대기 상태로 상시 실행 중인 프로그램을 의미한다
마치 영업 중인 식당과도 비슷하다
손님을 받기 위해서 식당을 열고 대기 중인 상태를 유지하고
손님이 오면 식당 메뉴/정책에 따라 서비스를 제공한다
게임 서버의 종류
- Web Server (ex. HTTP Server)
테이크아웃 포장 전문 식당과 유사하다
드물게 정보를 요청/갱신한다
실시간 Interaction이 필요하지 않다
식당에서 손님한테 먼저 접근할 일은 없다
손님이 음식을 받아서 떠나면, 그 이후론 연결이 끊긴다 (Stateless)
- Game Server (ex. TCP Server, Binary Server, Stateful Server,...)
일반적인 식당과 유사하다
요청/갱신 횟수가 많다
실시간 Interaction이 필요하다
언제라도 직원이 손님에게 접근 가능해야 한다
손님이 식당에 머무는 동안, 손님의 상태를 보며 최상의 서비스를 제공한다 (Stateful)
게임 서버의 제작
- Web Server 제작
Web Server는 단순히 게임에 국한되지 않고, 웹 서비스를 만드는 데 사용한다
처음부터 만드는 경우는 사실상 없고, 프레임워크를 하나 골라서 사용한다
ex. ASP.NET (C#), Spring (Java), NodeJS (Javascript), Django 및 Flash (Python), PHP,...
- Game Server 제작
게임의 장르 및 성격에 따라 요구사항이 너무나도 다르기에
최적의 프레임워크라는 것이 존재하기 애매하다
그래서 직접 서버를 만들어서 활용한다
게임서버의 핵심 요소
- 멀티스레드(Concurrency): 직원들 고용하고 운영하는 것
- 네트워크: 직원들이 손님과 어떤 방식으로 대화를 할지
- DB: 결제 및 장부 처리를 어떤 방식으로 할지
- 게임 로직: 손님들의 주문을 신속하고 맛있게 요리하는 로직
- 서버 구조: 위에서 정한 정책에 맞는 식당의 인테리어에 대해 정하는 것
'게임 서버' 카테고리의 다른 글
[게임서버 섹션2 Note] Lock 기초 (0) | 2024.12.28 |
---|---|
[게임서버 섹션2 Note] Atomic (0) | 2024.12.28 |
[게임서버 섹션2 Note] 스레드 생성 (0) | 2024.12.28 |
[게임서버 섹션2 Note] 멀티스레드 개론 (0) | 2024.12.28 |
[게임서버 섹션1 Note] 환경 설정 (0) | 2024.12.28 |