인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Chanseok Park님의 프로필 이미지

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Debounce 적용하기

라이브러리 조합에 대해서 문의드립니다.

작성

·

69

0

안녕하세요. 라이브러리 조합에 대해서 문의드립니다.

 

중급 강좌에서는

dio + retrofit + flutter_riverpod

조합으로 사용을 하였습니다.

 

초급 강좌에서 사용한 drift + get_it 조합을 drift + flutter_riverpod 조합으로  사용 가능할까요?

또한 초급 강좌에서 사용한 isar + get_it 조합을 isar + flutter_riverpod 조하으로 사용 가능할까요?

 

로컬 DB(drift, isar) 는 네트워크가 통신이 아닌 로컬통신으로 flutter_riverpod 에서 제공하는 기능을 사용할 필요가 없나요?


추가로 drift 사용시 isar 와 같이 테이블별로 Repository 를 만들어서 사용할 수 있을까요?

사용할 수 있다면 참고할 수 있는 링크나 설명 부탁드립니다.

 

고맙습니다.

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

충분히 가능합니다.

일단 drift와 isar의 경우 로컬 데이터베이스고 dio는 외부 요청을 위한 툴이라는 점은 이해를 잘 하고 계신 것 같습니다.

로컬 DB 사용시 Riverpod를 사용 할 필요가 없는지에 대한 질문은 매우 좋은 질문입니다. 하지만 만약에 riverpod의 역할을 잘 이해 했다면 생각보다 쉽게 사용 가능 여부를 이해 할 수 있습니다.

다양한 아키텍처와 패턴을 예로 들을 수 있지만 MVVM 패턴에서 이야기를 해보자면 Riverpod은 VM에 속하는 영역이고 Drift는 Model에 속하는 영역입니다.

즉, 화면과 연동돼야하는 상태와 데이터 저장을 하는 Persistence Layer는 따로 가져가는게 설계 스케일리을 위해 편리합니다.

하지만 Isar를 포함한 다양한 로컬 데이터베이스 툴들이 Riverpod 처럼 상태를 관리 할 수 있는 기능들을 제공 해주고 있습니다. 만약에 이런 기능을 다이렉트하게 사용 한다고 하면 모델부터 VM 역할까지 전부 할 수 있다고 생각 할 수도 있습니다. 생각하기 나름이고 사용하기 나름이며 프로젝트 규모와 컨셉에 따라 충분히 다를 수 있는 부분입니다.

혹시 도움이 되셨을까요?

감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. Chanseok Park님.

Flutter에서 라이브러리 조합은 개발자의 필요와 프로젝트 특성에 따라 다양하게 사용할 수 있습니다. 질문주신 drift + flutter_riverpod 및 isar + flutter_riverpod 조합은 실질적으로 가능합니다. flutter_riverpod는 상태 관리를 제공하며, 다양한 데이터 공급원과 결합하여 사용 가능합니다.

drift + flutter_riverpod

  • Drift는 로컬 데이터베이스이고, flutter_riverpod은 상태 관리 라이브러리입니다. 두 라이브러리를 함께 사용하여 데이터베이스에서 가져온 데이터를 상태로 저장하고, UI에 반영할 수 있습니다.
  • 예시: 데이터베이스에서 데이터를 읽어와 flutter_riverpod의 상태에 저장하고, UI에서는 해당 상태를 구독하여 변경 시 자동으로 업데이트됩니다.

isar + flutter_riverpod

  • Isar 역시 로컬 데이터베이스이며, flutter_riverpod과의 조합은 상태 관리를 효율적으로 구현하기에 적합합니다.
  • 예시: Isar 데이터베이스에 데이터가 변경되면, riverpod의 상태가 업데이트되어 UI가 자동으로 변경될 수 있습니다.

로컬 DB와 flutter_riverpod의 기능 사용

  • 네트워크 통신과는 달리 로컬 데이터베이스는 상태 관리 기능을 반드시 필요로 하지는 않으나, 상태 관리와의 조합으로 UI와 데이터 동기화를 더욱 체계적으로 할 수 있습니다.

Drift의 테이블별 Repository 사용

  • Drift와 같이 테이블별로 Repository 패턴을 구현하는 것은 가능한 접근 방식입니다. 이는 데이터를 모듈화하고 관리하기 쉽게끔 합니다.

아래 링크들은 유용한 예제나 가이드일 수 있습니다. 직접 구현 체험을 하시는 것도 습득에 많은 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.