IT/Server

[Server] 서버, 클라이언트 / 웹 어플리케이션 서버, 게임 서버

wakelight23 2024. 11. 25. 09:23

서버 (Server)

● 네트워크에서 서비스를 제공하는 컴퓨터 or 프로그램
  - 24시간 가동, 클라이언트 요청을 처리
  - 일반적으로 고성능 컴퓨터 사용, 많은 요청을 동시 처리
  - 다양한 서버가 존재 ex) 웹 server, 파일 server, 메일 server 등

클라이언트(Client)

● Server에 서비스를 요청하고 받는 컴퓨터 or 프로그램
  - 사용자의 입력을 처리, 서버에 요청
  - 대표적인 예로 웹 브라우저, 이메일 클라이언트 등
  - 일반적으로 집에서 사용하는 PC, 모바일 기기가 클라이언트에 해당

 

서버(Server) - 클라이언트(Client) 구조

● 역할 분리 : 서버는 서비스 제공, 클라이언트는 서비스 요청 및 사용을 담당
중앙 집중 데이터 관리 : 서버에서 데이터를 중앙 집중적 저장, 관리
확장성 : 다수의 클라이언트가 하나의 서버에 접속 가능
프로토콜 기반 통신 : 서버와 클라이언트는 정해진 규칙(=프로토콜)에 따라 통신

작동 방식 : 
  1) 클라이언트가 서버에 서비스 요청

  2) 서버는 요청을 처리
  3) 서버는 처리 결과를 클라이언트에게 전달
  4) 클라이언트는 받은 결과를 사용자에게 표시

 

웹 어플리케이션에서 Server와 게임에서의 Server

공통점

데이터 처리 :

  - 클라이언트로부터 데이터 수신하여 처리하고 응답을 반환하는 역할을 수행

  - 사용자가 요청한 정보를 제공 및 클라이언트 상태 업데이트에 사용

확장성 : 
  - 많은 사용자를 동시에 처리할 확장성을 고려 = 트래픽 해결

 

차이점

실시간 데이터 처리 :

  - 게임 서버는 실시간 데이터 처리가 필수

    → 플레이어의 위치, 행동, 게임 상태 등 즉각적으로 반영되야 하기 때문

  - 웹 서버는 비실시간 데이터 처리를 수행

    요청-응답 패턴에 따라 데이터 전송

 

연결 유지 :
  - 게임 서버는 지속적인 연결 유지가 필요, 또한 낮은 지연 시간(low latency)이 중요

    게임 플레이의 연속성과 반응성을 보장하기 위함

  - 웹 서버는 단발 성 연결을 사용, 요청에 응답 후 연결을 종료

 

보안 및 데이터 무결성 :
  - 게임 서버는 해킹, 패킷 변조 방지 등 보안에 대한 요구치가 높음

    → 게임 내의 아이템 복사, 계정 해킹 등 문제 방지하기 위함

  - 웹 서버는 주로 데이터 암호화, 해킹 방어에 중점

  

게임 서버에서 중요한 요소

저지연성(Low Latency) :
  - 게임에서는 지연 시간이 사용자 경험에 직접적인 영향을 주기 때문에
    네트워크 지연을 최소화 하는 것이 매우 중요

 

서버 안정성 :
  - 서버가 자주 다운, 오류가 발생하면 사용자 불만이 증가하기 때문에 안정적 운영이 필요

    → 부하 분산, 모니터링 시스템 필요

 

확장성 및 성능 최적화 :
  - 많은 사용자가 동시에 접속이 가능하도록 서버의 확장성, 성능 최적화가 필요
    → 대규모 멀티플레이어(MMORPG) 서버에서 매우 중요

 

● 보안성 :
  - 계정 해킹, 아이템 복사 방지 등을 위해 기술 및 규칙(프로토콜)이 필요