여러분이 개발을 하시다보면 필연적으로 듣게 될 Firebase에 대해 포스팅 해보려고 합니다.
Firebase?

Firebase... 개발자라면 정말 많이 들어본 플랫폼일겁니다.
Firebase는 2014년도에 구글에서 인수한 모바일, 웹 애플리케이션 개발 플랫폼입니다.
Firebase의 장점은 모든 플랫폼을 프로젝트 구축 시, 자동적으로 만들어주고, 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며, 도메인 역시 구매할 필요없죠, 서버 자체도 살 필요가 없습니다.
즉 서버리스 애플리케이션 개발이 가능 하다는 뜻이죠.
-> 이 때문에 소규모 앱, 1인 개발앱 , 토이프로젝트 같은건 Firebase를 이용해서 개발하는 추세입니다.
Firebase 서비스
Firebase에서는 어떤 서비스를 제공하는지 알아보도록 하겠습니다.
앱 빌드


1. Cloud Firestore
NoSQL을 사용하는 DB입니다. 글로벌 규모의 데이터를 저장하고, 사용자와 기기 간 동기화가 가능합니다.
Cloud Firestore는 효율적인 데이터 쿼리와 실시간 동기화 및 오프라인 지원을 제공한다고 합니다.
2. ML Kit
앱에 머신러닝 기능을 구현할 수 있도록 해줍니다.
3. RealTime DB
이름 그대로 거의 실시간에 가깝게 JSON 데이터를 저장하고 사용자 간에 동기화 하여 서버리스 앱을 빌드합니다.
4. Auth
사용자 인증 시스템입니다 회원가입 / 로그인 등의 기능을 구현할때 사용하신다고 보시면 됩니다.
5. Hosting
웹 앱을 위해 맞춤 제작된 툴로 웹 호스팅을 단순화 합니다.
6. Cloud Storage
객체 스토리지에 이미지, 오디오, 동양상 등의 사용자 제작 컨텐츠를 저장하고 공유할수 있습니다.
7. Cloud Messaging
푸쉬 알람을 보낼때 쓰는 툴입니다.
흔히 말하는 FCM은 Firebase Cloud Messageing 의 줄임말이라 생각하시면 됩니다.
예시..


FCM을 쓰면 이런식으로 푸시 알람이 온다
출시 및 모니터링


1. Crashlytics
정말 많이 사용하는 기능중 하나입니다.
앱을 출시하고 다양한 환경에서 발생하는 비정상 종료를 목록으로 보여주는 방식입니다.

예시화면
2. 성능 모니터링
앱 성능에 대한 통계를 확인 할수 있습니다.
3. Google 애널리틱스
현재 앱의 사용자가 몇명인지 DAU/WAU/MAU가 얼마인지, 일정 기간동안 벌어들인 수익, 평균 앱 이용시간 등을 확인할수 있습니다.

4. Test Lab
Google이 호스팅 하는 가상 기기 및 실기기에서 앱을 테스트하고 검증하여 오류를 찾아냅니다.
-> 구글 콘솔과 겹쳐서 전 잘 안씁니다.
5. 앱 배포
알파테스터 에게 쉽게 배포할수 있습니다.
-> 구글 콘솔을 사용하기 때문에 사용해본적이 없습니다.
참여

1. Remote Config
앱을 출시하고 최신 버전을 유지시킬때 유용하게 사용합니다.
현재 앱 코드 버전과 등록된 코드를 비교해 현재 앱이 최신상태인지, 아닌지 비교할수 있고 이전 버전일시 사용자가 업데이트를 할수 있도록 유도를 할수 있습니다.
인앱 업데이트가 강제성이 있다면 이 기능은 사용자의 선택에 따라 업데이트를 할수 있다는 장점이 있습니다.


예시
2. Dynamic Links
적절한 위치로 유도하는 딥링크를 추가할수 있습니다.
3. In-App Messaging
사용자가 앱 내에서 의미 있는 행동을 완료하도록 장려하는 타게팅 메시지와 상황별 메시지를 보낼수 있습니다.
Firebase 단점
이렇게 보면 Firebase는 정말 장점만 있는 플랫폼 같은데요.. 하지만 그런만큼 단점도 있습니다.
바로 비용 문제죠.
Firebase는 비용을 결제하는 방식이 달에 사용한 만큼 비용이 그대로 나가는 형식입니다.
일정 자원이상에 대한 제한을 둘수가 없다는 소리죠...
보안 관련해서 자칫 잘못하면 정말 말도안되는 금액을 청구할수도 있다는 소리입니다.
하지만 플랫폼에서 사용할수 있는 서비스가 정말 많고. 무료로 제공하는 한도 수치도 생각보다 넉넉하기 때문에 소규모 앱이나 1인 개발 앱같은 경우는 무료 서비스로도 충분히 커버가 가능합니다.
결론
개발자 방에서 이야기 하다보면 정말 Firebase가 별로라고 생각하시는 분들이 많아서 정말 Firebase는 별로인건가? 에 대해 조사를 해봤는데요.
확실히 Firebase는 NoSQL 형식을 사용하기 때문에 관계형 DB를 많이 사용해 왔던 한국 시장에서는 별로 일수도 있겠다고 생각이 들었습니다.
기존에 있던 대형 시스템을 갈아엎을수는 없으니까요..
하지만 Firebase는 Google에서 계속해서 밀어주고 있는 플랫폼이며 발전이 무궁무진한 플랫폼이라 생각합니다. 따라서 소규모 앱, 스타트업 같은 신생 기업들은 Firebase를 이용하는것도 나쁘지 않다고 생각합니다.