본문 바로가기

Software Engineer/Mobile App

Flutter 뽀개기 - 시리즈 2. 데이터의 흐름도와 추상도

 

우선 웹 프론트의 데이터 흐름도를 보자.

웹 개발과 앱 개발의 데이터 흐름은 비슷합니다.

 

Case 1 :

입력 - 검증 - 요청 - (로딩) - 응답 - 에러분기처리 - 리렌더링

 

 

1. 사용자 UI에서 데이터를 입력 받습니다.

2. 입력을 받은 데이터를 검증하여 에러/경고/정상으로 분기 처리한다. 이 때 경고메세지/에러메시지를 표출합니다.

3. 검증한 정상적인 데이터를 비즈니스 정책을 반영하여 처리합니다.

4. 비즈니스 로직을 처리한 데이터를 객체에 저장하거나 영속성에 따라 필요하면 로컬/외부 저장소에 데이터를 추가/업데이트/삭제를 합니다.

5. 요청한 서버에 대한 응답에 따라 에러/정상 분기처리를 합니다.

6. 에러/정상 분기처리한 내용에 따라 변화가 필요한 UI를 리렌더링합니다.

 

 

 

 

데이터는 여러가지 기준으로 분류할 수 있다. 그럼 코드 작성할 때 어떤 기준으로 분리해야 좋을까?

 

1. 데이터는 사용자로부터 입력되거나 발생되는가?

사용자로부터 발생된다. / 사용자로부터 입력받는다. / 사용자로부터 생기지 않는다.

 

사용자로부터 입력받는 데이터

데이터 예시) : id,pw, nickname, post, comment

사용자로부터 발생되는 이벤트 데이터

데이터 예시) : Drag or Tab or Over

 

 

 

2. 그 데이터가 UI 렌더링에 영향을 주는가?

데이터 예시) input에 입력한 문자열, 로딩 중

 

 

3. 저장소에 저장해서 영속성을 유지할 것인가?

클라이언트에 로컬스토리지쪽엔 저장되거나 필요가 있는가?

데이터 예시) : 로그인 토큰

 

DB에 저장되거나 읽거나 업데이트 되어야하는가?

데이터 예시) : 게시글, 댓글, 좋아요 등

 


다음 글에서는, 이 데이터 흐름과 분류 기준에 따라서 나눈 데이터들 중 특히 state 관리 해야할 데이터를 중심으로 RiverPod으로 프로바이더를 만들고 예제를 소개하겠습니다.

 

https://docs-v2.riverpod.dev/

'Software Engineer > Mobile App' 카테고리의 다른 글

Flutter 15일만에 뽀개기 - 시리즈 1.  (2) 2023.06.18