firebase(파이어베이스)란?
구글이 만든 백엔드 서비스로 어플리케이션에서 공통적으로사용하는 백엔드 기능을 모아둔 플랫폼,
Firebase는 데이터베이스, 인증, 스토리지, 호스팅, 애널리틱스 등의 다양한 기능을 제공하고 Realtime Database와 Cloud Firestore, Authentication, Cloud Storage, Hosting, Cloud Messaging 등의 기능을 포함하며 파이어베이스를 이용하면 서버와 DB 의 역할을 동시에 수행 함으로써 서버 없이(서버리스) 개발이 가능합니다.
Firebase의 종류
Authentication
Firebase에서 제공하는 사용자 인증 기능으로서, 이메일/비밀번호, Google, Facebook, Twitter 등 다양한 방법으로 사용자를 인증할 수 있다. 이를 통해, 애플리케이션에 로그인한 사용자를 식별하고, 액세스 권한을 부여할 수 있다. Firebase Authentication은 OAuth 및 OpenID Connect와 같은 표준 인증 프로토콜과 통합되어 있으며, 쉽게 사용할 수 있는 기능을 제공하며, 또한, 사용자 계정을 안전하게 보호하기 위해 패스워드 해시 및 솔트 방식으로 저장된다.
Realtime Database
Firebase에서 제공하는 데이터베이스 서비스 중 하나로서, 실시간으로 데이터가 업데이트되는 애플리케이션에 적합한 기능을 제공한다. Realtime Database는 JSON 형식의 데이터를 저장하며, 클라이언트는 실시간으로 데이터를 수신하고 변경 사항이 발생하면 즉시 업데이트된다. 이를 통해 게임, 채팅 등의 실시간 애플리케이션을 빠르게 구축할 수 있다.
Cloud Firestore
Firebase에서 제공하는 NoSQL 문서형 데이터베이스 서비스 중 하나다. Cloud Firestore는 Realtime Database와 유사하게 JSON 형식의 데이터를 저장하지만, 보다 복잡한 쿼리와 인덱싱을 지원한다. 이를 통해, 데이터에 대한 복잡한 질의를 수행하고, 클라우드 기반 애플리케이션에 적합한 데이터베이스를 제공한다.
Cloud Storage
Firebase의 Cloud Storage는 파일 저장소 서비스로서, 이미지, 동영상, 오디오 등 다양한 형식의 파일을 저장할 수 있다. 이를 통해 사용자들은 빠르고 안정적인 파일 업로드 및 다운로드를 수행할 수 있으며, 높은 가용성과 내구성을 제공한다. Cloud Storage는 Firebase와 통합되므로, 사용자 인증 및 보안 정책에 따라 파일에 대한 액세스 권한을 제어할 수 있다.
Hosting
Firebase에서 제공하는 정적 웹 호스팅 서비스로서, 애플리케이션의 정적 파일을 호스팅할 수 있다. Firebase Hosting은 캐싱 및 CDN과 같은 기술을 사용하여 빠르고 안정적인 웹 호스팅 서비스를 제공한다. Firebase Hosting은 HTTPS로 보호되며, 사용자 정의 도메인 및 SSL 인증서를 사용하여 사용자 정의 도메인에 대한 호스팅을 지원한다. 또한, Firebase Hosting은 Firebase와 통합되어 사용자 인증 및 보안 정책을 준수하며, Firebase CLI를 사용하여 배포 및 관리를 수행할 수 있다.
Cloud Messaging
Firebase에서 제공하는 클라우드 메시지 서비스로서, Android, iOS 및 웹 애플리케이션에 메시지를 보낼 수 있다. 이를 통해, 사용자들에게 새로운 콘텐츠 및 업데이트에 대한 알림을 보낼 수 있다. Firebase Cloud Messaging은 안정적이고 확장 가능한 인프라를 통해 메시지를 전송하고 다양한 기기 및 플랫폼에 대한 메시지 전송을 지원하며, Firebase와 통합되어 사용자 인증 및 보안 정책을 준수한다.
Firebase의 장점
다양한 백엔드 서비스를 통합하여 제공하고 실시간으로 데이터가 업데이트되는 애플리케이션에 적합한 기능을 제공한다.
그렇기 때문에 빠르게 애플리케이션을 만들면서 출시하고 모니터링이 가능하며 다양한 플랫폼 및 프로그래밍 언어를 지원하기 때문에 다양한 플랫폼에서 애플리케이션을 개발하고 배포할 수 있다.
Firebase의 단점
일부 기능을 무료로 제공하지만, 사용량이 많아지면 비용이 증가할 수 있다.
다양한 기능을 제공하지만, 기능이 제한적인 경우가 있다.
이를 해결하기 위해서는 Firebase 외부 서비스와의 연동이 필요할 수 있다.
데이터베이스에 익숙한 개발자들은 Firebase를 사용함에 있어서 어려움을 겪을 수 있다.
SQL 대비 쿼리 성능 데이터 검색이 상대적으로 어렵다. (SQL에서는 일반적으로 OR 문이나 LIKE 문을 이용해 데이터검색이 가능한데 이들 모두 존재하지 않는다고 한다.)
'App' 카테고리의 다른 글
Hilt (1) | 2024.02.15 |
---|---|
클린 아키텍처 (0) | 2024.02.14 |
디자인 패턴 (1) | 2023.12.17 |
Life Cycle(Android Activity Lifecycle) (1) | 2023.12.15 |
Native Application과 Cross-Platform Application의 차이점 (0) | 2023.12.15 |