App Design Center (ADC) 및 Firebase 시작하기

Firebase는 Application Design Center (ADC) 에서 제공하는 Google Cloud와 통합되어 엔터프라이즈 고객이 표준화 및 거버넌스 요구사항을 충족하는 동시에 앱 개발자가 신속하게 출시할 수 있도록 지원합니다. ADC를 사용하면 리소스 프로비저닝, IAM 권한 부여 등을 위한 가드레일을 정의하는 사전 정의된 템플릿을 통해 인프라가 조직 표준 및 권장사항을 준수하도록 할 수 있습니다.

이 페이지에서는 다음을 알아봅니다.

ADC 및 Firebase 개요

Google Cloud 개요는 문서를 검토하는 것이 좋습니다ADC. Google Cloud 문서에서는 ADC 주요 개념 초기 설정 가이드를 비롯한 심층 가이드도 여러 개 제공합니다.

ADC를 사용할 때 '앱'은 비즈니스 기능을 함께 제공하는 리소스 및 서비스의 논리적 그룹으로 정의됩니다. Firebase 개발자의 경우 ADC "앱"을 Firebase 프로젝트와 동일한 것으로 생각할 수 있습니다. 등록된 iOS, Android, 웹 앱이 모두 프로젝트의 모든 동일한 리소스와 서비스를 공유하고 액세스할 수 있습니다.

시작하려면 ADC라는 GUI 환경을 사용하여 작업하는 것이 좋습니다. 이 환경은 디자인 캔버스라고 하며 Google Cloud 콘솔에서 사용할 수 있습니다. 디자인 캔버스를 사용하면 앱에서 사용할 수 있는 인프라의 아키텍처 다이어그램을 시각화하고 만들 수 있습니다.

ADC는 Terraform을 기반으로 하므로 ADC를 사용하여 정의된 인프라의 코드 정의에 항상 액세스할 수 있습니다.

지원되는 Firebase 제품

다음은 ADC와 함께 사용할 수 있는 지원되는 Firebase 제품의 초기 집합입니다.

ADC 사용을 위한 주요 페르소나

ADC를 이해하고 사용하는 일반적인 방법은 두 가지 페르소나를 기반으로 ADC 관련 작업을 분류하는 것입니다.

  • 플랫폼 엔지니어: 이 페르소나는 재사용 가능하고 정책이 적용된 ADC 템플릿을 설계, 확인, 게시하여 ADC 카탈로그에 추가합니다.

  • 애플리케이션 개발자: 이 페르소나는 게시된 ADC 템플릿 (예: 팀의 ADC 카탈로그)을 사용하여 인프라를 구성하고 배포합니다. 또한 앱의 실제 코드베이스와 기능을 개발합니다.

액세스 제어를 위한 필수 IAM 역할

IAM 역할을 할당하면 특정 작업을 수행할 수 있는 프로젝트 구성원 (주 구성원)을 제어할 수 있습니다.

예를 들어 공간을 만들고 할당하고, 카탈로그를 관리하고, 템플릿을 설계해야 하는 플랫폼 엔지니어에게 App Design Center 관리자 역할(roles/designcenter.admin)을 할당할 수 있습니다. 하지만 애플리케이션 개발자가 템플릿을 사용 할 수는 있지만 템플릿을 만들 수는 없도록 애플리케이션 편집자 역할 (roles/designcenter.applicationEditor)만 할당할 가능성이 높습니다.

다음 표에서는 ADC-관련 작업, 대상 페르소나, 필수 역할을 설명합니다.

