Firebase 프로젝트 이해

이 페이지에서는 Firebase 프로젝트에 대한 몇 가지 중요 개념을 간략하게 설명합니다. 링크가 제공된 경우 해당 링크로 이동하여 기능, 서비스, 도구, 권장사항에 대해 자세히 알아보세요.

Firebase 프로젝트, 앱, 제품 간의 관계

Firebase 프로젝트는 Firebase의 최상위 항목입니다. 프로젝트에서 Apple, Android, 웹 앱을 등록할 수 있습니다. Firebase에 앱을 등록한 후 Analytics, Cloud Firestore, Performance Monitoring 또는 Remote Config와 같은 여러 Firebase 제품에 Firebase SDK를 추가할 수 있습니다.

이 과정에 대한 자세한 내용은 플랫폼별 시작 가이드(
iOS+ | Android | | Unity | C++ | Flutter)를 참조하세요.

Firebase 프로젝트의 계층 구조 이해하기

프로젝트, 등록된 앱, 프로비저닝된 리소스 및 서비스를 포함한 Firebase 프로젝트의 기본 계층 구조를 보여주는 다이어그램 이 다이어그램은 Firebase 프로젝트의 기본 계층 구조를 보여줍니다. 키 관계는 다음과 같습니다.

  • Firebase 프로젝트는 모든 앱 및 프로젝트에 프로비저닝된 리소스와 서비스를 위한 컨테이너와 같습니다.

  • Firebase 프로젝트에는 하나 이상의 Firebase 앱을 등록할 수 있습니다(예: 앱의 iOS 및 Android 버전 또는 앱의 무료 버전과 유료 버전 모두).

  • 동일한 Firebase 프로젝트에 등록된 모든 Firebase 앱은 프로젝트에 프로비저닝된 모든 동일한 리소스와 서비스를 공유하고 여기에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.

    • 같은 Firebase 프로젝트에 등록된 모든 Firebase 앱은 Firebase Hosting, Authentication, Realtime Database, Cloud Firestore, Cloud Storage, Cloud Functions와 같은 동일한 백엔드를 공유합니다.

    • 동일한 Firebase 프로젝트에 등록된 모든 Firebase 앱은 동일한 Google 애널리틱스 속성과 연결되며, 여기서 각 Firebase 앱은 해당 속성에서 별도의 데이터 스트림입니다.

Firebase 프로젝트와 Google Cloud 간의 관계

새 Firebase 프로젝트를 만들면 내부에 Google Cloud 프로젝트가 생성됩니다. Google Cloud 프로젝트부터 만들고 나중에 Firebase를 프로젝트에 추가할 수도 있습니다. Google Cloud 프로젝트는 데이터, 코드, 구성, 서비스의 가상 컨테이너라고 볼 수 있습니다.

모든 Firebase 프로젝트에서 Firebase는 Google Cloud 콘솔에 있는 프로젝트의 라벨 페이지firebase:enabled 라벨을 자동으로 추가합니다. 이 라벨에 대한 자세한 내용은 FAQ를 참조하세요.

Firebase 프로젝트는 Google Cloud 프로젝트이므로 다음이 적용됩니다.

  • Google Cloud 콘솔, Google API 콘솔뿐 아니라 Firebase 콘솔에서도 프로젝트와 상호작용할 수 있습니다.

  • 프로젝트에서 Firebase와 Google Cloud의 제품 및 API를 모두 사용할 수 있습니다.

  • 프로젝트의 IAM 권한과 역할은 Firebase 및 Google Cloud에서 공유됩니다. 프로젝트 구성원에게 Google Cloud 프로젝트에 대한 액세스 권한이 있으면 Firebase 프로젝트에도 적용되며 그 반대의 경우도 마찬가지입니다.

  • 프로젝트의 결제는 Firebase 및 Google Cloud에서 공유됩니다. Google Cloud 프로젝트에 결제가 사용 설정되어 있으면 Firebase 프로젝트에 Firebase의 사용한 만큼만 지불하는 Blaze 요금제가 적용됩니다.

  • 프로젝트의 고유 식별자(예: 프로젝트 번호프로젝트 ID)가 Firebase와 Google Cloud에서 공유됩니다.

  • 프로젝트를 삭제하면 Firebase와 Google Cloud 양쪽에서 삭제됩니다.

  • 프로젝트 내에서 리소스 또는 데이터를 삭제하거나 수정하면 Firebase 및 Google Cloud 전체에 적용됩니다.

Firebase 프로젝트 설정 및 앱 등록

Firebase 콘솔에서 Firebase 프로젝트를 설정하고 앱을 등록할 수 있습니다(고급 사용 사례에서는 Firebase Management REST API 또는 Firebase CLI 사용). 프로젝트를 설정하고 앱을 등록할 때 조직과 관련하여 몇 가지 결정을 내리고 Firebase 관련 구성 정보를 로컬 프로젝트에 추가해야 합니다.

