플라이웨이트 패턴은 많은 수의 유사한 객체를 생성하는 상황에서 메모리 사용을 최적화하기 위한 패턴이다.이 패턴은 객체의 내부 상태 중에서 공유 가능한 부분을 외부로 분리하여 객체들 간에 공유하도록 설계한다. 이를 통해 객체의 수를 줄이고 메모리를 효율적으로 사용할 수 있다.구성 요소Flyweight(플라이웨이트):공유 가능한 객체의 인터페이스를 정의한다. 내부 상태와 외부 상태를 받아들이는 메서드가 있다.ConcreteFlyweight(구체적인 플라이웨이트):플라이웨이트 인터페이스를 구현하고 내부 상태를 가지는 구체적인 클래스입니다. 여러 개의 인스턴스가 생성될 수 있다.FlyweightFactory(플라이웨이트 팩토리):플라이웨이트 인스턴스를 생성하고 관리하는 역할을 한다. 이미 생성된 인스턴스를 재사..