-
flutterflow 사용해서 앱 만들기 - (2) 데이터 저장 방식 선택프로그래밍/flutterflow로 어플만들기 2023. 4. 3. 21:33728x90반응형
2023.04.01 - [프로그래밍/flutterflow로 어플만들기] - flutterflow 사용해서 앱 만들기 - (1) 어플 기획 & 프로젝트 생성
이전 포스팅에서 어플 기획 & 프로젝트 생성 이후
flutterflow의 문제 하나를 발견했다
문제 데이터 관련해서 sqlite등 로컬 데이터베이스를 사용할 계획이였는데
flutterflow에서는 데이터 로컬 저장방식으로 앱 state(로컬 state) 밖에 지원을 안하는 것이다.
( flutter에는 sqlite를 사용할 수 있다 )
커뮤니티 보니까 문의는 작년부터 꾸준히 있는 것으로 보이는데
운영쪽에는 크게 개발 의지가 없어보인다;;
일단 향후 제공할 기능들과 가능한 방식들을 아래 정리해보았다.
(모든 기능 들은 오프라인에도 문제가 없어야 함 )
기능 flutterflow(앱state) flutterflow(firestore) flutter(local sqlite) 시험 문제 읽기 기능 X (문제가 많아지면 한계가 있음) △ (오프라인일 경우 캐싱된 데이터) ㅇ 사용자 답 저장 기능 ㅇ △ (오프라인일 경우 캐싱된 데이터) ㅇ 문제 키워드 검색 기능 X △ (오프라인일 경우 캐싱된 데이터) ㅇ 사용자 랭킹 기능 ( 조건별로 사용자 순위 제공 예정) X ? (가능은 해 보이는데 해봐야 알 것 같음) X 여러가지 고민되는 지점이 있지만 일단 firestore로 시작해보기로 했다.
아래는 좀 더 자세한 고민과정이다.
문제 개수도 점점 많아질 것 이고
나중에 검색 기능도 넣을 생각이라
앱state로 데이터를 저장하면 안 될 것 같아서
일단 flutterflow에서 지원하는 firebase에 대해서 검색해 보았다.
https://darrengwon.tistory.com/1550
https://www.youtube.com/watch?v=ivjYPsFAmPo
주로 속도, scaling 관련해서 이슈가 있는 것 같긴 한데
오프라인 지원하는 것이 그나마 괜찮은 것 같긴 한다.
그런데 초반에는 사용료가 없겠지만 나중에 사용자가 늘면 사용료도 발생할 수 있고
문제은행이라는게 외부에서 데이터를 가져올 필요가 없는데
괜히 속도 & 비용 이슈만 생기는 것 같기는 하다...
일단 MVP로 간단히 만드는 것에 의의를 두고 firebase로 진행을 해보려고 하다가
오프라인으로 데이터를 가져오는 문제가 생각보다 중요하다는 생각이 들었따.
https://firebase.google.com/docs/firestore/manage-data/enable-offline?hl=ko
오프라인 데이터 가져오기
기기가 오프라인 상태일 때 문서를 가져오면 Cloud Firestore는 캐시의 데이터를 반환합니다.
컬렉션을 쿼리할 때 캐시된 문서가 없으면 빈 결과가 반환됩니다. 특정 문서를 가져오면 대신 오류가 반환됩니다.
오프라인 데이터 쿼리
쿼리는 오프라인 지속성과 연동합니다. 앞에서 설명한 것처럼 직접 가져오기 또는 수신 대기를 통해 쿼리 결과를 검색할 수 있습니다. 기기가 오프라인 상태일 때 로컬에 유지되는 데이터에 대해 새 쿼리를 만들 수도 있지만 이러한 쿼리는 처음에는 캐시된 문서에 대해서만 실행됩니다.캐시된 데이터만을 사용한다는 이야기는
사용자가 기출문제1 을 풀고 한번도 한 풀었던 기출문제2 를 클릭하면 오류가 난다는 이야기겠지;;?
파이어스토어 캐시에 대해서 더 상세하게 분석해분 포스팅이 있어서 읽고나서 결론을 내렸다.
https://hellose7.tistory.com/m/117
시험 문제들을 서브 컬렉션 으로 구성해서
앱 처음 실행할 떄 다 가져오면 캐시 만료되기 전까지는 크게 이슈는 안 될 것 같은데
일단 해봐야지 정확하게 알 것 같다.
그리고 firestore query가 제한이 많아서
조건별로 사용자 랭킹에 구할 수 있는지 검색도 해보고 chatgpt에 물어도 보았는데
역시 이것도 해봐야지 정확히 알 것 같다.
https://www.reddit.com/r/Firebase/comments/d8yyrd/calculate_users_ranking_based_on_firestore_field/
https://kugancity.tistory.com/entry/how-to-get-rank-of-each-user-in-firestore
그럼 다음 포스팅에서는 firestore로 문제 데이터 저장하기를 이어서 해보겠다.
728x90반응형'프로그래밍 > flutterflow로 어플만들기' 카테고리의 다른 글
flutterflow 사용해서 앱 만들기 - (5) 메인페이지 생성 (0) 2023.04.07 flutterflow 사용해서 앱 만들기 - (4) 시험 문제 페이지 생성 (0) 2023.04.07 flutterflow 사용해서 앱 만들기 - (3) firestore 컬렉션 생성 & 데이터추가 (0) 2023.04.06 flutterflow - firestore data manager 오류별 수정 내용 (0) 2023.04.06 flutterflow 사용해서 앱 만들기 - (1) 어플 기획 & 프로젝트 생성 (1) 2023.04.01