프로덕션 앱의 경우 명확한 개발 워크플로를 설정해야 하며 대개 여러 환경을 사용합니다. Firebase 프로젝트 설정 및 개발 워크플로 생성을 위한 앱 등록에 대한 일반적인 권장사항일반 보안 가이드라인을 포함하여 개발자 워크플로 문서를 검토하세요.

Firebase 프로젝트와 상호작용

제품 SDK 외에도 여러 가지 도구와 인터페이스를 사용하여 Firebase 프로젝트와 직접 상호작용할 수 있습니다.

Firebase 콘솔

Firebase 콘솔은 Firebase 제품, 앱, 프로젝트 수준 설정을 관리하는 가장 유용한 환경을 제공합니다.

<span class=Firebase console - project overview screen" class="attempt-right screenshot" style="max-width: calc((100% - 40px)/1.75);">

콘솔의 왼쪽 패널에는 Firebase 제품이 최상위 카테고리별로 나열됩니다. 왼쪽 패널 상단에서 을 클릭하여 프로젝트 설정에 액세스합니다. 프로젝트 설정에는 통합, 액세스 권한, 결제가 포함되어 있습니다.

Console 중앙에는 다양한 앱 유형을 등록할 수 있도록 설정 워크플로를 시작하는 버튼이 표시됩니다. Firebase 사용을 시작하면 콘솔의 주 영역이 사용하는 제품의 통계를 표시하는 대시보드로 바뀝니다.

Firebase 프로젝트도 Google Cloud 프로젝트이므로 다양한 작업 또는 제품에 Firebase Console 대신 Google Cloud Console을 사용해야 하는 경우가 있습니다.

Firebase CLI(명령줄 도구)

Firebase는 Firebase Hosting, Cloud Functions for Firebase, Firebase Extensions와 같은 특정 Firebase 제품을 구성 및 관리하는 데 사용되는 Firebase CLI도 제공합니다.

CLI를 설치하면 전역 firebase 명령어에 액세스할 수 있습니다. CLI를 사용하여 로컬 앱 디렉터리를 Firebase 프로젝트에 연결한 다음 Firebase 호스팅 콘텐츠의 새 버전 또는 함수 업데이트를 배포합니다.

Firebase Management REST API

Firebase Management REST API를 사용하면 Firebase 프로젝트를 프로그래매틱 방식으로 관리할 수 있습니다. 예를 들어 프로그래매틱 방식으로 프로젝트에 앱을 등록하거나 이미 등록된 앱(iOS+ | Android | )을 나열할 수 있습니다.

Firebase 프로젝트 식별자

Firebase 프로젝트는 프로젝트 이름, 프로젝트 번호, 프로젝트 ID 비롯한 다양한 식별자를 사용하여 Firebase 백엔드와 다양한 개발자 인터페이스에서 식별할 수 있습니다.

프로젝트 이름

프로젝트를 만들 때 프로젝트 이름을 제공해야 합니다. 이 식별자는 Firebase Console, Google Cloud 콘솔, Firebase CLI의 프로젝트에 대한 내부 전용 이름입니다. 프로젝트 이름은 공개적으로 표시되는 Firebase나 Google Cloud 제품, 서비스 또는 리소스에서 노출되지 않으며 단순히 다양한 프로젝트를 보다 간편하게 구분하는 용도로 사용됩니다.

Firebase 콘솔의 프로젝트 설정에서 언제든지 프로젝트 이름을 수정할 수 있습니다. 상단 창에 프로젝트 이름이 표시됩니다.

프로젝트 번호

Firebase 프로젝트(및 연결된 Google Cloud 프로젝트)에는 프로젝트 번호가 있습니다. 이 번호는 Google에서 할당하여 전역적으로 고유한 프로젝트의 정규 식별자입니다. 통합을 구성하거나 Firebase, Google 또는 타사 서비스에 API 호출 시 이 식별자를 사용합니다.

프로젝트 번호는 수정할 수 없습니다. 프로젝트를 삭제하면 프로젝트 번호도 삭제되며 다른 어떠한 프로젝트에서도 다시 사용되지 않습니다.

프로젝트 ID

Firebase 프로젝트(및 연결된 Google Cloud 프로젝트)에는 프로젝트 ID가 있습니다. 이 ID는 모든 Firebase 및 Google Cloud에서 프로젝트의 사용자 정의 고유 식별자입니다. Firebase 프로젝트를 만들면 Firebase에서 자동으로 프로젝트에 고유 ID를 할당하지만 개발자가 설정 중에 수정할 수 있습니다. 일반적으로 이 식별자는 프로젝트를 참조하기 위한 편의성 별칭으로 취급됩니다.

Firebase 구성 파일 및 객체

