yeon's blog

[Kotlin] Firebase? 본문

Kotlin/Kotlin 개념

[Kotlin] Firebase?

yeonii 2024. 1. 1. 21:56

 

Kotlin을 이용해 [안드로이드 커뮤니티 앱]을 개발하기에 앞서, Firebase에 대해 알아보려고 한다.
본 내용은 Firebase 공식 문서를 참조하여 작성하였습니다.

 

 

🔥 Firebase란?

Firebase는 구글에서 개발한 클라우드 기반의 백엔드 서비스를 제공하는 모바일 및 웹 애플리케이션 개발 플랫폼이다.

Firebase는 데이터베이스, 인증, 스토리지, 호스팅, 애널리틱스 등의 다양한 기능을 제공하며, Realtime Database와 Cloud Firestore, Authentication, Cloud Storage, Hosting, Cloud Messaging 등의 기능을 포함한다.

Firebase는 다양한 프로그래밍 언어와 플랫폼을 지원하며, 개발자들은 빠르게 애플리케이션을 개발하고 배포할 수 있다.

 

🔥 Firebase의 주요 기능

  • Realtime Database
  • Cloud Firestore
  • Authentication
  • Cloud Storage
  • Hosting
  • Cloud Messaging

하나씩 자세하게 알아보자!!

 

✔️ Realtime Database

Firebase에서 제공하는 데이터베이스 서비스 중 하나로서, 실시간으로 데이터가 업데이트 되는 애플리케이션에 적합한 기능을 제공한다.

JSON 형식의 데이터를 저장하며, 클라이언트는 실시간으로 데이터를 수신하고 변경 사항이 발생하면 즉시 업데이트 된다.

이를 통해 게임, 채팅 등의 실시간 애플리케이션을 빠르게 구축할 수 있다.

 

✔️ Cloud Firestore

Firebase에서 제공하는 NoSQL 문서형 데이터베이스 서비스 중 하나이다.

Realtime Database와 유사하게 JSON 형식의 데이터를 저장하지만, 보다 복잡한 쿼리와 인덱싱을 지원한다.

이를 통해, 데이터에 대한 복잡한 질의를 수행하고, 클라우드 기반 애플리케이션에 적합한 데이터베이스를 제공한다.

 

✔️ Authentication

Firebase에서 제공하는 사용자 인증 기능으로서, 이메일/비밀번호, Google, Facebook, Twitter 등 다양한 방법으로 사용자를 인증할 수 있다.

이를 통해, 애플리케이션에 로그인한 사용자를 식별하고, 액세스 권한을 부여할 수 있다.

OAuth 및 OpenID Connect와 같은 표준 인증 프로토콜과 통합되어 있으며, 쉽게 사용할 수 있는 기능을 제공한다.

또한, 사용자 계정을 안전하게 보호하기 위해 패스워드 해시 및 솔트 방식으로 저장된다.

 

✔️ Cloud Storage

Firebase에서 제공하는 파일 저장소 서비스로서, 이미지, 동영상, 오디오 등 다양한 형식의 파일을 저장할 수 있다.

이를 통해 사용자들은 빠르고 안정적인 파일 업로드 및 다운로드를 수행할 수 있으며, 높은 가용성과 내구성을 제공한다.

Cloud Storage는 Firebase와 통합되므로, 사용자 인증 및 보안 정책에 따라 파일에 대한 액세스 권한을 제어할 수 있다.

 

✔️ Hosting

Firebase에서 제공하는 정적 웹 호스팅 서비스로서, 애플리케이션의 정적 파일을 호스팅할 수 있다.

캐싱 및 CDN과 같은 기술을 사용하여 빠르고 안정적인 웹 호스팅 서비스를 제공한다. 

HTTPS로 보호되며, 사용자 정의 도메인 및 SSL 인증서를 사용하여 사용자 정의 도메인에 대한 호스팅을 지원한다.

또한, Hosting은 Firebase와 통합되어 사용자 인증 및 보안 정책을 준수하며, Firebase CLI를 사용하여 배포 및 관리를 수행할 수 있다.

 

✔️ Cloud Messaging

Firebase에서 제공하는 클라우드 메시지 서비스로서, Android, iOS 및 웹 애플리케이션에 메시지를 보낼 수 있다.

이를 통해, 사용자들에게 새로운 콘텐츠 및 업데이트에 대한 알림을 보낼 수 있다.

안정적이고 확장 가능한 인프라를 통해 메시지를 전송하고 다양한 기기 및 플랫폼에 대한 메시지 전송을 지원하며, Firebase와 통합되어 사용자 인증 및 보안 정책을 준수한다.

 

🔥 Firebase의 장/단점

장점

  1. 빠른 개발 및 배포
  2. 통합된 백엔드 서비스
  3. 실시간 데이터 업데이트
  4. 다양한 플랫폼 및 프로그래밍 언어 지원

단점

  1. 가격 - 일부 기능을 무료로 제공하지만, 사용량이 많아지면 비용 증가함
  2. 확장성 - 제한적인 기능들 존재 → 외부 서비스와의 연동 필요함
  3. 데이터 형식 - JSON 형식의 데이터를 사용해야 함
  4. SQL 대비 쿼리 성능 - 데이터 검색이 상대적으로 어려움