디자인 패턴 - 더티 플래그(Dirty flag)

계속해서 변경되는 '기본값'이 있다. 또한 '파생값'은 기본 값에 비싼 작업을 거쳐야 얻을 수 있다. 더티 플래그는 파생 값이 참조하는 기본 값의 변경 여부를 추적한다. 즉 더티 플래그는 기본값이 변경되면 켜진다. 파생값을 써야 할 때, 더티 플래그가 켜져 있다면 다시 계산한 뒤에 플래그를 끈다. 만약 플래그가 꺼져 있다면 이전에 캐시해놓은 파생 값을 그대로 사용한다.

어떤 값이 더 이상 맞지 않다는 뜻으로 '더티'하다고 칭한다.

플래그란 둘 중 하나의 상태만 될 수 있는 작은 데이터를 뜻한다.

깨끗하지 않은 상태를 플래그로만 표시하고 그때그때 계산하지 않고 최종적으로 더티 플래그로 표시된 값들만 계산함으로써 중복된 계산을 피할 수 있다.

주로 계산과 동기화 작업에 사용할 수 있다.

사용 조건
  • 파생 값이 사용되는 횟수보다 기본 값이 더 자주 변경되어야 한다.
  • 점진적으로 업데이트하기가 어려워야 한다.
주의. 상당한 시간이 걸리는 작업을 지연해놨다가 결과를 보고 싶어 할 때 처리를 시작한다면, 짜증나는 랙이 생길 수 있다.


댓글

이 블로그의 인기 게시물

디자인 패턴 - 서비스 중개자 패턴(Service locator pattern)

인공지능 - 유한 상태 기계(Finite state machine)