작업 페르소나 IAM 역할 1
템플릿 만들기 및 관리
전체 ADC 수명 주기 관리
(공간, 카탈로그, 템플릿 관리, 앱 구성 및 배포 포함)
플랫폼 엔지니어 관리 프로젝트의 App Design Center 관리자
(roles/designcenter.admin)
템플릿 만들기 및 관리, 앱 구성 및 배포 플랫폼 엔지니어 관리 프로젝트
Application Design Center 사용자 (roles/designcenter.user)
ADC 앱 배포를 위한 서비스 계정 만들기 ADC
서비스 계정 만들기 플랫폼 엔지니어 서비스 계정 만들기
(roles/iam.serviceAccountCreator) 관리 프로젝트에서
서비스 계정에 배포에 사용되는 프로젝트ADC에 대한 액세스 권한 부여 플랫폼 엔지니어 _배포 프로젝트_프로젝트 IAM 관리자
(roles/resourcemanager.projectIamAdmin)
ADC 앱 구성 및 배포ADC
전체 앱 수명 주기 제어
(소스 코드 및 CI/CD 시스템과의 통합 포함)
애플리케이션 개발자 _관리 프로젝트_애플리케이션 관리자
(roles/designcenter.applicationAdmin)
관리자가 설정한 기존 템플릿 및 연결 을 기반으로 앱 구성 및 배포 애플리케이션 개발자 애플리케이션 편집자
(roles/designcenter.applicationEditor) _관리 프로젝트_

1 이러한 역할 중 일부는 관리 프로젝트에 설정해야 합니다. 이 프로젝트는 Google Cloud 계층 구조 내의 최상위 리소스입니다.

일반 워크플로

이 섹션에서는 ADC 템플릿을 만들고 사용하는 일반적인 워크플로를 설명합니다. 단계에는 일반적으로 단계를 수행하는 페르소나가 태그로 지정됩니다.

  1. 1단계: ADC 설정 (플랫폼 엔지니어)
  2. 2단계: 템플릿 만들기 (플랫폼 엔지니어)
  3. 3단계: 템플릿 사용 (애플리케이션 개발자)
  4. 4단계: 실제 앱 개발 (애플리케이션 개발자)

1단계: ADC 설정 (플랫폼 엔지니어)

플랫폼 엔지니어 페르소나 (또는 그 이상)는 이러한 작업을 완료하여 ADC을 설정합니다. 이러한 작업은 일반적으로 ADC를 사용하도록 모든 것을 설정하기 위해 한 번만 완료하면 됩니다 ADC.

  1. 초기 ADC 설정.

    초기 설정 가이드에 있는 단계와 안내를 따르세요.ADCGoogle Cloud 이 가이드에서는 폴더 수준 경계 를 설정한다고 가정합니다.

    이 설정을 완료하면 팀이 공동작업하고, 템플릿을 만들고, 애플리케이션을 배포할 수 있는 전용 영역인 공간이 있어야 합니다. 이 공간 (및 폴더와 카탈로그)이 ADC로 작업하려는 모든 사용자와 공유되는지 확인합니다. ADC

  2. 공간의 액세스 권한 및 사용자 설정.

    공간 사용자 관리 단계에 따라 ADC 문서에서 Google Cloud 진행합니다. 액세스 제어를 위한 필수 IAM 역할에 관해 이 페이지 앞부분에서 설명한 안내를 사용합니다 .

  3. 프로젝트 사전 프로비저닝.

    폴더에 하나 이상의 새 Google Cloud 프로젝트를 만듭니다. 이러한 프로젝트에 Cloud Billing 계정을 연결해야 합니다. 이러한 프로젝트는 애플리케이션 개발자가 템플릿에 정의된 인프라를 배포할 때 사용합니다.

  4. 배포 서비스 계정 구성.

    ADC는 범위가 좁은 서비스 계정을 사용하여 리소스의 자동 프로비저닝을 관리합니다. 이렇게 하면 애플리케이션 개발자가 자체 계정을 사용하여 인프라를 배포할 수 없습니다.

    ADC는 만든 템플릿의 배포를 테스트할 때 범위를 좁힌 서비스 계정을 자동으로 만들 수 있습니다. 애플리케이션 개발자에게 적합하다고 생각하는 권한이 있는 자체 서비스 계정을 가져올 수도 있습니다.

2단계: 템플릿 만들기 (플랫폼 엔지니어)

