Corutine : 비동기 작업을 수행하거나 작업을 일시 중지하고 다시 시작하는 데 사용
ObjectPooling : 자주 사용되는 객체를 미리 생성해 두고 필요할 때마다 이러한 객체를 가져와 사용하는 기법.
이를 통해 객체를 반복적으로 생성하고 삭제하는 비용을 줄이고, 성능을 향상시킬 수 있다. 일종의 재사용이라고 생각하면 될 거 같다.
일반적으로 게임 프로그래밍이나 다중 사용자 애플리케이션에서 많이 사용. 예를 들어, 총알이나 파티클 등 여러 개의 비슷한 객체들을 반복적으로 생성하고 삭제하는 게 아니라, 이러한 객체들을 미리 풀에 생성해 두고 필요할 때마다 가져와 사용. 객체를 사용한 후에는 다시 풀에 반환하여 재사용할 수 있다. (ex.뱀파이어서바이벌)
Object Pooling은 메모리 사용을 최적화하고 가비지 컬렉션의 부하를 줄여 성능을 향상시키는 데 도움이 된다. 특히 객체 생성 및 삭제가 빈번하게 발생하는 상황에서 많은 이점을 제공함.
ObjectPooing은 어느 정도 이해를 했다. 반면 Corutine은 반정도 이해한 것 같다...