Godot의 싱글톤 패턴, Autoload

Published at 2025-04-11

TIL - 고도 싱글톤

날짜: 2025년 4월 11일

Godot 프로젝트를 진행하면서 여러 노드 간 공유하는 z-index의 카운터 값을 관리해야 하는 상황이 있었다.

깔끔하고 이해하기 쉽게 코드를 작성하려면 어떻게 해야할까 고민하다가 고도의 싱글톤 처리 방법에 대해 알게되었다.


Godot은 Scene 기반 구조와 시그널 시스템을 통해 전역 상태 없이도 대부분의 기능을 구현할 수 있게 돕는다.

하지만 모든 상황에서 전역 상태를 피하는 것이 꼭 좋은 것만은 아니다. 어떤 데이터는 자연스럽게 전역으로 존재해야 더 명확하고 유지보수도 쉬운 경우가 있다.

이럴 때 사용할 수 있는 것이 Godot의 싱글톤인 Autoload 기능이다.

🔹 Autoload란?

Autoload는 게임 전역에서 언제든지 접근 가능한 스크립트나 노드를 등록해 공용 데이터를 관리할 수 있도록 해주는 Godot의 기능이다.

예를 들어, 전역 설정값, 전역 z-index 관리, 게임 상태 저장소 등 다양한 곳에 활용할 수 있다.

📌 한 줄 요약:

Autoload는 여러 Scene에서 공유되는 공용 데이터를 깔끔하게 관리할 수 있도록 해주는 Godot의 싱글톤 시스템이다.


🆕 Godot 4.1 이후: static 변수도 지원됨

Godot 4.1부터는 static var 키워드를 사용해 클래스 레벨의 정적 변수를 만들 수 있다.

이를 통해 Autoload를 사용하지 않고도 간단한 변수 공유가 가능하다.

하지만 Autoload는 여전히 유용하다. 광범위한 시스템의 코드를 간소화할 수 있다. 퀘스트나 대화 시스템이같은 광범위한 작업을 처리하는 시스템을 구축하는 데 매우 유용하다.


📚 아래 공식문서에서 더 자세한 내용을 확인할 수 있다.