UE5 부트캠프(TIL)

[UE5 TIL] 서버? 클라이언트? 기본개념 잡기

Yellow Kirin 2025. 4. 30. 11:37

클라이언트란?

1. 웹 클라이언트

웹 클라이언트 이미지
출처 - 스파르타 코딩클럽 unreal 게임 개발 종합반 1-2

웹 브라우저를 의미하며,

서버에 요청을 보내 화면을 예쁘게 띄워주는 장치입니다.

2. 게임 클라이언트

게임 클라이언트 이미지

실행 가능한 게임 파일로,

서버에 요청을 보내 응답을 통해 게임을 진행할 수 있도록 해주는 장치입니다.

클라이언트의 역할

  • 실제로 화면에 게임을 보여주고, 사용자의 키보드 / 마우스 / 터치 입력을 받아 서버로 전달
  • 서버에서 받은 결과를 화면에 그래픽이나 사운드로 표시
  • 예: 캐릭터 이동, ‘아이템 사용’ 버튼을 누르면 정보를 서버로 보내고 결과를 받아 처리

웹 서버

웹 서버는 주로 텍스트나 이미지와 같은 정적인 콘텐츠를 전송하는 데 사용됩니다. 하지만 동적인 콘텐츠도 처리할 수 있으며, 빠르고 간단한 데이터 처리로 다수의 사용자에게 정보를 쉽게 제공하는 것이 목적입니다.

  • 사용자의 브라우저 요청(HTTP/HTTPS)에 맞춰 웹 페이지나 이미지, 데이터를 제공합니다.

게임 서버

게임 서버는 실시간 상호작용과 복잡한 데이터를 처리해야 하기 때문에 웹 서버와는 다릅니다. 예를 들어 한 사용자가 게임에서 움직이면, 그 움직임이 다른 사용자에게도 실시간으로 반영되어야 합니다.

  • 실시간 상호작용이 핵심입니다.
  • 위치, 아이템, 캐릭터 상태 등 복잡한 데이터를 빠른 속도로 처리합니다.
  • 여러 명이 동시에 접속하므로 서버 성능이 매우 중요합니다.

서버의 역할

  • 게임의 핵심 로직(점수 계산, 상태 저장, 멀티플레이어 동기화 등)을 담당
  • 여러 명의 플레이어가 동시에 접속해도 공정하고 일관성 있게 게임을 진행하기 위해 필요
  • 예: 공격을 받았는지, 아이템을 먹었는지 등 최종 판단을 서버가 수행

게임 클라이언트를 만드는 대표적인 툴

유니티(Unity) / C#

장점

  • 가벼운 초기 진입장벽
  • 2D / 3D 게임 모두 빠르게 프로토타이핑 가능
  • 모바일 등 멀티 플랫폼 지원이 강력

사용 예시

  • 인디 게임
  • 모바일 게임
  • 간단한 VR / AR 프로젝트 등

언리얼(Unreal) / C++

장점

  • 고퀄리티 그래픽 표현 가능
  • 블루프린트(시각적 스크립트)로 비교적 쉽게 개발 가능
  • AAA급 게임, 고사양 PC / 콘솔 게임 개발에 많이 사용

사용 예시

  • 포트나이트, 기어즈 오브 워 등 하이엔드 게임
  • 영화 / 방송 VFX
  • 건축 시각화 분야 등

프로토콜이란?

프로토콜

컴퓨터나 전자 기기 간에 정보를 교환할 때 따르는 규칙의 집합

을 의미합니다. 통신 규약이라고도 하며, 원활한 통신을 위해 반드시 지켜야 하는 약속입니다.

클라이언트와 서버가 통신하기 위해서는 반드시 프로토콜이라는 약속이 필요합니다.

주요 프로토콜 종류
  • HTTP / HTTPS
    • 웹에서 주로 사용
    • 요청/응답 구조가 명확하며 REST API 등을 통해 데이터 전송
  • TCP / UDP
    • 게임에서는 실시간성이 중요한 경우 UDP 사용
    • 안정성이 중요한 경우에는 TCP 사용
  • 기타
    • WebSocket – 브라우저 실시간 통신
    • RUDP – 신뢰성을 높인 UDP

서버 구성 및 확장 전략


🖥️ 단일 서버 (Single Server)
  • 개념: 하나의 서버에서 모든 기능(게임 로직, 저장, 인증 등)을 처리
  • 장점:
    • 구조가 단순하고 구축이 쉬움
    • 테스트나 소규모 게임에 적합
  • 단점:
    • 유저 수 증가 시 성능 한계
    • 서버 다운 시 전체 서비스 중단
    • 확장성 / 유지보수에 불리
🗂️ 분산 서버 (Distributed Server)
  • 개념: 여러 서버가 역할을 나눠 각각 기능을 처리 (예: 로그인, 게임, DB 등)
  • 장점:
    • 동시 접속 유저 수 증가 대응 가능 (확장성)
    • 일부 서버 장애에도 다른 서버는 정상 작동 (내결함성)
    • 서버별 최적화 가능
  • 단점:
    • 초기 설계와 관리가 복잡
    • 서버 간 데이터 동기화 필요
📌 사용 예시
구조 사용 예
단일 서버 인디 게임, 테스트용 게임, 소규모 모바일 게임
분산 서버 MMORPG, FPS, 대규모 온라인 게임

📈 서버 확장 방식: Scale Up vs Scale Out
🔼 Scale Up (스케일 업)
  • 개념: 하나의 서버 성능(CPU, RAM 등)을 업그레이드하여 처리 능력을 높이는 방식
  • 장점: 구조 변경 없이 간편하게 성능 향상
  • 단점: 물리적/비용적 한계 존재
🔀 Scale Out (스케일 아웃)
  • 개념: 여러 대의 서버를 추가해 부하를 분산시키는 방식
  • 장점: 유연한 확장 가능, 장애 시 다른 서버가 대응
  • 단점: 서버 간 데이터 동기화 및 설계 복잡성