플라이웨이트 패턴
플라이웨이트는 권투 등의 격투기에서 '경량급'을 지칭하는 표현이다. 이처럼 플라이웨이트 패턴(Flyweight Pattern)은 동일한 데이터를 여러 객체 간에 공유하는 방식으로 객체를 경량화하는, 메모리 효율성을 극대화하는 디자인 패턴이다. 이 패턴의 핵심은 공유 가능한 데이터(intrinsic)를 하나의 객체로 관리하고, 객체마다 달라야 하는 데이터(extrinsic)는 별도로 처리하는 것이다.플라이웨이트 패턴에서는 FlyweightFactory 클래스를 사용해 동일한 내부 상태를 공유하는 객체들을 재사용하여 메모리 사용을 최적화한다. 내부 상태는 여러 객체에서 공유되는 불변의 데이터로, FlyweightFactory가 관리하는 객체들에 의해 공통적으로 사용된다. 객체를 요청하면, FlyweightF..