모바일 앱 개발자라면 Google Firebase에 대해 알고있을 가능성이 크다.
또한 클라우드 관련 업무를 한다면 Google GCP에 대해서도 알고 있을 것이다.
두 플랫폼 모두 서로에 대한 지식이 없더라도 사용할 수 있지만 이번 글에서는 두 플랫폼의 관계에 대해서 알아보고자 한다.

Firebase는 GCP 프로젝트

단순히 Firebase 사용 만을 원한다면 GCP에 대해 알 필요가 없을 것이다.
실제로 Firebase 프로젝트는 GCP 프로젝트이다.
즉, Firebase 프로젝트를 생성하는 작업은 실제 백그라운드에서 GCP 프로젝트를 생성하는 것이다.
이러한 특징으로 경우에 따라 Firebase의 결제, 사용자 관리 등과 같은 몇 가지 작업들은 GCP 콘솔에 위임되어 작업된다.

주의할 점은 기본 생성된 프로젝트의 경우 Firebase 콘솔 또는 GCP 콘솔에서 프로젝트를 삭제할 경우, 해당 컨테이너의 모든 프로젝트가 삭제되는 것이다. (Firebase 프로젝트 == GCP 프로젝트)
이는 GCP 콘솔 프로젝트에서 Firebase를 추가한 경우에도 동일하다.
Firebase는 GCP 프로젝트보다 늦게 생성되었지만, Firebase 콘솔에서 Firebase 프로젝트 삭제를 진행할 시, 해당 GCP 프로젝트의 모든 클라우드 데이터가 삭제되게 될 것이다.

Firebase의 제품은 GCP 제품

기술적으로는 Firebase 콘솔에서 작업하고 Firebase SDK, 도구 등을 사용하여 애플리케이션에서 조작할 수 있지만 실제로는 GCP의 제품인 것이다.
대표적으로 아래의 제품들이 있다.

  • Cloud Storage : 대규모로 확장 가능한 파일 스토리지 시스템
  • Cloud Firestore : 대규모로 확장 가능한 실시간 NoSQL 데이터베이스
  • Cloud Functions : 이벤트 기반 프로그래밍을 위한 서버리스 컴퓨팅 인프라

GCP에서 모든 리소스와 기능을 제공하지만, Firebase를 사용하면 모바일 클라이언트용 SDK , Firebase CLI 등을 통해 위의 3가지 제품이 모바일 앱과 원활하게 작동 할 수 있도록 할 수 있다.

결론

Firebase 앱 개발자라면 Firebase 콘솔에서 프로젝트를 만들었을 것이다.
그러나 어떤 시점부터는 일부 관리 작업을 위해 클라우드 콘솔로 이동하여 클라우드 인프라를 확장하거나 클라우드 API를 사용해야 할 수도 있다.
즉, Firebase 콘솔은 모바일 앱 인프라 구축의 시작에 불과하다.

클라우드 인프라 개발자인 경우 이미 저장 한 데이터를 바탕으로 모바일 또는 웹 앱을 빌드할 때, Firebase 콘솔로 이동하여 고유 구성 및 작업을 처리해야 한다.

실제로 Actions on Google 프로젝트는 GCP 프로젝트이다. (e.g. DialogFlow)
이러한 프로젝트는 기본적으로 Firebase가 사용 설정되어 있으므로 GCP 프로젝트에 대한 새로운 관점을 얻을 수 있는 또 다른 방법이다.
즉, 프로젝트가 어떻게 존재하게 되었든, 현재 사용하는 콘솔이 유일한 콘솔이 아닐 수도 있는 것이다.
프로젝트를 주로 서비스 및 API의 컨테이너로 생각하면 이러한 전환이 더 쉬워질 것이다.

참고

https://medium.com/google-developers/whats-the-relationship-between-firebase-and-google-cloud-57e268a7ff6f

https://medium.com/google-developers/firebase-google-cloud-whats-different-with-cloud-functions-612d9e1e89cb?source=friends_link&sk=8ab047e16c045ac78a36b5f3495d788f

https://medium.com/@CodingDoug/firebase-google-cloud-whats-different-with-cloud-firestore-40f1fc3e6d1e