언리얼 엔진/개념 정리

개념 정리 - 게임 엔진, 서버 및 클라이언트

journey46110 2026. 6. 11. 19:37

I. 게임 엔진

게임 엔진이란?

- 게임 개발에 필요한 기능(그래픽 렌더링, 물리 연산, 애니메이션, 사운드, 네트워크 등)을 제공하는 소프트웨어

- 개발자가 보다 효율적으로 게임을 제작할 수 있도록 지원

- 대표적으로 유니티(Unity)와 언리얼(Unreal)이 있음

 

Unity 엔진

 

1) 유니티(Unity)/C#

- 진입 장벽이 낮음

- 빠른 프로토타입 개발 가능

- 모바일 등 멀티 플랫폼 지원이 강력함

 

예시)

- 인디 게임

- 모바일 게임

- VR/AR 프로젝트

 

Unreal 엔진

2) 언리얼 (Unreal)/C++

- 고품질 그래픽 지원

- 블루프린트(시각적 스크립팅) 제공

- AAA급 게임 및 고사양 프로젝트에 주로 사용

 

예시)

- 하이엔드 게임

- 영화 및 방송 VFX

- 건축 시각화

 

II. 클라이언트

1) 웹 클라이언트

- 사용자가 웹 서비스를 이용하기 위한 프로그램

- 일반적으로 웹 브라우저를 의미

 

예시)

- Chrome

- Safari

- Edge

 

2) 게임 클라이언트

- 사용자가 직접 실행하는 게임 프로그램

- 서버와 통신하며 게임 화면을 출력

 

예시)

- PC 게임 실행 파일(.exe)

- 모바일 게임 앱

 

III. 서버

서버란?

- 사용자에게 필요한 정보나 기능을 제공하는 시스템

 

1) 웹 서버

- 정적인 콘텐츠 전송에 주로 사용

- 동적인 콘텐츠도 처리 가능

- HTTP/HTTPS 프로토콜 사용

- 빠르고 간단한 데이터 처리에 적합

 

2) 게임 서버

- 실시간 상호작용 처리

- 복잡한 게임 데이터 관리

- 멀티플레이 동기화 수행

- 동시 접속자 수와 서버 성능이 중요

 

IV. 프로토콜

프로토콜이란?

- 컴퓨터 간 정보 교환을 위한 규칙의 집합

 

1) HTTP / HTTPS

- 주로 웹 서비스에서 사용

- 요청(Request)과 응답(Response) 구조

- REST API에서 많이 활용

 

2) TCP / UDP

- TCP

  • 데이터 손실 방지
  • 높은 안정성 제공
  • 순서 보장

예시)

- 로그인

- 결제

- 웹 서비스

 

- UDP

  • 일부 데이터 손실 가능
  • 빠른 속도 제공
  • 실시간 통신에 적합

예시)

- 온라인 게임

- 음성 채팅

- 실시간 위치 정보 전송

 

3) 기타

- WebSocket

- RUDP(Reliable UDP)

 

V. 서버와 클라이언트의 관계

1) 서버

- 핵심 로직 처리

- 상태 저장

- 멀티플레이 동기화

- 공정한 게임 진행 보장

 

예시)

- 피격 판정

- 아이템 획득 여부 판단

- 점수 계산

 

2) 클라이언트

- 게임 화면 출력

- 사용자 입력 수신

- 서버와 데이터 통신

- 결과를 그래픽 및 사운드로 표현

 

예시)

버튼 입력
→ 서버에 전달
→ 결과 수신
→ 화면에 출력

 

VI. 네트워크 구조의 종류

1) 클라이언트 - 서버 방식

장점

- 높은 안정성

- 데이터 관리 용이

- 동시 진행에 유리

 

단점

- 서버 운영 비용 발생

- 서버 장애 시 서비스 영향

 

2) P2P (Peer to Peer)

장점

- 서버 비용 절감

 

단점

- 보안 취약

- 동기화 문제 발생 가능

 

3) 하이브리드 방식

- 일부는 서버가 처리

- 일부는 P2P로 처리

- 두 방식의 장점을 활용

 

VII. 서버 구조

1) 단일 서버

- 하나의 서버가 모든 역할 수행

- 소규모 서비스에 적합

 

단점

- 사용자가 많아질 경우 과부하 발생

 

2) 분산 서버

- 여러 서버가 역할을 분담

- 부하 분산 가능

- 대규모 온라인 게임에 적합

 

VIII. 서버 확장 방법

1) 수직적 확장 (Scale Up)

- 기존 서버의 성능을 향상

- CPU, 메모리, 저장장치 등을 업그레이드

 

2) 수평적 확장 (Scale Out)

- 서버 수를 늘려 부하를 분산

- 대규모 서비스에서 주로 사용