MVVM과 Riverpod, Firebase_Flutter 숙련주차 2일

박진·2026년 1월 6일
post-thumbnail

2026.01.06 (화)

  • MVVM
  • Riverpod
  • Firebase

오늘의 공부 이미지 💫

제미나이한테 오늘 머릿속에 있는 지식 다 때려박고 이게 맞아? 맞으면 이미지로 그려줘 했더니...!!

쫌 잘 그려준 듯?.. 정리가 안 됐었는데 또 그려주니까 이게 맞는 듯 (Gemini 쫌 치네)


🌈 MVVM 패턴

MVVM은 각자 역할이 나눠져있고, 유지보수를 쉽게 만드는 설계 도면!1

구성 요소하는 일
Model데이터의 구조와 로직을 정의함
View사용자에게 보이는 화면 (UI)
ViewModelView에 필요한 데이터를 전달

여기서 중요한 사실은,
View는 ViewModel을 바라보고 있지만 ViewModel은 View가 누군지 모른다, 몰라도 된다..! 로직에 영향을 주지 않는다고 한다


🌲 Riverpod 상태 관리

✏️ Riverpod은 ViewModel의 역할을 수행하거나 데이터를 관리하기 위해서 사용하는 라이브러리이다.

ConsumerWidget

Riverpod에서 제공하는 데이터를 감시? 감지? 한다

Provider

데이터를 저장하고 제공하는 상자,
homeViewModelProvider ProviderContainer 등 나중에 어떤 상자를 담았는지 알 수 있도록 이름이 붙는다

ref.watch

ViewModel을 지켜보고 있다가 상태가 변경되면 상태를 달라고 요청하면서 화면 갱신해준다..!

기본적인 Provider 사용 순서

접근 가능한 데이터 상자를 만든다. -> Provider 정의해주기
ref.watch를 사용해서 데이터 변화 감지 -> Provider 읽기


🔥 Firebase

✏️ 서버를 직접 만들고 관리하지 않고 데이터베이스, 로그인, 알림 등의 기능을 사용할 수 있게 해주는 Backend as a Service
-feat. 구글 만듬

NoSQL

No SQL
나는 기존의 관계형 데이터 베이스 방식이 아니다. 나는 다양한 형태로 데이터를 저장하는 비관계형 데이터베이스를 뜻한다고 한다..! 난 달라

그렇다면 기존은 무엇일까?
기존은 SQL의 형식의 데이터베이스를 사용했다. 둘의 차이점은?

-NoSQLSQL
데이터 중복성데이터 중복 O데이터 중복 X
확장성수직, 수평 확장 가능대체적 확장은 가능
구조스키마 없음명확하게 정의된 스키마 형식

-> 즉, NoSQL 사용하는 이유는 기존의 정해진 형식의 데이터베이스 보다 훨씬 유연하고 언제든지 데이터 조정하고 새로운 필드를 추가 할 수 있다.

오늘은 여기까지 배웠다.. 내일 모닝스터디때 본격적 firebase 사용해볼 예정이다..!!


오늘의 간단 요약 🐣

  • MVVM으로구조를 잡는다
  • Riverpod으로 데이터를 관리하고 보낸다
  • Firebase로 데이터를 보관한다

강의로 만들어본 책 검색 앱..!

0개의 댓글