Firebase 프로젝트에 앱을 등록하면 Firebase 콘솔에서 로컬 앱 디렉터리에 직접 추가하는 Firebase 구성 파일(Apple/Android 앱) 또는 구성 객체(웹 앱)를 제공합니다.

  • Apple의 경우 GoogleService-Info.plist 구성 파일을 추가합니다.
  • Android의 경우 google-services.json 구성 파일을 추가합니다.
  • 웹 앱의 경우 Firebase 구성 객체를 추가합니다.

언제든지 앱의 Firebase 구성 파일 또는 객체를 가져올 수 있습니다.

Firebase 구성 파일 또는 객체는 앱을 특정 Firebase 프로젝트 및 리소스(데이터베이스, 스토리지 버킷 등)에 연결합니다. 이 구성에는 Firebase Server API와 통신하고 Firebase 프로젝트 및 Firebase 앱과 클라이언트 데이터를 연결하기 위해 Firebase 및 Google 서비스에 필요한 매개변수인 'Firebase 옵션'이 포함됩니다. 필요한 최소 'Firebase 옵션'은 다음과 같습니다.

  • API 키: 비공개 사용자 데이터에 액세스할 필요가 없는 특정 API를 호출할 때 사용되는 간단한 암호화된 문자열(예시 값: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO)

  • 프로젝트 ID: 모든 Firebase 및 Google Cloud에서 프로젝트의 사용자 정의 고유 식별자입니다. 이 식별자는 일부 Firebase 리소스의 URL 또는 이름에 표시될 수 있지만 일반적으로 프로젝트를 참조하기 위한 편의성 별칭으로 취급됩니다. (값 예시: myapp-project-123)

  • 애플리케이션 ID('AppID'): 모든 Firebase에서 Firebase 앱의 고유 식별자로, 형식은 플랫폼에 따라 다릅니다.

    • Firebase Apple 앱: GOOGLE_APP_ID(예시 값: 1:1234567890:ios:321abc456def7890)
      Apple 번들 ID가 아닙니다.
    • Firebase Android 앱: mobilesdk_app_id(예시 값: 1:1234567890:android:321abc456def7890)
      Android 패키지 이름 또는 Android 애플리케이션 ID가 아닙니다.
    • Firebase 웹 앱: appId(예시 값: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

앱의 플랫폼별 ID(예: iOS 번들 ID 또는 Android 패키지 이름) 및 Firebase 프로젝트에 고유한 값(예: API 키, 프로젝트 ID, Realtime Database URL, Cloud Storage 버킷 이름)과 같은 Firebase 구성 파일 또는 객체의 콘텐츠가 공개된 것으로 간주됩니다. 이러한 전제 하에 Firebase Security Rules를 사용하여 Realtime Database, Cloud Firestore, Cloud Storage의 데이터와 파일을 보호합니다.

대부분의 경우 사용자는 자체 Firebase 프로젝트를 만들고 앱에서 자체 Firebase 구성 파일 또는 객체를 통해 자체 Firebase 리소스를 가리켜야 하므로 일반적으로 오픈소스 프로젝트에서는 소스 제어에 앱의 Firebase 구성 파일 또는 객체를 포함하지 않는 것이 좋습니다.

Firebase 프로젝트, 앱, 사이트의 일반적인 제한사항

Firebase 프로젝트, 앱, 사이트의 일반적인 제한사항은 다음과 같습니다.

  • 계정당 프로젝트 수

    • Spark 요금제 — 프로젝트 생성 할당량은 소수의 프로젝트(일반적으로 5~10개)로 제한됩니다.
    • Blaze 요금제 — 연결된 Cloud Billing 계정이 양호한 상태인 경우 계정당 프로젝트 생성 할당량은 크게 상향 조정됩니다.

    대부분의 개발자에게 프로젝트 할당량 한도는 문제가 되지 않지만 필요한 경우 프로젝트 할당량 증가를 요청할 수 있습니다.

    프로젝트를 완전히 삭제하는 데는 30일이 걸리며 완전히 삭제되기 전에는 할당량에 포함된다는 점에 유의하세요.

  • 프로젝트당 앱 수

    Firebase에서는 Firebase 프로젝트 내의 총 Firebase 앱 수를 30개로 제한합니다.

    단일 Firebase 프로젝트 내의 모든 Firebase 앱은 최종 사용자의 관점에서 동일한 애플리케이션의 플랫폼 변형 버전이어야 합니다. 권장사항 문서에서 멀티테넌시에 대해 자세히 알아보세요.

    FAQ에서 프로젝트당 앱 한도에 대해 자세히 알아보세요.

  • 프로젝트당 Hosting 사이트 수

    Firebase Hosting 멀티 사이트 기능은 Firebase 프로젝트당 최대 36개의 사이트를 지원합니다.

앱 출시