서버-클라이언트와 웹, 게임 서버

한민우·2024년 8월 26일

CS

목록 보기
1/11

서버와 클라이언트의 개념

서버(Server)란?

클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

요청을 받으면, 그 요청에 따라 데이터를 처리하거나 특정 작업을 수행한 후 클라이언트에 응답하는 역할을 한다.

예를 들면 웹 서버(web server)가 있다.
웹 서버는 웹 브라우저로부터 요청을 받으면 웹 페이지(HTML, CSS, JS 등)을 제공한다.

클라이언트(Client)란?

네트워크를 통하여 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용 프로그램이나 서비스를 말한다.

서버에 서비스를 요청하고, 서비스를 제공 받는 역할을 한다.

예를 들면 웹 클라이언트(web client)가 있다.
가장 일반적인 예로 웹 브라우저가 있다. 사용자가 브라우저에 URL을 입력하면, 웹 브라우저는 해당 주소에 대한 HTTP 요청을 웹 서버로 보내고, 서버로부터 받은 응답을 웹 페이지로 렌더링한다.

클라이언트-서버 구조

클라이언트-서버 구조의 기본 개념

서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다.

클라이언트가 정보를 요청하면, 서버가 요청을 처리하고, 클라이언트에 응답하면 클라이언트는 서버로부터 받은 데이터를 사용한다.

클라이언트-서버 구조의 장점

  1. 중앙 집중화
    모든 데이터를 서버라는 중앙에서 관리하며, 클라이언트는 필요한 데이터나 서비스를 서버에 요청하여 사용한다. 이로 인해 데이터의 일관성과 보안이 유지된다.
  2. 보안 관리
    서버에서 길괄적으로 보안 정책을 관리할 수 있어, 클라이언트의 접근을 제어하거나 데이터를 보호하는 것이 용이하다.
  3. 유지 관리
    서버에서 소프트웨어나 데이터를 중앙에서 관리하기 때문에, 클라이언트 측의 변경 없이도 서버에서 업데이트나 수정이 가능하다.

웹 애플리케이션 서버와 게임 서버

웹 애플리케이션 서버(WAS, Web Application Server)

> 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다.인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.

WAS는 웹 서버의 기능 뿐만 아니라 DB조회 및 다양한 로직을 처리한다.

특징

  1. 데이터 중심 처리
    WAS는 주로 데이터베이스와 연동하여 데이터를 조회, 저장, 업데이트 하는 작업을 수행한다. 요청에 따라 데이터를 가져와 웹 페이지나 API 응답으로 제공하는 것이 핵심 역할이다.
  2. 낮은 지연 시간 요구
    WAS는 사용자가 요청한 데이터나 웹 페이지를 제공하는데 주로 사용된다. 응답 시간이 몇 초 이내라면 큰 영향을 미치지 않는다.
  3. 확장성
    다양한 클라이언트(웹, 모바일 앱 등)로부터 동시 접속을 처리할 수 있여야 하므로, 확장성을 유지해야 한다.
  4. 표준 프로토콜 사용
    HTTP/HTTPS 프로토콜을 사용하며, RESTful API와 같은 표준화된 방법을 통해 클라이언트와 통신한다.

게임 서버의 특징

> 게임 서버(game server)란 멀티플레이 비디오 게임을 즐기기 위해 게임 클라이언트에 쓰이는 서버이다.

특징

  1. 실시간 상호작용*
    플레이어 간의 실시간 상호작용을 관리한다. 특히 멀티플레이어 환경에서는 매우 낮은 지연 시간(latency)이 요구된다.
  2. 높은 동기화 요구사항
    여러 플레이어가 동시에 참여하는 게임에서는 모든 클라이언트가 동일한 게임 상태를 유지해야 하기 때문에, 게임 서버는 지속적으로 데이터를 동기화해야 한다.
  3. 복잡한 로직 처리
    게임 서버는 물리적 시뮬레이션, 인공지능, 게임 규칙 등의 복잡한 로직을 실시간으로 처리해야 한다.
  4. 부하 관리
    특정 이벤트나 대규모 플레이어 접속 시 트래픽이 급증할 수 있기 때문에, 이를 관리하기 위한 기술이 중요하다.

웹 애플리케이션 서버와 게임 서버의 공통점

  1. 네트워크 기반 서비스
    네트워크를 통해 클라이언트와 연결된다. 클라이언트가 요청을 보내고 서버가 응답한다.
  2. 실시간 데이터 처리
    실시간으로 데이터를 처리하여 클라이언트에 응답해야 한다.웹 애플리케이션 서버는 데이터 요청에 응답하고, 게임 서버는 실시간 게임 상태를 관리한다.

웹 애플리케이션 서버와 게임 서버의 차이점

  1. 응답 시간 요구
    WAS는 상대적으로 긴 응답 시간이 허용될 수 있지만, 게임 서버는 매우 낮은 지연 시간이 요구된다.
  2. 데이터 동기화
    게임 서버는 실시간으로 여러 클라이언트가 동일한 상태를 유지할 수 있도록 동기화해야 한다. WAS는 동기화 요구가 상대적으로 적다.
  3. 복잡성
    게임 서버는 실시간 상호작용, 시뮬레이션, AI처리 등 복잡한 로직을 다루지만, WAS는 데이터 처리가 중심이다.

게임 서버에서 중요하게 다루어야 하는 내용

  1. 낮은 지연 시간
    게임 서버의 핵심은 실시간 상호작용이기 때문에, 매우 낮은 지연 시간이 필수이다.
  2. 데이터 동기화
    모든 클라이언트가 동일한 상태를 유지할 수 있도록 실시간으로 데이터를 동기화해야 한다.
  3. 안정성
    지속적으로 안정적인 운영을 해야 한다. 장애 복구 전략이 필요하다.
  4. 보안
    해킹, 치트(핵) 등 다양한 위협에 대응할 수 있는 보안 시스템이 필요하다.
  5. 확장성
    사용자 수가 늘어나더라도 서비스 품질이 떨어지지 않고 유지되어야 한다.
profile
예비 게임서버 개발자

0개의 댓글