Flutter 상태관리를 위해 옵저버 패턴을 사용하는 것을 알았다.
옵저버 패턴(Observer Pattern)은 객체의 상태 변화가 있을 때, 그 변화를 자동으로 통지받아 업데이트할 수 있도록 하는 디자인 패턴입니다. 이 패턴은 발행자(Publisher)와 구독자(Subscriber)의 관계를 설정하여, 하나의 객체가 상태를 변경하면 그와 연관된 다른 객체들이 해당 변화를 감지하고 동작할 수 있도록 만듭니다.
옵저버 패턴은 특히 상태 변화가 여러 객체에 영향을 미치는 상황에서 유용하게 사용할 수 있습니다. Flutter에서는 이 패턴을 활용해 상태 관리 및 UI 업데이트를 효율적으로 구현할 수 있습니다.
옵저버 패턴 구성 요소:
- Subject(주체, 발행자): 상태 변화를 감지하고 옵저버들에게 상태 변화를 통지하는 역할을 합니다.
- Observer(옵저버, 구독자): 주체가 통지한 상태 변화를 받는 객체들입니다. 상태 변화를 감지하고 자신이 해야 할 작업을 수행합니다.
- Subscription(구독): 옵저버는 주체에게 구독을 요청하고, 주체는 구독한 옵저버에게 상태 변화가 있을 때 이를 통지합니다.

옵저버 패턴의 동작 원리:
- 옵저버는 주체에게 자신을 등록(구독)합니다.
- 주체는 상태 변화가 발생하면 모든 구독자(옵저버)에게 통지합니다.
- 옵저버는 통지를 받으면 상태에 따라 작업을 수행합니다.
Flutter에서 옵저버 패턴 예시:
Flutter에서는
Provider
같은 패키지를 사용해 상태 변화가 있을 때 UI가 자동으로 업데이트되도록 할 수 있습니다.class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners(); // 상태 변화 알림
}
}
이처럼 주체가 상태를 관리하고, 상태가 변경되면 옵저버들이 UI를 업데이트하는 구조입니다.
notifyListeners()
가 호출되면 관련 위젯들이 자동으로 재렌더링됩니다.Share article