Riverpod과 상태관리_Flutter 숙련주차 4일

박진·2026년 1월 8일

2026.01.08 (목)

  • 상태관리
  • Riverpod

오늘의 공부 이미지 💫


오늘은 도저히 알 수 없는 익숙해진 줄 알았는데 지금 보니 또 어색한 Riverpod에 대해 공부를 해보았다. 앞으로도 계속 마주칠 친구 같아서 이해할 수 있을 때까지 정리해보려고 한다.

기초부터 ... 👶🏼

🌱 상태관리

✔️ 상태 (State)

그나마 (?) 익숙한 이름이다 앱이 살아있는 동안 변할 수 있는 모든 데이터이다.

✔️ 상태관리

화면에 그려지고 데이터가 바뀔 때 화면을 새로 그려주는 과정을 상태관리 라고 한다.

✔️ 상태관리를 깊게 파보자면

Flutter는 위젯트리 구조로 최상단에 있는 데이터를 맨 마지막에 있는 자식 위젯에게 전달하려한다면? 부모가 자식에게 전달하고, 그 자식이 자식한테 전달하고,, 반복되어야 한다

중간에 있는 위젯들은 그 데이터가 필요 없어도 단순히 전달하기 위해 코드를 작성해야 한다. 앱이 커질수록 관리가 불편해질 수 있다.

Riverpod은 상태관리의 단점을 해결하기 위해 데이터의 중앙에서 역할을 한다.

▪️상태관리를 3가지로 정리

  1. 상태: 관리할 데이터 그 자체
    int count = 0;
  2. 변화: 데이터를 바꾸는 행동
    count++;
  3. 알림: 데이터가 바뀌었으니 화면 다시 그려줘
    setState(() {});

▪️Riverpod의 흐름 정리

  1. Provider에 데이터 저장
    final counterProvider = NotifierProvider<Counter, int>(() => Counter());
  2. UI에서 관찰
    final count = ref.watch(counterProvider);
  3. 이벤트 발생 (사용자 버튼 클릭 등)
    onPressed: () { ... }
  4. Notifier 실행
    ref.read(counterProvider.notifier).increment();
  5. 자동 업데이트
    => 말 그대로 자동 업데이트, 여기서 내가 할건 없다. ref.watch하고 있는 위젯을 알아서 찾아서 재빌드 시킴

☑️ 상태관리와 Riverpod

상태관리를 3가지로 정리와 Riverpod의 5가지 흐름을 비교했을 때, 상태관리는 꼭 데이터 바뀐 위젯을 찾아서 setState()를 호출해줘야 하지만 Riverpod은 위젯을 알아서 찾아서 재빌드를 해주는 장점이 있다.

구분로컬상태(Local State)전역상태 (Global State)
주체StatefulWidget(setState)Riverpod(Provider)
범위해당 위젯 내부에서만 사용앱 전체, 여러 화면 공유
예시현재 페이지의 변화 효과사용자 프로필 정보, 장바구니 목록

사실 Riverpod은 알아서 흘러가는 시스템으로 알아서 화면을 갱신해줘서 편하다고 하지만,, 아직 나는 사용법에 대해 익숙치 않아서 어디서 뭘 어떻게 써야할지 많이 헷갈린다..

🔘 오늘의 결론

상태관리는 데이터를 내가 끊어줘야 하는 번거로움이 있다. 한 화면을 관리하거나 작은 데이터를 사용할 때 유용하다.

Riverpod은 위젯 간에 이동이나 실제로 데이터가 변해야하는 화면만 다시 그려야할 위젯을 업데이트할 때 유용하다.

0개의 댓글