플러터에서 상태관리(State Management)는 앱 개발의 핵심 중 하나다.
특히 앱이 커질수록 "상태를 어디서 어떻게 관리할지"에 따라 유지보수성과 확장성이 크게 달라지게된다.
🧠 상태관리란?
“앱의 화면에 보이는 데이터(상태)를 저장하고, 필요할 때 효율적으로 업데이트하는 기술”
예시:
int counter = 0; // 상태
setState(() {
counter++; // 상태 변경
});
🔥 왜 중요할까?
- 버튼 클릭 → 화면 업데이트
- 로그인 상태 유지
- API 호출 결과 반영
- 장바구니 목록, 필터 선택 등
➡ 상태 관리가 깔끔하게 구성돼야 코드가 엉키지 않게된다.
📊 상태관리 종류 & 비교
방법 난이도 특징
setState | ★☆☆☆☆ | 가장 기본, 위젯 내부에서만 사용 가능 |
InheritedWidget | ★★☆☆☆ | Flutter 기본 제공, 전역값 공유 가능 |
Provider | ★★★☆☆ | 공식 추천 방식, 가장 많이 사용됨 |
Riverpod | ★★★★☆ | Provider 진화형, 테스트/모듈화에 강함 |
BLoC | ★★★★★ | 큰 프로젝트/팀 개발에 적합, 구조 명확 |
GetX | ★★★★☆ | 라우팅 + 상태관리 + DI 포함, 문법 간결 |
📦 상태관리 패키지별 특징 요약
패키지 장점 단점 추천 대상
Provider | 공식 추천, 학습 쉬움 | 코드 분산 가능성 | 초~중급 앱 |
Riverpod | 글로벌 상태관리, 재사용성 굿 | 러닝커브 있음 | 테스트 중시, 중~고급 앱 |
BLoC | 이벤트 중심 구조, 강한 아키텍처 | boilerplate 많음 | 팀/대형 앱 |
GetX | 쉬운 문법, 통합 기능 | 논란 있음 (디자인 철학 문제) | 빠른 개발, MVP |
MobX | 반응형 프로그래밍 | 코드 제너레이션 필요 | 함수형 스타일 선호자 |
💡 추천 학습 순서
- setState로 작동 원리 이해
- Provider로 분리와 전역 상태 배우기
- Riverpod로 테스트성과 확장성 익히기
- 이후 팀 환경에 따라 BLoC, GetX, MobX 등 고려
'Study > Flutter' 카테고리의 다른 글
Flutter 개발자의 10가지 필수 역량 (0) | 2025.04.21 |
---|---|
Flutter 커뮤니티, 컨퍼런스, 모임 정보 (0) | 2025.04.21 |
Flutter 2025 최신동향 (0) | 2025.04.21 |
[flutter] flutter mac에서 설치 및 설정 (0) | 2023.08.16 |
[Flutter] flutter 3.10 Release Note 요약 (0) | 2023.06.06 |