이번에 Flutter와 Firebase Firestore 연동을 학습하면서, 단순히 화면을 만드는 수준을 넘어 데이터가 실제로 클라우드에서 관리되고 앱과 실시간으로 동기화되는 과정을 직접 경험할 수 있었습니다. 그동안 로컬 상태 관리로만 앱을 다루던 방식과는 차원이 다른 확장성을 느낄 수 있었고, 서버를 따로 구축하지 않아도 앱이 백엔드 기능을 갖추게 된다는 점이 특히 인상 깊었습니다.
가장 먼저 Firestore의 개념을 이해하는 것이 출발점이었습니다. Firestore는 구글에서 제공하는 NoSQL 기반의 클라우드 데이터베이스로, 데이터가 컬렉션과 문서 단위로 저장되는 구조를 가지고 있습니다. 관계형 데이터베이스처럼 복잡한 테이블 설계가 필요하지 않고, 직관적으로 데이터를 저장·조회할 수 있다는 장점 덕분에 초반 진입 장벽이 낮았습니다. 또한 실시간 동기화 기능을 지원하기 때문에, 여러 사용자가 동시에 데이터를 수정해도 앱 화면에 즉시 반영된다는 점이 매력적이었습니다.
다음 단계에서는 Flutter 프로젝트와 Firebase를 연결하는 환경 설정 과정을 다루었습니다. Firebase 콘솔에서 프로젝트를 만들고 앱을 등록한 뒤, Android는 google-services.json, iOS는 GoogleService-Info.plist 파일을 각각 프로젝트에 추가해야 했습니다. 이어서 Flutter 환경에서는 firebase_core와 cloud_firestore 패키지를 pubspec.yaml에 추가하고 초기화를 진행해야 했는데, 한 번만 올바르게 세팅해 두면 이후 다른 Firebase 서비스까지 쉽게 확장할 수 있다는 점에서 의미 있는 과정이었습니다.
환경 세팅이 끝난 후에는 간단한 투두앱에 Firestore를 연결해 보았습니다. 로컬에서만 관리되던 할 일 목록을 Firestore에 저장하고 불러올 수 있도록 변경했는데, 이때 문서 ID 자동 생성, 컬렉션 구조 설계, 데이터 입력 방식 등을 실습하면서 Firestore의 직관적인 사용성을 확인할 수 있었습니다. 특히 StreamBuilder를 활용해 Firestore 데이터를 실시간으로 불러오는 기능을 적용했을 때, 앱의 데이터가 ‘살아 움직인다’는 느낌을 받았습니다.
이후에는 Firestore의 기본적인 CRUD 기능을 직접 구현했습니다. 새로운 데이터를 추가할 때는 add() 메서드를 사용하고, 데이터를 불러올 때는 get(), 수정은 update(), 삭제는 delete()로 각각 동작하는 과정을 단계별로 실습했습니다. 단순해 보이지만 이를 실제 앱에 적용했을 때, 사용자가 입력한 할 일이 즉시 저장되고 다른 기기에서도 동일하게 확인되는 경험은 Firestore의 강점을 잘 보여주었습니다. 특히 여러 기기에서 동시에 접속해도 충돌 없이 데이터가 동기화되는 점은 채팅 앱이나 협업 툴 같은 실시간 서비스에도 충분히 활용할 수 있겠다는 생각을 하게 만들었습니다.
마지막으로 투두앱에 Create, Read, Update, Delete 기능을 모두 연동하면서, 단순한 개인용 앱이 아닌 누구나 동시에 접근 가능한 클라우드 앱으로 확장되는 과정을 체감했습니다. 예를 들어, 새로운 할 일을 추가하면 Firestore에 즉시 저장되고, 다른 사용자 화면에도 곧바로 반영되는 흐름은 실제 서비스 개발에서 핵심적인 가치라고 느꼈습니다.
이번 학습을 통해 느낀 가장 큰 장점은, 별도의 서버를 구축하지 않고도 Firebase 하나만으로 앱의 데이터 관리와 백엔드 기능을 구현할 수 있다는 점이었습니다. 개인 프로젝트나 초기 스타트업 단계에서는 시간과 비용을 절약할 수 있는 매우 효율적인 방법이라고 생각합니다. 앞으로는 Firestore뿐만 아니라 Firebase Authentication, Cloud Functions 등 다양한 기능과도 연계하여 더 발전된 앱을 만들어보고 싶습니다.