148
2014-03-13 16:34:02
1
정리해서 답변 드리자면, 게임 등등 어플리케이션에서 오브젝트를 instantiate 하거나, 이렇게 만들어진 오브젝트를 쓰고 버리는 것이 반복되면 성능의 저하가 발생합니다. 그런데 재활용이 가능한 오브젝트라면 매번 만드는 것이 아니라 미리미리 만들어 두고, 보이지만 않게 해 둡니다. 필요할 때 객체를 생성하지 않고 미리 만들어둔 것을 사용하면 보다 성능에 이득을 꾀할 수 있을 겁니다. 그런 전략을 취하려고 만든 게 pool 입니다. 이 '웅덩이'에 미리 오브젝트를 충분히 만들어 두고, 필요할 때 꺼내 쓰고, 다 쓰고 난 다음 이 웅덩이로 객체를 돌려 보냅니다.
이 웅덩이를 관리한다는 개념이 pool manager인데, instantiate가 사실상 시스템 전역에서 가능한 것과 마찬가지로 pool manager 또한 시스템 전역에서 활동 가능하며 객체의 활동 범위가 어플리케이션의 실행 기간과 같거나 더 길죠. 그래서 주로 singleton 디자인을 취하고요.