0Pricing
Android Academy · 강의

Firebase 설정

앱을 Firebase 프로젝트에 연결합니다.

Firebase 설정은(는) CoddyKit의 무료 Android Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Android Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Firebase란 무엇인가요

Firebase는 Google의 앱 개발 플랫폼입니다. Android 앱에 바로 사용할 수 있는 백엔드를 제공하므로 서버를 직접 구축하고 호스팅하지 않아도 됩니다.

이 과정에서는 앱을 Firebase에 연결한 다음 가장 많이 사용되는 다음 세 가지 서비스를 활용합니다.

  • Authentication — 이메일 또는 Google로 사용자 로그인
  • Cloud Firestore — 실시간 NoSQL 데이터베이스
  • Cloud Messaging (FCM) — 푸시 알림

이 첫 번째 레슨에서는 프로젝트를 만들고 Android 앱에 연결하는 설정을 다룹니다.

Firebase 프로젝트 만들기

모든 작업은 console.firebase.google.com의 Firebase console에서 시작합니다.

  • Add project를 클릭하고 프로젝트 이름을 지정합니다.
  • 각 Firebase 프로젝트는 내부적으로 Google Cloud 프로젝트 하나에 연결됩니다.
  • 하나의 Firebase 프로젝트에 여러 앱(Android, iOS, 웹)을 포함할 수 있습니다.

프로젝트 안에서 application ID(패키지 이름)를 사용해 특정 Android 앱을 등록합니다. 예를 들면 com.coddykit.demo와 같습니다. 이 ID를 통해 Firebase는 요청이 어느 앱에서 왔는지 확인합니다.

google-services.json 파일

Android 앱을 등록하면 Firebase가 google-services.json이라는 설정 파일을 생성합니다.

이 파일을 다운로드해 앱 모듈의 루트 폴더, 즉 build.gradle.kts 옆의 app/ 디렉터리 안에 넣습니다.

이 JSON에는 프로젝트 ID, API 키, 앱 등록 정보가 들어 있습니다. 빌드 도구가 이를 자동으로 읽으므로 직접 열어 보는 일은 거의 없습니다.

// File location in your project:
// app/google-services.json

// It is generated for you and looks roughly like:
{
  "project_info": {
    "project_id": "my-demo-app",
    "storage_bucket": "my-demo-app.appspot.com"
  },
  "client": [
    { "client_info": { "mobilesdk_app_id": "1:1234567890:android:abc123" } }
  ]
}

Google Services 플러그인 추가

Gradle이 google-services.json을 읽도록 하려면 Google Services Gradle plugin을 추가합니다.

최신 방식에서는 plugins 블록과 버전 카탈로그를 사용합니다. 루트 빌드 파일에서 apply false와 함께 플러그인을 선언한 다음 모듈 빌드 파일에 적용합니다.

// Root build.gradle.kts (project level)
plugins {
    id("com.android.application") version "8.5.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.0" apply false
    id("com.google.gms.google-services") version "4.4.2" apply false
}

모듈에 플러그인 적용

app 모듈의 build.gradle.kts에서 플러그인을 적용하면 빌드 중 설정 파일을 처리할 수 있습니다.

이 줄이 없으면 다른 설정이 모두 올바르더라도 런타임에 Firebase 초기화가 실패합니다.

// app/build.gradle.kts (module level)
plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.gms.google-services")
}

Firebase BoM

Firebase에는 많은 라이브러리(Auth, Firestore, Messaging, Analytics 등)가 있습니다. Bill of Materials (BoM)을 사용하면 이들의 버전을 쉽게 맞출 수 있습니다.

BoM을 한 번 선언한 다음 각 Firebase 종속 항목을 버전 없이 추가하면 BoM이 호환되는 버전을 자동으로 선택합니다.

// app/build.gradle.kts -> dependencies { }
dependencies {
    // One BoM controls all Firebase versions
    implementation(platform("com.google.firebase:firebase-bom:33.1.0"))

    // No version numbers here - the BoM decides
    implementation("com.google.firebase:firebase-auth")
    implementation("com.google.firebase:firebase-firestore")
    implementation("com.google.firebase:firebase-messaging")
}

자동 초기화

Application 클래스에서 Firebase.initialize()와 같은 코드를 호출해야 한다고 생각할 수 있습니다. 하지만 최신 SDK에서는 일반적으로 그럴 필요가 없습니다.

