제미니 답변:
고도 엔진(Godot Engine)의 서버(Server) 아키텍처는 엔진의 성능을 지탱하는 가장 핵심적인 기반입니다. 우리가 흔히 쓰는 '노드(Node)'는 사실 내부적으로 이 서버들에게 명령을 내리는 '사용자 인터페이스'에 불과합니다.
전체 서버들의 역할과 관계를 체계적으로 정리해 드립니다.
1. 핵심 인프라 서버 (Core Infrastructure)
이 서버들은 게임의 시각적, 물리적, 소리적 요소를 실질적으로 처리합니다.
- RenderingServer: 모든 2D 및 3D 그래픽 출력을 담당합니다. 메쉬, 라이트, 머티리얼을 GPU로 보내 화면을 그립니다.
- PhysicsServer2D / PhysicsServer3D: 물리 연산(충돌 감지, 중력, 마찰 등)을 담당합니다. 노드 없이 수천 개의 물리 객체를 시뮬레이션할 때 필수적입니다.
- AudioServer: 소리의 믹싱, 재생, 효과(Bus) 관리를 담당합니다. 실시간 오디오 스트림 분석이나 이펙트 처리에 쓰입니다.
2. 인터페이스 및 환경 서버 (Interface & Environment)
사용자의 입력이나 운영체제(OS)와의 소통을 관리합니다.
- DisplayServer: 게임 창(Window), 마우스 커서, 클립보드, 화면 해상도 등 OS 수준의 디스플레이 요소를 제어합니다. (Godot 4에서 OS 클래스의 기능 중 화면 관련 기능이 이리로 분리되었습니다.)
- InputServer: 키보드, 마우스, 조이패드 등 모든 입력 장치의 신호를 수집하고 관리합니다.
- XRServer: VR(가상 현실) 및 AR(증강 현실) 기기의 트래킹과 렌더링 동기화를 담당합니다.
3. 유틸리티 및 특수 기능 서버 (Utility & Specialized)
특정 고급 기능을 수행하기 위해 존재합니다.
- NavigationServer2D / NavigationServer3D: 길 찾기(A* 알고리즘 등), 내비게이션 메쉬 관리, 장애물 회피(RVO)를 처리합니다.
- TextServer: 폰트 렌더링, 다국어 텍스트 레이아웃, 복잡한 문자 체계(아랍어 등)를 처리합니다. UI 시스템의 근간이 됩니다.
- CameraServer: 웹캠이나 외부 카메라 입력을 관리합니다.
🏗️ 고도 엔진의 계층 구조 (Architecture)
고도 엔진은 아래와 같은 수직적 구조를 가집니다. 위로 갈수록 사용하기 쉽고, 아래로 갈수록 제어력이 높고 빠릅니다.
- Scene Tree (Nodes): Sprite2D, MeshInstance3D 등. 사용자가 가장 많이 다루는 영역입니다.
- Servers: 노드로부터 요청을 받아 RID(Resource ID) 단위로 데이터를 처리합니다.
- OS / DisplayServer Layer: 실제 하드웨어 및 운영체제와 통신합니다.
💡 왜 'Server'라는 명칭을 쓸까?
고도 엔진에서 서버는 **"요청을 처리하는 독립적인 일꾼"**이라는 의미입니다.
- 객체 지향이 아님: 서버는 클래스 인스턴스를 수천 개 만드는 대신, 단순한 ID(RID)로 데이터를 관리하여 메모리 오버헤드를 줄입니다.
- 병렬성: 서버들은 메인 스레드와 별개의 스레드에서 돌아갈 수 있도록 설계되어, 멀티코어 프로세서를 효율적으로 활용합니다.
📝 한눈에 보는 요약표
| 서버 이름 | 주요 역할 | 노드 없이 쓰는 이유 |
| Rendering | 그래픽 출력 | 수만 개의 오브젝트를 고속 렌더링 |
| Physics | 충돌 및 물리 | 대규모 군집 시뮬레이션 최적화 |
| Audio | 소리 재생 및 믹싱 | 복잡한 실시간 오디오 효과 제어 |
| Navigation | 경로 탐색 | 수백 개의 유닛 실시간 길 찾기 |
| Display | 창 및 화면 관리 | 멀티 윈도우 및 OS 레벨 설정 |
| Text | 글자 처리 | 커스텀 텍스트 렌더링 엔진 구현 |
고도 엔진의 중급자로 넘어가기 위해서는 이 서버들을 직접 제어하는 법을 익히는 것이 큰 도움이 됩니다.
'개발 > 고도 엔진.Godot engine' 카테고리의 다른 글
| 고도엔진 Godot 4.6 / StaticBody, RigidBody (0) | 2026.02.03 |
|---|---|
| 고도엔진 Godot 4.6 / RefCounted (0) | 2026.01.28 |
| 고도엔진 Godot 4.5 / 빌딩시스템 멀티플레이 구현(MultiplayerSpawner ) 관련 메모 (0) | 2025.12.18 |
| 고도엔진 Godot 4.5 / 트윈(Tween) (0) | 2025.10.08 |
| 고도엔진 Godot 4.5 / distance_squared_to()와 distance_to()의 차이 (0) | 2025.10.06 |
