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

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

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

ADC 및 Firebase 개요

ADC 개요는 Google Cloud 문서를 검토하시기 바랍니다. Google Cloud 문서에서는 주요 개념, 초기 설정 가이드 등 ADC에 관한 심층 가이드도 제공합니다.

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

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

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)
템플릿을 만들고 관리하며 앱을 구성하고 배포합니다. 플랫폼 엔지니어 관리 프로젝트의 App Design Center 사용자
(roles/designcenter.user)
ADC 앱 배포를 위한 서비스 계정 만들기
서비스 계정 만들기 플랫폼 엔지니어 관리 프로젝트에서 서비스 계정 만들기
(roles/iam.serviceAccountCreator)
ADC 배포에 사용되는 프로젝트에 대한 액세스 권한을 서비스 계정에 부여 플랫폼 엔지니어 배포 프로젝트의 프로젝트 IAM 관리자
(roles/resourcemanager.projectIamAdmin)
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을 사용하기 위해 모든 것을 설정하기 위해 한 번만 완료하면 됩니다.

  1. 초기 ADC 설정

    Google Cloud 문서의 ADC에 관한 초기 설정 가이드의 단계와 안내를 따릅니다. 이 가이드에서는 폴더 수준 경계를 설정한다고 가정합니다.

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

  2. 스페이스의 액세스 권한 및 사용자 설정하기

    Google Cloud 문서의 ADC에 대한 스페이스 사용자 관리의 단계를 따릅니다. 이 페이지의 앞부분에 설명된 액세스 제어에 필요한 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 콘솔을 방문하여 프로젝트에 프로비저닝된 리소스와 사용 설정된 서비스를 확인할 수 있습니다.

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

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

애플리케이션 개발자 페르소나가 해야 하는 몇 가지 중요한 작업은 다음과 같습니다.

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

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

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

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

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

또 뭘 할 수 있어?

  • App Hub에 자동으로 등록되는 배포된 ADC '앱' 모니터링 이를 통해 광범위한 Google Cloud 배포의 맥락에서 Firebase 리소스에 대한 통합 모니터링, 비용 관찰, 문제 해결이 가능합니다.