이 문서에는 Firebase 앱을 프로덕션에 출시하기 전에 고려해야 할 사항과 권장사항의 체크리스트가 포함되어 있습니다.
출시를 위한 일반적인 권장사항
프로덕션에 배포하기 전에 Firebase Local Emulator Suite(지원되는 제품의 경우)에서 모든 변경사항을 테스트해야 합니다. 철저한 테스트를 통해 비용이 많이 드는 실수를 방지할 수 있습니다.
이를 지원하는 모든 서비스에 대해 Firebase App Check를 시행합니다. App Check를 사용하면 실제 앱만 백엔드 서비스 및 리소스에 액세스할 수 있습니다.
Firebase의 일반 보안 체크리스트를 검토합니다.
Firebase Remote Config 출시를 사용하여 앱에 새로운 기능 및 업데이트를 안전하고 점진적으로 출시합니다.
아직 설정하지 않았다면 Firebase Crashlytics를 설정해 보세요. Firebase Crashlytics는 가벼운 실시간 비정상 종료 보고 도구로 앱 품질을 저하하는 안정성 문제를 추적하고 우선순위를 지정하고 문제를 해결하는 데 도움이 됩니다.
요금제 한도 확인 및 예산 알림 설정
프로덕션으로 전환한 후 사용량 한도 및 할당량을 초과하지 않도록 합니다. 특히 무료 Spark 요금제를 사용하는 경우 주의해야 합니다. 사용한 만큼만 지불하는 Blaze 요금제로 업그레이드하는 것이 좋습니다.
프로젝트에 예산 알림을 설정합니다.
예산 알림은 예산 한도가 아닙니다. 구성된 기준점에 도달하거나 이를 초과하면 알림이 전송되므로 앱 또는 프로젝트에서 조치를 취할 수 있습니다.
알림에 대한 응답으로 결제를 사용 중지하는 함수와 같은 고급 알림 및 작업을 설정해 보세요.
제품별 대시보드 또는 Firebase Console의 중앙 사용량 및 결제 대시보드에서 사용량을 모니터링합니다.
Firebase 프로젝트 및 앱이 권장사항을 준수하는지 확인
한 명의 개발자든 대규모 기업팀이든 Firebase 프로젝트, 앱, 리소스가 안전하게 보호되고 팀의 변화에 따라 발전할 수 있도록 하는 것이 중요합니다.
Firebase 프로젝트는 Firebase 서비스 및 구성이 사용 설정된 Google Cloud 프로젝트일 뿐이라는 점을 기억하는 것이 좋습니다. 즉, Google Cloud에서 권장하는 많은 권장사항이 Firebase에도 적용됩니다.
개발, 테스트, 프로덕션에 서로 다른 Firebase 프로젝트를 사용합니다.
프로덕션 앱과 연결된 프로젝트에 대한 예기치 않은 노출을 제한해 보세요. 개발 워크플로 설정에 대해 자세히 알아보세요.
중요한 프로젝트, 특히 프로덕션 앱과 연결된 프로젝트를 보호합니다.
아직 설정하지 않았다면 Google Cloud 조직을 설정하고 Firebase 프로젝트를 추가해 보세요.
특히 프로젝트가 Google Cloud 조직에 속하지 않는 경우 Firebase 프로젝트에 소유자를 두 명 이상 추가합니다. Firebase 프로젝트의 소유자를 할당하는 시기 및 방법에 대해 자세히 알아보세요.
프로젝트 구성원('원칙'이라고도 함)을 개별적으로 추가하는 대신 Google 그룹으로 추가합니다.
그룹을 사용하면 팀 구성원에게 역할을 일괄적으로 할당하고, 특히 팀 구성원이 교체되거나 퇴사하는 경우 Firebase 프로젝트에 액세스할 수 있는 사용자를 관리하는 것이 더 쉬워집니다.
각 프로젝트 구성원('원칙'이라고도 함)에게 Firebase 프로젝트 및 리소스에 대한 적절한 수준의 액세스 권한을 부여합니다. Firebase IAM으로 프로젝트 액세스 관리에서 자세히 알아보세요.
각 관련 프로젝트 구성원('원칙'이라고도 함)이 특정 제품 또는 프로젝트 상태(예: 요금제 변경 또는 할당량 한도)에 관한 알림을 수신하도록 환경설정을 지정해야 합니다. Firebase 알림 수신에서 자세히 알아보세요.
Firebase API 키를 키의 API 허용 목록에 있어야 하는 API로만 제한합니다. Firebase의 보안 체크리스트에서 API 키에 관한 정보도 확인하세요.
앱에서 사용되는 특정 서비스 준비
앱에서 사용하는 각 제품 및 서비스는 프로덕션에서 사용할 때 구체적인 고려해야 할 사항이 있을 수 있습니다.
Google Analytics
Google Analytics가 앱 실행 시부터 분석 데이터 수집을 시작할 수 있도록 잠재고객 조건을 정의합니다.
BigQuery SQL로 데이터를 분석하거나 자체 도구로 사용할 데이터를 내보낼 수 있도록 Google Analytics 데이터를 BigQuery로 내보내기를 사용 설정해 보세요.
사용자 속성을 전체 앱의 수명 주기에 관련된 정보로 제한합니다. 만들 수 있는 개수에 제한이 있으며 보관처리할 수 없습니다.
Google Analytics 속성 및 계정의 Google Analytics 역할 설정을 검토합니다. 이러한 권한은 Firebase 프로젝트 IAM 권한 및 역할과는 별도로 관리됩니다.
Firebase Console의 프로젝트 설정에서 App Store ID 및 팀 ID(필요한 경우)가 올바른지 확인합니다.
App Check
Firebase Console의 프로젝트 설정에서 팀 ID가 올바른지 확인합니다.
아직 설정하지 않은 경우 이를 지원하는 모든 서비스에 Firebase App Check를 시행합니다. App Check를 사용하면 실제 앱만 백엔드 서비스 및 리소스에 액세스할 수 있습니다.
Authentication
이용하지 않는 제공업체(특히 익명 인증)를 사용 중지합니다.
앱에서 Google 계정으로 로그인을 사용하는 경우 OAuth 동의 화면을 맞춤설정합니다.
Authentication 이메일 전송 서비스의 도메인 및 발신자를 맞춤설정합니다.
Identity Platform SMS 인증 서비스를 사용하는 경우 Firebase App Check를 시행하고 SMS 리전 정책을 구성하여 SMS 악용으로부터 앱을 보호합니다.
Apple 플랫폼에서 일반적인 Authentication 오류에 대한 오류 처리를 구현합니다.
Firebase Console의 프로젝트 설정에서 앱의 서명 인증서에 출시 SHA-1 해시를 추가합니다. 앱에서 전화번호 로그인 또는 Google 계정으로 로그인(OAuth 클라이언트 요구사항이 있음)을 사용하는 경우 SHA-1 해시가 필요합니다.
: 도메인에 대한 액세스 제어를 추가하여 무단 사용을 방지합니다. 특히 Firebase Console의 Authentication 섹션에서 프로덕션 도메인 액세스를 허용합니다(Firebase Security Rules을 사용하는 제품을 사용하는 경우 특히 중요).
Cloud Firestore
의도하지 않은 데이터 액세스를 방지하도록 Cloud Firestore Security Rules을 구성합니다.
출시 빌드에서 ProGuard를 사용하여 코드를 축소합니다. ProGuard가 없으면 Cloud Firestore SDK와 종속 항목으로 인해 APK 크기가 늘어날 수 있습니다.
Cloud Messaging
BigQuery SQL로 데이터를 분석하거나 자체 도구로 사용할 데이터를 내보낼 수 있도록 Cloud Messaging 데이터를 BigQuery로 내보내기를 사용 설정해 보세요.
Firebase Console에서 Apple 앱의 Cloud Messaging용 APNs 인증 키를 업로드합니다. APNs 인증서를 사용하는 경우 프로덕션 APNs 인증서를 업로드해야 합니다.
Cloud Storage
- 의도하지 않은 데이터 액세스를 방지하도록 Cloud Storage Security Rules을 구성합니다.
Crashlytics
각 관련 프로젝트 구성원('원칙적'이라고도 함)이 Crashlytics 또는 프로젝트 상태(예: 요금제 변경 또는 할당량 한도)에 관한 알림을 수신하도록 환경설정을 지정해야 합니다. Firebase 알림 수신에서 자세히 알아보세요.
BigQuery SQL로 데이터를 분석하거나 자체 도구로 사용할 데이터를 내보낼 수 있도록 Crashlytics 데이터를 BigQuery로 내보내기를 사용 설정해 보세요.
(네이티브 Android 및 iOS만 해당) 비정상 종료가 발생한 이유와 해결 방법을 파악하는 데 걸리는 시간을 단축할 수 있도록 Crashlytics의 AI 지원을 사용 설정해 보세요.
Crashlytics에서 사용할 수 있도록 출시 빌드용 dSYM 파일을 업로드합니다. Xcode가 dSYM을 자동으로 처리하고 파일을 업로드할 수 있는지 확인
Crashlytics에서 사용할 수 있도록 출시 빌드의 ProGuard 매핑을 업로드합니다. Firebase CLI를 사용하여 업로드할 수 있습니다.
Firebase를 Google Play에 연결하여 Android 앱의 상태를 보다 다각적으로 확인합니다. 예를 들어 Google Play 트랙별로 앱의 비정상 종료 보고서를 필터링하여 특정 빌드에 대시보드를 더 집중할 수 있습니다.
Android를 타겟팅하고 IL2CPP를 사용하는 빌드의 경우 코드 또는 구성 변경 여부와 관계없이 기호가 포함되기를 원하는 모든 개별 빌드 실행에 대해 네이티브 기호를 업로드해야 합니다.
Dynamic Links
- Dynamic Links는 지원 중단되었으므로 서비스를 마이그레이션하는 것이 좋습니다. 지원 중단 FAQ에서 자세히 알아보세요.
Firebase ML
프로덕션용 Firebase ML Apple 앱 준비를 참고하세요.
프로덕션용 Firebase ML Android 앱 준비를 참고하세요.
Performance Monitoring
각 관련 프로젝트 구성원('원칙적'이라고도 함)이 Performance Monitoring 또는 프로젝트 상태(예: 요금제 변경 또는 할당량 한도)에 관한 알림을 수신하도록 환경설정을 지정해야 합니다. Firebase 알림 수신에서 자세히 알아보세요.
BigQuery SQL로 데이터를 분석하거나 자체 도구로 사용할 데이터를 내보낼 수 있도록 Performance Monitoring 데이터를 BigQuery로 내보내기를 사용 설정해 보세요.
Realtime Database
의도하지 않은 데이터 액세스를 방지하도록 Realtime Database Security Rules을 구성합니다.
확장할 준비가 되었는지 확인합니다. Realtime Database에는 대부분의 애플리케이션에 충분한 기본 할당량이 있지만 일부 앱은 추가 용량이 필요하기도 합니다.
Realtime Database와 연동하도록 ProGuard 규칙을 구성합니다.
Remote Config
- 실험용 Remote Config 규칙이 출시 사용자에게 영향을 주지 않으며 앱에 적절한 서버 및 인앱 기본값이 배포되어 있는지 확인합니다.