본문 바로가기

Flutter

플러터의 상태관리에 대해 알아봅니다.

반응형

📕 상태관리 개념 

프론트엔드에서 자주 쓰이는 상태관리란, 데이터의 상태라고 생각하시면 될 것 같습니다. 변경되는 데이터에 맞게 화면에 표현하고 유저의 반응에 대응해주기 위해 필요합니다. 상태관리를 구분하자면 어떤 상태(데이터)이냐에 따라 Ephemeral(일시적) state, App state로 나눌 수 있습니다. 

 

📕  상태관리가 필요한 이유

한 화면에서 여러 개의 컴포넌트들이 서로 협력하는 구조가 만들어지고 각 컴포넌트들은 상태(데이터)를 공유하며 상호작용합니다.  

하지만 데이터가 변할 때마다 데이터에 관련된 dom을 일일히 찾는다면 중복되는 코드가 많아지고 불필요한 dom접근이 많아질 것인데 이 데이터들을 전역으로 쉽게 관리할 수 있게 해주는 것이 바로 상태 관리입니다. 

 

・ 반응형 프로그래밍: 데이터가 변경할 때마다 이벤트를 발생시켜서 지속적으로 전달하는 목표를 가진 프로그래밍

반응형 프로그래밍은 데이터 스트림과 변화의 전파에 관련된 선언형 프로그래밍 패러다임이다. 

 

📕 임시적인 상태 (== Local state)

특정한 컴포넌트 안에서만 관리되는 상태로 현재 페이지에서만 사용하는 상태이며 다른 곳에 영향을 주지 않는 경우를 말합니다. 

예를 들어 현재 페이지의 pageview, 복잡한 애니메이션의 현재 진행 상황, 현재 선택된 bottomnavitaionbar 등처럼 stateful에 해당하는 것들입니다. 

 

📕 App 상태 (전역)

프로덕트 전체 혹은 컴포넌트가 동시에 관리하는 상태로 어떠한 상태가 앱 전체에 영향을 주는 경우를 말합니다. 

예를 들어 로그인 정보, 유저의 설정, 장바구니, 알림처럼 이런 경우에는 앱 전체에 영향을 주기 때문에 App state라고 부릅니다. 

・ 전역 상태에서의 데이터 무결성: 데이터의 정확성을 보장하기 위해 데이터의 변경이나 수정 시 제한을 두어 안정성을 저해하는 요소를 막고 데이터 상태들을 항상 옳게 유지하는 것

 

📕 상태관리 종류 

getx, provider, bloc, riverpod 

 

📕 참고

플러터 공식문서 https://docs.flutter.dev/development/data-and-backend/state-mgmt/declarative

테코톡 https://www.youtube.com/watch?v=alsCMx6vpG4

플러터 상태관리 티스토리 https://pcseob.tistory.com/32

플러터 상태관리 티스토리 https://joooosan.tistory.com/83

반응형