본문 바로가기

Flutter-플러터/플러터 공부

코딩초보가 이해한 상태관리

반응형

 

상태관리 

 

코딩 언어는 어렵다. 

 

원문인 영어도 어려운데 그 영어가 번역된 한국어도 어렵다. 

 

그래도 이해를 해야 한다. 

 

그래야 코드가 써질 테니 말이다. 

 

어제 과외에서는 상태관리 Provider 패키지에 대해 공부를 했다. 

 

사전 예습으로 유데미에 있는 Provider 강의를 들었다. 

 

대학 강의 같이 차분하게 설명해 주는 교수님.. 

 

역시나 이해하기가 어려웠다. 

 

그래도 전반적인 Provider의 개념을 알고 어제 과외를 받았다. 

 

홍정민 강사님의 Provider 설명은 비전공자인 내가 이해하기 쉽게 설명을 해주셨다. 

 

강사님은 상태관리에 대해 아파트 단지 내의 분리수거 일자를 변경하는 과정을 빗대어 설명을 해주었다. 

 

충분히 이해를 했고 다른 사례가 없을까 고민을 하다가 내가 배달음식점을 운영한 경험으로 상태관리 Provider를

 

설명해보려고 한다. 

 

 

배달시장과 택배시장의 차이점

 

나는 배달음식점을 운영하면서 코로나 이후로 배달 시장이 급격히 성장하는 모습을 보았다. 

그리고  배달음식 시장도 택배시장처럼  커질 줄 알았다. 

 

택배시장은 지난 몇 십년간 끊임없이 성장하고 있었다. 시장이 성장함에 따라 택배 관련 물류 기술, 인프라가 발전해서 

택배비는 크게 변동이 없었다.

 

택배비가 크게 오르지 않고 정해진 시간내에 처리할 수 있는 물건이 많아짐에 따라 더 많은 사람이 쉽게 이용하고

시장은 다시 성장 할 수 있었다. 

 

택배시장이 성장함에도 택배비가 크게 변동이 없었던 가장 큰 이유는 Hub 센터이다. 

 

예를 들어

1. 소비자가 인터넷에서 노트북을 구매했다. 

2. 주문을 받은 노트북 판매자는 택배업체를 이용해 노트북을 출고한다. 

3. 노트북을 받은 택배업체는 고객에게 바로 보내지 않고 hub센터로 보낸다. 

4. hub센터에 입고된 노트북은 택배 송장에 부착된 라벨번호로 인근지역의 물건들과 재배치된다.

5. 인근지역끼리 재배치된 물건들과 노트북은 고객의 집 근처에 있는 택배기사에게 보내진다. 

6. 택배기사는 자기 지역 내의 택배만 책임지고 보다 빠르게 배송을 할 수 있게 한다. 

 

이러한 모습이 나는 그대로 배달시장에도 적용이 될 줄 알았다. 

하지만 배달 시장은 택배시장과는 확연하게 다른 구조였다. 

 

1. 고객이 배달 음식을 주문한다. 

2. 주문을 받은 업체는  배달 기사에게 음식을 전달한다. 

3. 배달기사는 고객에게 음식을 전달한다. 

 

매우 심플한 구조이지만 배달은 주문 1건당 1개의 배달 밖에 하지 못한다. 

이것이 결국 배달기사의 공급과  고객들의 배달 음식 주문 수요의 불균형을 불러오고 

배달 시장은 작아지게 되었다. 

 

 

Flutter로 상태관리를 해야 하는 이유 

 

위에 언급한 택배 시장처럼 내가 앞으로 만들 앱도 큰 비용 없이 효율적인 성장을 해야 한다. 

 

배달시장처럼 주문 1건당 배달 1건만 처리 할 수 있다면 너무 비효율적이다. 

 

 택배 회사 hub 센터에  입고된 모든 물건들을 한곳에서 모아서 

 

각각의 인근 지역으로 재배치 하는 시스템이 필요로 한다. 

 

그것이 상태관리의 핵심이다. 

 

내가 앞으로 다루고 싶은 데이터들을 한 곳에 모아서 그 데이터들을 각각의 UI, 위젯들에게 재배치하는 시스템 

 

Provider에서는 changenotifier 클래스를 만들고, notifyListeners(); 로 관리한다. 

 

Getx에서는 Getxcontroller 클래스를 만들고 , 변숫값에. obs; 를 붙여서 관리한다. 

 

 

 상태관리 패키지마다 사용법은 다르지만 추구하는 바는 같다. 

 

 

 

 데이터들을 한 곳에 모아  위젯들에게 재배치 하는 시스템 

 

반응형