클라우드 동기화 — Firebase로 메모 백업/복원하기

2025. 5. 28. 16:44·Flutter/Flutter 메모 앱 만들기
728x90
반응형

Flutter 메모 앱이 진짜 앱이 되는 순간은, 기기가 바뀌거나 앱을 삭제해도 내 메모가 안전하게 남아있을 때다.

이번 글에서는 Firebase Firestore를 활용해 메모를 클라우드에 백업/복원하는 방법을 정리한다.


☁️ Firestore란?

Cloud Firestore는 Google Firebase에서 제공하는 NoSQL 클라우드 데이터베이스로, Flutter와의 연동이 매우 쉬우며 실시간 동기화에도 강력하다.


📦 패키지 설치 및 초기 설정

// pubspec.yaml
dependencies:
  firebase_core: ^2.24.2
  cloud_firestore: ^4.13.2

Firebase 프로젝트 생성 후 google-services.json 또는 GoogleService-Info.plist를 설정해야 한다.


🧾 메모 데이터 저장 구조

class Memo {
  final String id; // Firestore 문서 ID
  final String content;
  final String? imagePath;
  final String? audioPath;
  final bool isPinned;
  final String tags;

  Map<String, dynamic> toJson() {
    return {
      'content': content,
      'imagePath': imagePath,
      'audioPath': audioPath,
      'isPinned': isPinned,
      'tags': tags,
    };
  }

  factory Memo.fromJson(String id, Map<String, dynamic> json) {
    return Memo(
      id: id,
      content: json['content'],
      imagePath: json['imagePath'],
      audioPath: json['audioPath'],
      isPinned: json['isPinned'] ?? false,
      tags: json['tags'] ?? "",
    );
  }
}

📤 메모 백업하기 (업로드)

final db = FirebaseFirestore.instance;

Future<void> backupMemo(Memo memo) async {
  await db.collection('memos').doc(memo.id).set(memo.toJson());
}

Firestore는 컬렉션-문서 구조를 사용하므로, 각 메모를 고유 ID로 저장하면 업데이트도 쉬워진다.


📥 메모 복원하기 (다운로드)

Future<List<Memo>> restoreMemos() async {
  final snapshot = await db.collection('memos').get();
  return snapshot.docs.map((doc) =>
    Memo.fromJson(doc.id, doc.data())
  ).toList();
}

앱 시작 시 자동으로 불러오거나, 사용자 요청 시 동기화 버튼을 제공할 수 있다.


🔁 로컬 DB ↔ 클라우드 연동 흐름

  • 앱에서 메모 작성 → Firestore에 저장
  • Firestore에서 불러오기 → sqflite로 로컬 저장
  • 변경 감지 시 양방향 동기화

사용자 UID를 활용하면 로그인 기반의 멀티 유저 메모 관리도 가능하다.


🧠 UX 팁

  • 앱 설정 화면에 "클라우드 동기화" 버튼 추가
  • 동기화 중 로딩 인디케이터 제공
  • 네트워크 상태 확인 후 업로드/다운로드 처리

🧘 마무리하며

Flutter 메모 앱의 마지막 퍼즐은 바로 클라우드 동기화다.
기기가 바뀌어도, 앱을 재설치해도 — 기억은 안전하게 살아남는다.

당신의 기억을 구름 위에 저장하세요.

✍️ 이 글은 터미널 밖으로 나온 개발자의 Flutter 메모 앱 만들기 여정입니다.

728x90
반응형

'Flutter > Flutter 메모 앱 만들기' 카테고리의 다른 글

검색 기능 구현 — 키워드로 빠르게 메모 찾기  (0) 2025.05.28
이미지 첨부 기능 — 사진과 함께 기억하기  (0) 2025.05.28
음성 메모 녹음 기능 추가하기  (0) 2025.05.28
다크 모드와 배경 커스터마이징 — 메모에 감성 더하기  (0) 2025.05.28
메모 태그 분류 — 주제별로 필터링하는 법  (4) 2025.05.28
'Flutter/Flutter 메모 앱 만들기' 카테고리의 다른 글
  • 검색 기능 구현 — 키워드로 빠르게 메모 찾기
  • 이미지 첨부 기능 — 사진과 함께 기억하기
  • 음성 메모 녹음 기능 추가하기
  • 다크 모드와 배경 커스터마이징 — 메모에 감성 더하기
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    모바일앱개발
    뉴스앱
    UIUX
    북마크기능
    개발블로그
    백엔드개발
    openweather
    flutter상태관리
    감성앱
    Flutter
    다크모드
    캘린더앱
    ActiveRecord
    flutter앱개발
    rails보안
    정적사이트
    RubyOnRails
    Nextjs
    Firebase
    flutterui
    flutter디자인
    날씨앱
    fluttertips
    코드를걷는사람
    flutter기초
    flutter게시판
    메모앱
    UI디자인
    flutter개발
    table_calendar
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
클라우드 동기화 — Firebase로 메모 백업/복원하기
상단으로

티스토리툴바