Unity코드 아키텍처와 품질

Custom Update Manager 기본

수많은 `Update` 호출을 그대로 두지 않고 갱신 대상을 중앙에서 제어하는 Unity Update Manager 패턴입니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
public interface IUpdatable
{
    void Tick();
}

설명

  • Unity 공식 성능 가이드는 많은 Update 메서드가 쌓일 때 중앙 갱신 관리 구조를 고려하라고 설명합니다.
  • 모든 오브젝트가 매 프레임 독립적으로 Update를 받기보다, 필요한 대상만 묶어 순회하면 제어가 쉬워집니다.
  • 간헐적으로만 갱신해도 되는 시스템은 n프레임마다 한 번만 돌게 만드는 전략과 잘 맞습니다.
  • 무조건 바꾸기보다, 대규모 에이전트나 UI 요소처럼 수가 많은 계층에서 특히 효과가 큽니다.

짧은 예제

csharp
public class UpdateManager : MonoBehaviour
{
    private readonly List<IUpdatable> items = new();

    private void Update()
    {
        for (int i = 0; i < items.Count; i++)
        {
            items[i].Tick();
        }
    }
}

빠른 정리

항목설명
중앙 갱신여러 Update를 한 곳에서 관리
선택적 갱신필요한 대상만 순회 가능
n프레임 갱신빈도가 낮은 작업 분산 가능
대규모 시스템많은 오브젝트에서 장점이 큼
과도한 일반화 주의작은 프로젝트에는 과할 수 있음

주의할 점

Update Manager는 구조를 단순화할 수도 있지만, 잘못 만들면 오히려 의존성이 한곳에 몰릴 수 있습니다. 대상 수가 많고 패턴이 반복될 때 도입하는 편이 낫습니다.

참고 링크

2 sources