내배캠 TIL

[내배캠 TIL 260311] Unreal Network - NetDriver 구조 정리

xodn246 2026. 3. 11. 21:06

1. NetDriver란

NetDriver는 언리얼 엔진의 네트워크 통신을 담당하는 핵심 객체로,
서버와 클라이언트 사이의 연결(Connection) 을 관리한다.

각각의 서버와 클라이언트는 모두 자신의 NetDriver 객체를 가진다.

NetDriver 내부에는 다음과 같은 연결 정보가 있다.

NetDriver
 - TObjectPtr<UNetConnection> ServerConnection
 - TArray<TObjectPtr<UNetConnection>> ClientConnections
  • ServerConnection
    서버와 연결된 단일 연결
  • ClientConnections
    서버에 연결된 여러 클라이언트 목록

2. 서버의 NetDriver 구조

서버에서는 여러 클라이언트가 접속할 수 있기 때문에
클라이언트 연결 목록을 배열로 관리한다.

서버 NetDriver
 - ServerConnection = nullptr
 - ClientConnections = 접속한 클라이언트 수만큼 존재

정리하면

  • 서버는 누군가에게 접속하는 구조가 아니기 때문에
    ServerConnection은 존재하지 않는다.
  • 대신 접속해온 클라이언트들을 관리해야 하기 때문에
    ClientConnections 배열에 연결이 저장된다.

예시

Server
 ├ NetDriver
 │   ├ ServerConnection = nullptr
 │   ├ ClientConnections[0] → Client A
 │   ├ ClientConnections[1] → Client B
 │   └ ClientConnections[2] → Client C

3. 클라이언트의 NetDriver 구조

클라이언트는 서버 하나에 접속하는 구조이기 때문에
연결 정보가 하나만 존재한다.

클라이언트 NetDriver
 - ServerConnection != nullptr
 - ClientConnections 비어있음

정리하면

  • 클라이언트는 서버에 접속해야 하므로
    ServerConnection이 존재한다.
  • 클라이언트는 다른 클라이언트를 관리하지 않기 때문에
    ClientConnections 배열은 비어 있다.

예시

Client
 ├ NetDriver
 │   ├ ServerConnection → Server
 │   └ ClientConnections = Empty

4. 싱글플레이에서의 NetDriver

싱글플레이에서는 네트워크 통신이 필요 없기 때문에

NetDriver 객체 자체가 생성되지 않는다.

즉,

  • 멀티플레이 → NetDriver 생성
  • 싱글플레이 → NetDriver 없음

5. 추가로 공부할 내용 (프록시)

언리얼 네트워크에서는 Proxy 개념이 매우 중요하다.

  • Autonomous Proxy
  • Simulated Proxy
  • Authority

현재 개념이 완전히 정리되지 않아
추가 학습 후 정리할 예정이다.