flyweight1 golang design pattern #9 Flyweight Flyweight 패턴은 메모리 사용량을 줄이기 위한 테크닉입니다. 텍스트 에디터 프로그램을 만든다고 가정해보겠습니다. 특정 위치의 문자는 대문자, bold체, 이탈릭체 등으로 이루어질 수 있습니다. 이런 상황에서 코드를 어떻게 작성할 수 있을까요? 1 2 3 4 type TextEditor struct { plainText string isCapital []bool } cs 가장 단순하게 생각했을 때 작성할 수 있는 코드입니다. 모든 글자에 대해서 해당 문자가 대문자인지 아닌지에 대한 boolean 값을 표시를 해두는 것입니다. 그러나 이 경우는 너무 비효율적입니다. 예를 들어 글자 수가 10000개라면 10000개의 boolean array를 가져야 합니다. 또 위 코드는 대문자에 대해서만 나타낸 것.. 2021. 11. 14. 이전 1 다음