간단하게 알아보는 플러터 상태와 상태 관리

향신료·2023년 4월 3일
0
post-thumbnail

참고 문서 링크
https://jaytillu.medium.com/what-is-state-in-flutter-dbee1522fb59
https://www.desuvit.com/state-management-in-flutter-a-comprehensive-guide/
https://docs.flutter.dev/development/data-and-backend/state-mgmt




상태

우선 이 상태라는 것에 대해 먼저 알아보겠습니다.

상태란?

크게 본다면, 상태는 UI 생성에 필요한 모든 데이터입니다.

그리고 데이터의 타입은 두 가지로 나눌 수 있고 아래와 같이 설명할 수 있죠.


  • App
    • 앱에서 전역적으로 사용하는 다크 모드 설정, 로그인 정보와 같은 데이터
  • Widget
    • 위젯 내부에서만 사용되는, 외부에 공유될 필요가 없는 데이터





상태 관리

그럼 이어서 상태 관리에 대해 알아볼까요?



상태 관리란?

효율적으로 해당 상태(데이터)들을 사용하도록 앱을 구성하는 것이며

이 상태 관리의 역할은 상태와 같이 크게 2가지로 볼 수 있습니다!



  1. 데이터 접근 권한 주기
  2. 데이터가 변경되었을 때 위젯에게 알리기



그게 효율적인 이유는 뭐죠?

데이터에 관한 권한을 가져가고 별도로 위젯에게 알리는 것이 효율적인 이유는 뭘까요?



바로 불필요한 상태 변환 호출을 막기 때문입니다.



택배로 비유하면서

보기 쉽게 이미지로 설명하자면 아래와 같습니다.


상태 관리 없을 경우의 예시

101호에 택배가 온 것인데 아파트 주민 전체에게 알린다면

주민들이 자신의 택배인지 반응을 할 테니 불필요한 추가 대응이 필요하겠죠?


상태 관리를 사용한다면 어떻게 될까요?



상태 관리 있을 경우의 예시

아까 전과는 다르게 해당 101호 주민에게만 택배가 왔음을 알려줄 수 있으므로

모든 주민들이 택배에 반응하지 않아 피곤한 일이 덜어졌죠?




위와 같이 자신에게 필요하지 않은 상태 변화에 하나하나 반응하지 않아도 되므로

성능 고도화를 위해서라도 상태 관리는 필수적이라고 볼 수 있습니다.




현재 플러터에서 대표적으로 사용되는 상태 관리 패키지는

  • BLoC
  • Provider
  • GetX

위의 존재들이 대표적이지만 이외에도 다양하게 존재하니


상황에 따라 아래의 공식 문서를 참조하여 선택해 사용하시는 걸 추천드립니다.

👉 공식 문서 링크


profile
드문드문 기초 정보를 올리는 블로그

0개의 댓글