콘솔로 이동

Firebase 프로젝트 이해

이 페이지에서는 Firebase 프로젝트에 대한 몇 가지 중요한 개념을 간단히 소개합니다. 링크가 제공된 경우 해당 링크로 이동하여 기능, 서비스, 다른 플랫폼에 대해 자세히 알아보세요. 페이지 하단에는 Firebase 프로젝트에 대한 일반적인 권장사항 목록이 있습니다.

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

Firebase 프로젝트는 Firebase의 최상위 항목입니다. 앱을 Firebase 프로젝트에 연결하고 Firebase를 사용하도록 구성한 후 애널리틱스, Cloud Firestore, 성능 모니터링, 원격 구성 등의 Firebase 제품에 대한 Firebase SDK를 개수에 제한 없이 추가할 수 있습니다.

Firebase 프로젝트와 GCP(Google Cloud Platform) 간의 관계

Firebase 콘솔에서 새 Firebase 프로젝트를 만들면 내부적으로 GCP(Google Cloud Platform) 프로젝트가 생성됩니다. GCP 프로젝트는 데이터, 코드, 구성, 서비스의 가상 컨테이너라고 볼 수 있습니다. Firebase 프로젝트는 추가적인 Firebase 관련 구성 및 서비스를 포함하는 GCP 프로젝트입니다. GCP 프로젝트부터 만들고 나중에 Firebase를 프로젝트에 추가할 수도 있습니다.

Firebase 프로젝트도 한 GCP 프로젝트이므로 다음이 적용됩니다.

  • Firebase Console에 표시되는 프로젝트는 GCP ConsoleGoogle API 콘솔에도 표시됩니다.

  • 프로젝트의 결제권한이 Firebase와 GCP에서 공유됩니다.

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

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

  • 프로젝트를 삭제하면 Firebase와 GCP에서도 삭제됩니다.

Firebase 프로젝트 설정 및 앱 연결

Firebase Console에서 Firebase 프로젝트를 설정하고 앱을 연결할 수 있습니다(고급 사용 사례에서는 Firebase Management REST API 사용). 프로젝트 설정 및 앱 연결 프로세스 중에 구성과 관련하여 몇 가지 결정을 내리고 로컬 프로젝트에 특수한 구성 파일 또는 객체를 추가해야 합니다.

프로젝트를 설정하고 앱을 연결하기 전에 몇 가지 일반적인 권장사항을 검토하세요.

프로젝트 이름

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

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

프로젝트 ID

Firebase 프로젝트(및 관련 GCP 프로젝트)에 있는 프로젝트 ID는 Firebase 및 GCP에서 프로젝트의 전역적인 고유 식별자로 사용됩니다. Firebase 프로젝트를 만들면 Firebase가 프로젝트에 고유 ID를 자동으로 할당하지만 설정 중에 수정할 수도 있습니다.

프로젝트를 삭제하면 프로젝트 ID도 삭제되며 다른 어떠한 프로젝트에서도 해당 ID가 다시 사용되지 않습니다.

Firebase 리소스 및 프로젝트 ID

프로젝트 ID는 공개적으로 표시되는 Firebase 리소스에 표시됩니다. 예를 들면 다음과 같습니다.

  • 기본 호스팅 하위 도메인 — your-project-id.firebaseapp.com
  • 기본 실시간 데이터베이스 URL — your-project-id.firebaseio.com
  • 기본 Cloud Storage 버킷 이름 — your-project-id.appspot.com

위와 같은 모든 리소스에서 기본이 아닌 인스턴스를 만들 수 있습니다. 기본이 아닌 인스턴스의 공개적으로 표시되는 이름은 완전히 맞춤설정할 수 있습니다. Firebase 호스팅 사이트에 맞춤 도메인을 연결하고, 실시간 데이터베이스를 분할하고, 여러 Cloud Storage 버킷을 만들 수 있습니다(플랫폼의 시작하기 페이지 참조).

Firebase CLI 및 프로젝트 ID

사용 사례에 따라서는 로컬 앱 디렉토리 하나에 여러 Firebase 프로젝트를 연결할 수 있습니다. 이러한 경우 Firebase CLI를 사용할 때 firebase 명령어에 --project 플래그를 전달하여 상호작용할 Firebase 프로젝트를 알려야 합니다.

다양한 Firebase 프로젝트의 프로젝트 ID를 기억할 필요가 없도록 프로젝트 별칭을 설정할 수도 있습니다.

API 호출 및 프로젝트 ID

API 호출 시 프로젝트 ID를 포함하여 Firebase 프로젝트를 식별해야 하는 경우가 많습니다.

프로젝트 ID 확인

  • Firebase Console에서 settings을 클릭한 후 프로젝트 설정을 선택합니다. 상단 창에 프로젝트 ID가 표시됩니다.

  • Firebase CLI를 사용하여 firebase list를 실행합니다. 계정에 연결된 모든 Firebase 프로젝트와 함께 프로젝트 ID가 표시됩니다.

