정지용
기술스택 목록
백엔드

Firebase

프로젝트 2에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

Google이 제공하는 모바일·웹 앱 개발을 위한 백엔드 통합 플랫폼

Firebase는 인증, 데이터베이스, 스토리지, 푸시 알림 등 백엔드 기능을 SDK와 클라우드 서비스로 제공하는 BaaS(Backend as a Service) 플랫폼입니다. 서버 인프라를 직접 구축·관리하지 않고도 실시간 데이터 동기화, 사용자 인증, 파일 저장 등의 기능을 빠르게 통합할 수 있도록 설계되었습니다. 특히 모바일 앱과 프로토타입 개발 단계에서 백엔드 구축 시간을 크게 단축할 수 있습니다.

이럴 때 사용합니다

  • 백엔드 서버 없이 빠르게 MVP나 프로토타입을 만들어야 할 때
  • 실시간 채팅, 협업 도구 등 데이터 동기화가 중요한 앱을 개발할 때
  • 푸시 알림, 사용자 인증 등 공통 기능을 직접 구현하는 부담을 줄이고 싶을 때
  • Google Cloud와의 통합이 필요하거나 Firebase의 무료 티어로 시작하고 싶을 때

핵심 개념

Realtime Database
NoSQL 기반의 클라우드 데이터베이스로, 데이터 변경 시 연결된 모든 클라이언트에 실시간으로 동기화됩니다. JSON 트리 구조로 데이터를 저장하며, WebSocket을 통해 즉각적인 업데이트를 제공합니다.
Firestore
문서-컬렉션 모델을 사용하는 확장 가능한 NoSQL 데이터베이스입니다. Realtime Database보다 강력한 쿼리와 구조화된 데이터 관리가 가능하며, 오프라인 지원과 자동 동기화를 제공합니다.
Authentication
이메일/비밀번호, 소셜 로그인(Google, Facebook 등), 익명 인증 등 다양한 방식의 사용자 인증을 SDK로 제공합니다. 토큰 관리와 세션 유지를 자동으로 처리합니다.
Cloud Messaging (FCM)
크로스 플랫폼 푸시 알림 서비스로, iOS, Android, 웹 브라우저에 무료로 메시지를 전송할 수 있습니다. 주제 구독, 기기 그룹 관리 등의 기능을 제공합니다.
Security Rules
데이터베이스와 스토리지에 대한 접근 권한을 선언적으로 정의하는 규칙 언어입니다. 사용자 인증 상태, 데이터 구조, 요청 조건에 따라 읽기/쓰기 권한을 제어할 수 있습니다.

FCM 푸시 알림 전송 (Node.js Admin SDK)

Firebase Admin SDK를 사용해 서버에서 특정 기기로 푸시 알림을 전송하는 기본 예시입니다. 클라이언트에서는 FCM SDK로 토큰을 받아 서버에 등록합니다.

JavaScript
const admin = require('firebase-admin');

// Firebase Admin SDK 초기화
admin.initializeApp({
  credential: admin.credential.cert('serviceAccountKey.json')
});

// 특정 기기로 푸시 알림 전송
const message = {
  notification: {
    title: '화재 경보',
    body: '3층 복도에서 연기가 감지되었습니다.'
  },
  token: 'device-registration-token-here'
};

admin.messaging().send(message)
  .then(response => console.log('알림 전송 성공:', response))
  .catch(error => console.error('알림 전송 실패:', error));

처음 쓸 때 흔한 함정

  • Realtime Database는 깊은 중첩 구조에서 쿼리가 비효율적이므로 데이터를 평탄하게 설계해야 함
  • Security Rules를 설정하지 않으면 기본적으로 모든 접근이 차단되거나 허용되므로 반드시 명시적으로 작성 필요
  • 무료 티어는 동시 접속, 데이터 전송량에 제한이 있어 프로덕션 환경에서는 비용 계획이 필요함

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.