← 전체 포스트

오브젝트 풀의 수명과 반환 규칙

재사용 구조에서 상태를 안전하게 관리하는 방법

Hyeon··1분 읽기
개발 과정게임 프로토타입 · 소개와 개발 과정 →

파랑·주황·초록 수납 상자와 안에 놓인 재사용 블록
재사용을 위한 상태와 수명 주기
이 글의 목차

문제 상황

오브젝트를 다시 사용할 때는 이전 상태가 남지 않아야 합니다. 생성 비용을 줄이는 것만큼, 반환 시점을 명확히 정하는 일이 중요합니다.

  • 누가 반환하는지 책임을 정한다.
  • 다시 사용할 상태를 일관되게 초기화한다.

Return()을 호출할 때 초기화 규칙도 함께 적용합니다.

수명 주기 설계

획득과 반환 사이의 상태를 분리하고, 초기화는 한곳에서 처리합니다.

  1. 사용 가능
  2. 사용 중
  3. 초기화
  4. 사용 가능

반환은 다음 사용을 준비하는 단계입니다.

반환을 기다리는 재사용 블록과 수납 상자

반환 코드

ObjectPool.cs
public void Return(GameObject instance)
{
    ResetState(instance);
    instance.SetActive(false);
    available.Enqueue(instance);
}

메모

비활성화와 상태 초기화는 서로 다른 책임입니다.

정리

풀링은 생성 비용을 줄이는 도구입니다. 안정적인 재사용을 위해서는 상태와 반환 책임도 함께 설계해야 합니다.

코드 조각은 중복 반환·용량 제한 등 전체 풀 구현을 생략하고 반환 순서만 보여 줍니다.

Hyeon의 개발 기록

작은 독서실

도토리 책갈피

다시 읽고 싶은 글을 도토리 가방에 모아두세요.

아직 모아둔 글이 없어요.
글의 책갈피 버튼으로 하나씩 담아보세요.

책갈피와 친구 설정은 이 브라우저에만 저장돼요.