디자인 패턴

2. Flyweight(추가예정) - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 2. 6. 13:48

1. 같은 것은 공유해서 낭비를 없앤다.

  • 이미 만들어진 인스턴스를 공유해서 사용하는 것이 Flyweight패턴의 핵심
  • 객체를 가볍게 만들기 (메모리를 적게 사용) 위함
  • 공유하고 있는 것을 변경하면 여러 곳에 영향을 미친다.
    • 공유하는 정보 : 변하지 않는 정보, 상태에 의존하지 않는 정보
    • 공유하지 않는 정보 : 인스턴스 배치 장소에 따라 변경되는 정보, 상황에 따라 변화하는 정보, 상태에 의존하는 정보
  • 관리되는 인스턴스는 가비지 컬렉션되지 않는다.
    • 가비지 컬렉션은 사용되지 않는 인스턴스를 해제한다.
    • Java에서는 new로 생성한 인스턴스를 삭제할 수 없으며, 다른 곳에서 참조되고 있는 인스턴스는 '사용 중'으로 간주하여 가비지로 판정되지 않는다.