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 앱을 허용하는 경우 Android 프로젝트 내의 적절한 디렉터리에 google-services.json 파일을 추가해야 합니다.

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

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

또 뭘 할 수 있니?