플랫폼 엔지니어 페르소나는 디자인 캔버스 또는 Gemini Cloud Assist를 사용하여 새 ADC 템플릿을 만듭니다.

  1. 리소스 정의.

    디자인 캔버스를 사용하여 구성요소를 캔버스로 드래그 앤 드롭하고 구성요소 간에 연결을 만듭니다. 이러한 구성요소는 애플리케이션 개발자가 사용할 Firebase (및 Google Cloud) 서비스를 정의하는 방법입니다.

    예를 들어 템플릿은 다음과 같은 리소스를 정의할 수 있습니다.

    • 애플리케이션 개발자는 모든 리소스를 사용하는 iOS, Android, 웹 앱을 개발할 수 있습니다.
    • 애플리케이션 개발자는 앱에서 Firebase AI Logic, Firebase Authentication, Cloud Firestore, Firebase Security Rules를 사용할 수 있습니다 (ADC에 지원되는 모든 Firebase 제품 목록 참고).
    • Firebase Security Rules은 기본적으로 모든 액세스 요청을 거부하도록 설정됩니다. 그런 다음 애플리케이션 개발자가 자체 배포에 이 템플릿을 사용하면 필요한 액세스 모델에 맞게 이러한 Security Rules을 변경할 수 있습니다.
  2. 정책 정의.

    배포된 인프라의 IAM 역할 또는 리소스에 허용되는 리전과 같은 정책을 정의하려면 해당 정책의 각 인터페이스에서 정책을 설정해야 합니다. ADC는 현재 템플릿 수준에서 정책 정의를 지원하지 않습니다.

    프로젝트 구성원에게 수행할 작업에 따라 특정 Firebase IAM 역할을 할당할 수 있습니다. 예를 들어 Firebase 콘솔에서 리소스만 확인해야 하는 경우 Firebase 뷰어 역할 (roles/firebase.viewer)을 할당합니다.

    폴더 또는 조직 수준에서 리소스의 리전 제한을 설정할 수 있습니다.

  3. 카탈로그에 템플릿 추가.

    템플릿을 테스트한 후 팀의 ADC 카탈로그에 추가합니다. 이 카탈로그는 적절한 사용자, 특히 애플리케이션 개발자가 템플릿을 사용할 수 있도록 공유해야 합니다 (위의 1단계: ADC설정 참고).

3단계: 템플릿 사용 (애플리케이션 개발자)

애플리케이션 개발자 페르소나는 사전 정의된 템플릿을 선택하고 특정 사용 사례에 맞게 구성한 후 인프라를 배포합니다.

  1. 템플릿 선택 및 구성.

    ADC 카탈로그에서 템플릿 을 선택하고 구성하여 애플리케이션 초안을 만듭니다. 사용 가능한 구성(예: 리소스에 가능한 리전)은 플랫폼 엔지니어가 템플릿을 만들 때 설정한 구성으로 제한됩니다.

  2. 인프라 배포.

    애플리케이션 초안이 생성된 후 인프라 배포를 위해 생성된 사전 프로비저닝된 프로젝트 중 하나에 ADC 앱을 배포합니다 (위의 1단계: ADC 설정 참고).

    Firebase 콘솔을 방문하여 프로젝트에 프로비저닝된 리소스와 사용 설정된 서비스를 볼 수 있습니다.Firebase

    https://console.firebase.google.com/project/PROJECT_ID/overview

4단계: 실제 앱 개발 (애플리케이션 개발자)

ADC는 리소스 프로비저닝 및 API 사용 설정과 같은 Firebase 및 Google Cloud 인프라를 설정하는 데 도움이 됩니다. 하지만 이러한 리소스와 API를 사용하는 실제 앱의 코딩은 수행하지 않습니다.

다음은 애플리케이션 개발자 페르소나가 수행해야 하는 몇 가지 중요한 사항입니다.

  1. 앱의 코드베이스를 Firebase에 연결.

    Firebase 구성을 가져온 후 각 앱의 코드베이스에 추가합니다.

    예를 들어 템플릿에서 Android 앱을 허용하는 경우 google-services.json 파일을 Android 프로젝트 내의 적절한 디렉터리에 추가해야 합니다.

  2. 코드와 리소스를 정렬된 상태로 유지.

    (Cloud Firestore를 사용하는 경우) 앱의 Cloud Firestore 데이터 모델에 맞게 Firebase Security Rules를 업데이트하고 게시해야 합니다.

또 뭘 할 수 있니?