경량(Flyweight) 패턴
·
C++/디자인 패턴
디자인 패턴 중 구조 패턴인 경량 패턴은 객체를 공유해 메모리 사용량을 줄이는 것을 목적으로 한다. 즉, 한개의 고유 상태를 다른 객체들에서 공유하게 만들어 메모리 사용량을 줄이는 것이다. 경량 패턴은 최적화와 밀접한 관계가 있으며 공장에서 같은 제품을 찍어내며 생산하듯이 대량의 데이터를 찍어내기 위해 사용한다. 내용이 같은 객체가 있으면 새로 객체를 생성하지 않고 기존의 객체를 공유한다 예를 들어, 게임 엔진인 Unreal에서 폴리지와 같은 툴을 사용할 때 풀과 잔디, 조약돌과 같은 애셋을 이용해 폴리지를 적용하려고 할 때 애셋을 하나하나 mesh, texture와 같은 정보를 렌더링하게 되면 엄청난 오버헤드를 초래하게 된다. 그래서 언리얼 엔진의 애셋은 기본적으로 경량 패턴이 적용되는데, 경량 패턴은..