Firebase는 Google에서 개발한 크라우드 기반의 백엔드 서비스를 제공하는 모바일 앱 개발 플랫폼입니다. 엔드투엔드 개발환경, 앱 개발 시간 단축, 확장 가능한 인프라가 포함됩니다. 즉, 웹 및 모바일 애플리케이션 구축을 위한 백엔드 플랫폼이라 할 수 있습니다.
쉽게 얘기하자면 웹 서비스를 만들때 로그인 기능, API, 데이터베이스 등 반복 사용하는 기능들을 정형화해서 서비스로 firebase가 제공합니다. 즉, 서버리스 개발이 가능합니다.
주요 서비스
1. Database
- Realtime Database : 서버리스 실시간 데이터베이스. JSON 형식으로 데이터를 저장하고 실시간으로 동기화 할 수 있습니다.
- Cloud Firestore : Firebase의 NoSQL 문서 데이터베이스. Realtime Database보다 더 강력하며 복잡한 쿼리 및 구조화된 데이터 더 적합합니다.
2. Authentication : 사용자 인증을 위한 서비스. 이메일, 패스워드, Google, Facebook 등 다양한 인증 제공자를 지원합니다.
3. Firebase Cloud Functions : 서버리스 백엔드 로직을 만들 수 있는 확장성있는 서비스. 특정 이벤트에 응답하여 코드를 실행할 수 있습니다.
4. Firebase Cloud Messaging : 푸시 알림을 전송하고 클라이언트 앱 간에 메시지를 교환하는 서비스.
5. Firebase Hosting : 정적 웹 호스팅 서비스. 웹 앱을 호스팅 할 수 있습니다.
6. Firebase Storage : 파일 및 미디어를 저장하고 관리하는 클라우드 스토리지 서비스.
7. Firebase Analyticcs : 사용자 행동을 분석하고 앱 성능을 이해하기 위한 분석 도구.
이외에도 모니터링, 테스트 등 여러 서비스를 제공하고 있습니다.
Firebase 장단점
장점
- 빠른 개발 및 배포 : Firebase는 개발자가 애플리케이션을 빠르게 개발하고 배포할 수 있도록 다양한 기능을 제공한다. 이를 통해 개발자들은 시간과 비용을 절약하고 애플리케이션의 개발 및 출시 속도를 높일 수 있습니다.
- 통합된 백엔드 서비스 : Firebase는 데이터베이스, 인증, 스토리지, 호스팅, 애널리틱스 등 다양한 백엔드 서비스를 통합하여 제공한다. 이를 통해 개발자들은 서비스를 별도로 구축하거나 연동하는 데 드는 비용과 시간을 절약할 수 있습니다.
- 실시간 데이터 업데이트 : Firebase는 실시간으로 데이터가 업데이트되는 애플리케이션에 적합한 기능을 제공한다. 이를 통해 개발자들은 데이터 업데이트에 대한 빠른 응답성과 실시간 데이터 동기화를 구현할 수 있습니다.
- 다양한 플랫폼 및 프로그래밍 언어 지원 : Firebase는 다양한 플랫폼 및 프로그래밍 언어를 지원한다. 이를 통해 개발자들은 다양한 플랫폼에서 애플리케이션을 개발하고 배포할 수 있다.
단점
- 가격 : Firebase는 일부 기능을 무료로 제공하지만, 사용량이 많아지면 비용이 증가할 수 있다. 따라서 개발자들은 애플리케이션의 사용량과 기능 요구 사항 등을 고려하여 Firebase를 사용할지 여부를 결정해야 합니다.
- 확장성 : Firebase는 다양한 기능을 제공하지만, 기능이 제한적인 경우가 있다. 이를 해결하기 위해서는 Firebase 외부 서비스와의 연동이 필요할 수 있습니다.
- SQL 대비 쿼리 성능 : 데이터 검색이 상대적으로 어렵다. (SQL기본 쿼리를 사용할 수 없습니다.)
마무리
아직 안드로이드를 배워가는 과정이지만 Firebase를 알았을때 개발하기 편하다란 생각을 했습니다. 여러 설정들을 Firebase가 해주니까 기본적인 사용법만 알면 계속 실력을 쌓아가면 더 능숙하게 사용할 것 같습니다. 다음 포스팅에선 Realtime Database 기본 예제로 돌아오겠습니다.
'Android Studio' 카테고리의 다른 글
[Firebase] Realtime Database 사용해보기 (0) | 2023.11.13 |
---|---|
[Android Studio] 첫 안드로이드 앱 개발 시작해보기 - Spinner (12) (0) | 2023.11.10 |
[Android Studio] 첫 안드로이드 앱 개발 시작해보기 - Service (11) (2) | 2023.11.09 |
[Android Studio] 첫 안드로이드 앱 개발 시작해보기 - Thread, Dialog (10) (1) | 2023.11.08 |
[Android Studio] Android Studio + Spring Boot + mariaDB ( 로그인 ) (3) (0) | 2023.11.06 |