Google Services 플러그인은 google-services.json을 사용해 앱 시작 시 실행되는 초기화 제공자를 자동으로 생성합니다. Activity가 시작될 때는 Firebase가 이미 준비되어 있습니다.

// You normally do NOT need this anymore:
// FirebaseApp.initializeApp(context)

// Firebase is initialized automatically on app launch.
// You can just start using a service:
import com.google.firebase.Firebase
import com.google.firebase.firestore.firestore

val db = Firebase.firestore   // ready to use

Kotlin KTX 스타일

Firebase는 Firebase 객체를 통해 관용적인 Kotlin 접근자를 제공합니다. FirebaseFirestore.getInstance() 대신 Firebase.firestore를 작성합니다.

이러한 확장 기능은 코드를 더 자연스럽게 읽히게 하며, 최신 Android 코드에서 권장되는 스타일입니다.

import com.google.firebase.Firebase
import com.google.firebase.auth.auth
import com.google.firebase.firestore.firestore
import com.google.firebase.messaging.messaging

val auth = Firebase.auth          // FirebaseAuth
val db = Firebase.firestore       // FirebaseFirestore
val fcm = Firebase.messaging      // FirebaseMessaging

// Equivalent old style:
// val auth = FirebaseAuth.getInstance()

인터넷 권한 추가

Firebase는 Google 서버와 통신하므로 앱에 네트워크 접근 권한이 필요합니다. 매니페스트에 INTERNET 권한을 선언합니다.

이는 일반 권한이므로 설치 시 자동으로 허용되며 런타임 요청이 필요하지 않습니다.

<!-- AndroidManifest.xml -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.INTERNET" />

    <application ... >
        <!-- activities, services -->
    </application>
</manifest>

연결 확인

설정이 제대로 작동하는지 확인하는 빠른 방법은 값을 읽거나 현재 Firebase 앱을 확인하는 것입니다. Firebase가 초기화되지 않았다면 서비스에 접근할 때 예외가 발생합니다.

많은 개발자는 스모크 테스트를 위해 Analytics 종속 항목을 임시로 추가하고 콘솔에서 이벤트를 확인하기도 합니다. 하지만 코드에서 서비스를 단순히 한 번 사용해 보는 것만으로도 연결 설정이 올바른지 확인할 수 있습니다.

import android.util.Log
import com.google.firebase.Firebase
import com.google.firebase.firestore.firestore

fun verifyFirebase() {
    val app = Firebase.firestore.app
    Log.d("Firebase", "Connected to project: ${app.options.projectId}")
}

일반적인 설정 실수

Firebase가 작동하지 않는다면 먼저 다음 항목을 확인하시기 바랍니다.

  • 패키지 이름이 잘못됨 — 앱의 applicationId가 등록한 값과 일치해야 합니다.
  • google-services.json이 없음 — app/ 폴더에 있어야 합니다.
  • 모듈 빌드 파일에 플러그인을 적용하지 않음
  • 매니페스트에 INTERNET 권한이 없음
  • SHA-1 지문이 추가되지 않음 — 나중에 Google 로그인에 필요합니다.

빠른 확인

google-services.json 파일의 용도는 무엇인가요?

복습: 설정 완료

Android 앱을 Firebase에 연결했습니다. 주요 단계는 다음과 같습니다.

  • Firebase console에서 프로젝트를 만들고 패키지 이름으로 앱을 등록합니다.
  • google-services.json을 app/ 폴더에 추가합니다.
  • Google Services plugin을 적용하고 Firebase BoM과 필요한 라이브러리를 추가합니다.
  • Firebase는 자동으로 초기화되므로 Firebase.auth, Firebase.firestore 등을 통해 서비스에 접근합니다.
  • INTERNET 권한을 잊지 마시기 바랍니다.

다음에는 Firebase Authentication으로 사용자를 로그인시키겠습니다.

자주 묻는 질문

“Firebase 설정” 강의는 무료인가요?

네 — “Firebase 설정” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Android Academy 강의 전체를 잠금 해제할 수 있습니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Firebase 설정”에서 뭘 배우나요?

앱을 Firebase 프로젝트에 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 Android Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Android Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Android Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“Firebase 설정” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Android Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Android Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Firebase 설정
  2. Firebase 인증
  3. Cloud Firestore 기초
  4. Cloud Messaging으로 푸시 알림 보내기
← Android Academy(으)로 돌아가기