Firebase 구성 파일 및 객체

Firebase 프로젝트에 앱을 연결할 때 Firebase 콘솔이 제공하는 Firebase 구성 파일(Android/iOS) 또는 구성 객체(웹)를 로컬 프로젝트에 직접 추가합니다.

  • iOS의 경우 GoogleService-Info.plist 구성 파일을 추가합니다.
  • Android의 경우 google-services.json 구성 파일을 추가합니다.
  • 웹의 경우 초기화 스크립트용 Firebase 구성 객체를 추가합니다.

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

Firebase 구성 파일 또는 구성 객체는 Firebase 프로젝트와 해당 리소스(데이터베이스, 저장소 버킷 등)에 앱을 연결합니다.

Firebase 콘솔의 설정 워크플로에서 입력한 플랫폼별 ID 및 Firebase 프로젝트에 고유한 값(API 키, 실시간 데이터베이스 URL, 저장소 버킷 이름 등)과 같은 내용은 공개된 것으로 간주됩니다. 이러한 전제 하에 보안 규칙을 사용하여 실시간 데이터베이스, Cloud Firestore, Cloud Storage의 데이터와 파일을 보호합니다.

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

Firebase 프로젝트 관리

일반적인 프로젝트 수준 권장사항을 검토하여 Firebase 프로젝트를 관리하는 방법과 관련된 고려사항을 알아보세요.

프로젝트 관리 도구

Firebase 콘솔

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

Firebase 콘솔 - 프로젝트 개요 화면

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

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

Firebase CLI(명령줄 도구)

Firebase는 Firebase 호스팅 및 Firebase용 Cloud Functions와 같은 특정 Firebase 제품을 구성 및 관리하는 Firebase CLI도 제공합니다.

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

Firebase Management REST API

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

일반적인 권장사항

프로젝트에 앱 추가

한 프로젝트에 속한 모든 앱은 최종 사용자의 관점에서 동일한 애플리케이션의 플랫폼 변형 버전이어야 합니다. 동일한 앱 또는 게임의 Android, iOS, 웹 버전을 같은 Firebase 프로젝트에 연결하시기 바랍니다. 한 프로젝트의 모든 앱은 일반적으로 동일한 Firebase 리소스(데이터베이스, 저장소 버킷 등)를 공유합니다.

iOS 번들 ID 또는 Android 앱 ID가 서로 다르게 정의된 빌드 변형이 여러 개 있으면 각 변형을 별도의 Firebase 프로젝트에 등록할 수 있습니다. 그러나 여러 변형이 같은 Firebase 리소스를 공유하는 경우 동일한 Firebase 프로젝트에 등록하시기 바랍니다.

한 프로젝트에 속하는 앱의 개수에는 제한이 없지만, 앱을 추가하면 내부적으로 하나 이상의 OAuth 2.0 클라이언트 ID가 만들어질 수 있습니다. 프로젝트 하나에 만들 수 있는 클라이언트 ID의 한도는 약 30개입니다.

다중 테넌트 지원

논리적으로 독립된 서로 다른 여러 앱 또는 웹사이트를 프로젝트 하나에 연결하는 '다중 테넌트 지원'은 권장되지 않습니다. 다중 테넌트 지원은 의도되지 않은 애널리틱스 집계, 인증 공유, 지나치게 복잡한 데이터베이스 구조, 까다로운 보안 규칙 등의 심각한 구성 및 데이터 개인정보 보호 문제를 야기할 수 있습니다.

일반적으로, 여러 앱이 동일한 데이터와 구성을 공유하지 않는다면 각 앱을 서로 다른 Firebase 프로젝트에 연결하시기 바랍니다.

예를 들어 화이트 라벨 애플리케이션을 개발하는 경우 독립적으로 라벨이 지정된 각 앱마다 자체 Firebase 프로젝트가 있어야 합니다. 이렇게 해야 앱들이 데이터를 서로 공유하지 못하므로 개인정보가 보호됩니다.

Firebase 프로젝트, 앱, 사이트에 다음과 같은 일반적인 한도가 적용됩니다.

  • 계정당 프로젝트 수

    • 무료 등급 Spark 요금제 — 프로젝트 할당량은 소수의 프로젝트(일반적으로 5~10개)로 제한됩니다.
    • 유료 요금제 — Cloud 결제 계정이 양호한 상태인 경우 결제 계정당 프로젝트 할당량이 크게 증가합니다.

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

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

  • 프로젝트당 앱 수

    한 프로젝트에 속하는 앱의 개수에는 제한이 없지만, 앱을 추가하면 내부적으로 하나 이상의 OAuth 2.0 클라이언트 ID가 만들어질 수 있습니다. 프로젝트 하나에 만들 수 있는 클라이언트 ID의 한도는 약 30개입니다.

  • 프로젝트당 호스팅 사이트 수

    Firebase 호스팅 다중 사이트 기능은 프로젝트당 최대 20개의 사이트를 지원합니다.

앱 출시