Firebase Firestore: 기본 개요
Firebase Firestore는 클라우드 기반의 NoSQL 데이터베이스로, 모바일 및 웹 애플리케이션에서 실시간으로 데이터를 저장하고 동기화하는 데에 매우 유용합니다. Google Firestore는 손쉽게 확장할 수 있는 솔루션을 제공하여 개발자들이 복잡한 데이터 구조를 관리하는 데 도움을 줍니다. 이 데이터베이스는 문서(document)와 컬렉션(collection)을 기반으로 데이터를 조직하며, 이를 통해 계층적 구조를 만들 수 있습니다.

Firestore의 특징
Firebase Firestore는 다음과 같은 몇 가지 주요 기능을 제공합니다:
- 실시간 데이터 동기화: 데이터베이스에 변화가 생기면 즉시 클라이언트에 반영됩니다.
- 강력한 쿼리 기능: 복잡한 쿼리를 통해 데이터 필터링과 정렬을 손쉽게 수행할 수 있습니다.
- 자동 확장성: 트래픽 변화에 따라 자동으로 조정되어, 성능 저하 없이 안정적으로 운영할 수 있습니다.
- 오프라인 지원: 네트워크 연결이 없는 상태에서도 데이터 작업을 수행할 수 있습니다.
Firestore 설정하기
Firestore를 사용하기 위해서는 먼저 Firebase 프로젝트를 생성해야 합니다. Firebase Console에 접속하여 새로운 프로젝트를 생성한 후, Firestore 데이터베이스를 활성화하면 됩니다. 아래의 단계로 진행해 보시기 바랍니다:
- Firebase Console에 로그인 후, 새 프로젝트 생성
- 프로젝트 대시보드에서 “Firestore Database” 선택
- “Create Database” 버튼 클릭하여 Firestore 설정
환경 설정
Firestore를 사용하기 위해 클라이언트 애플리케이션에 Firebase SDK를 통합해야 합니다. JavaScript의 경우 아래와 같이 설정할 수 있습니다:
import firebase from 'firebase/app';
import 'firebase/firestore';
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.appspot.com",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};
firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
데이터 추가하기
Firestore에서 데이터를 추가하는 방법은 간단합니다. 문서(collection에 저장된 각각의 항목)는 아래의 방법으로 추가할 수 있습니다:
db.collection('users').add({
name: '홍길동',
age: 30,
email: 'hong@example.com'
}).then((docRef) => {
console.log('문서가 추가되었습니다: ', docRef.id);
}).catch((error) => {
console.error('문서 추가 중 오류 발생: ', error);
});
데이터 읽기
데이터를 읽어오는 것도 역시 쉽습니다. 특정 컬렉션에서 모든 문서를 가져오거나 쿼리를 통해 조건에 맞는 문서만 선택할 수 있습니다:
db.collection('users').get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(${doc.id} => ${JSON.stringify(doc.data())});
});
});
조건부 쿼리
특정 조건에 맞는 데이터를 조회하고자 할 경우 쿼리를 사용할 수 있습니다.
db.collection('users').where('age', '>', 20).get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(${doc.id} => ${JSON.stringify(doc.data())});
});
});
데이터 업데이트 및 삭제
Firestore에서 기존 데이터를 수정하거나 삭제하는 방법도 간단합니다. 문서를 참조하여 업데이트하는 방법을 살펴보겠습니다:
const userRef = db.collection('users').doc('USER_ID');
userRef.update({
age: 31
}).then(() => {
console.log('문서가 성공적으로 업데이트되었습니다!');
}).catch((error) => {
console.error('업데이트 중 오류 발생: ', error);
});
문서를 삭제하고자 할 경우:
userRef.delete().then(() => {
console.log('문서가 성공적으로 삭제되었습니다!');
}).catch((error) => {
console.error('삭제 중 오류 발생: ', error);
});
오프라인 기능
Firestore는 온라인과 오프라인 모두에서 작동하도록 설계되었습니다. 오프라인 상태에서도 데이터 변경이 발생하면, 인터넷이 복구되었을 때 자동으로 서버와 동기화됩니다. 이러한 기능을 활용하면 사용자 경험을 더욱 향상시킬 수 있습니다.

결론
Firebase Firestore는 웹 및 모바일 애플리케이션 개발에 매우 유용한 도구입니다. 다양한 기능과 쉬운 사용법 덕분에 많은 개발자들이 애플리케이션의 데이터 관리를 위해 Firestore를 선택하고 있습니다. 이 글을 통해 Firestore의 기본적인 사용법과 예제 코드를 안내드렸습니다. 이러한 정보를 바탕으로 실험해 보시고, 여러분의 프로젝트에 적합한 방식으로 활용해 보시기 바랍니다.
자주 묻는 질문 FAQ
Firebase Firestore의 장점은 무엇인가요?
Firestore는 실시간 데이터 동기화, 강력한 쿼리 기능 및 오프라인 지원을 제공하는 등의 이점을 가지고 있어 애플리케이션 개발에 매우 유용합니다.
Firestore에서 데이터를 추가하는 방법은 어떤 것이 있나요?
Firestore에 데이터를 추가하는 것은 간단하며, 특정 컬렉션에 문서를 생성하여 필요한 정보를 저장할 수 있습니다.