💡 Intro
3주차 데모데이 권장 요구사항으로 Firebase와 연동과 Firebase Analytics, Crashlytics 등 모니터링 환경 구축, Log 설계 이렇게 세개가 주어졌다. 아마 결국 사용자의 행동 사항이나 앱의 문제에 대한 모니터링을 어떻게 진행할 것이고 어떤 상황에 어떤 로그를 남겨 확인할 것인지의 전략을 정하라는 것이 아닐까 생각한다.
이번 글에서는 앱과 Firebase를 연동하는 방법에 대해 정리하려고 한다.
❓ ADB 설치 및 환경변수 설정
Android Debug Bridge (ADB)는 안드로이드 기기와 컴퓨터 간의 통신을 위한 도구다. 기본적인 개념은 Unix Shell에 대한 접근을 제공하는 클라이언트-서버 프로그램이라고 할 수 있다. ADB는 안드로이드 디바이스와 상호 작용하고, 앱을 설치하고 실행하며, 디바이스의 로그를 보거나 파일을 복사하고, 디바이스를 디버깅하거나 테스트하는 등 다양한 작업을 수행하는 데 사용할 수 있다. adb 명령어로 클라이언트를 실행할 수 있으며 이 클라이언트를 통해 우리는 기기에 명령을 전달할 수 있다.
이것을 안드로이드 스튜디오에 설치해보도록 하자. (철저히 맥북 기준임)
1️⃣ 설치
[ ⌘ + , ] 를 클릭하여 Settings를 열고 검색창에 sdk를 검색한다.
[SDK Tools] 탭에 들어가 Android SDK Platform-Tools를 설치해주면 된다.

2️⃣ 환경 변수 설정
adb가 설치되어 있다고 하더라도 환경 변수로 등록되어 있지 않으면 명령어를 입력할 수 없다. 기본적으로 Android SDK Platform-Tool는 다음과 같은 경로에 등록되어 있다.
/Users/<username>/Library/Android/sdk/platform-tools/
cd ~/Library/Android/sdk/platform-tools/ 명령어를 통해 있는지 확인해보자. 없다면 어디 설치되었는지 찾아야한다. 셀프로,,
bash_profile을 설정해서 환경 변수를 설정하는 방법도 있는데 이 방법은 터미널을 닫거나 MacOs를 재시동하면 풀려버린다고 한다.(해보지는 않아서 잘 모르겠다.) 하지만 지금 작성하는 방법은 터미널을 닫거나 MacOs를 재시동해도 풀리지 않는 방법이다. 어떤 방법이는 adb명령어가 듣도록 하는 것이 목적이다.
다음의 명령어로 paths파일을 열어주자.
$ sudo nano /etc/paths
그럼 아래와 같이 환경 변수 목록이 뜬다.
가장 아래줄에 앞에서 찾아본 Android SDK Platform-Tools가 설치되어 있는 경로를 입력해주면 된다.
[ crtl + x ]를 누르고 y를 눌러 저장하고 빠져나오자. (여기서 빠져나오는게 두 번째로 힘들었다.)

빠져나온 뒤 열려있는 터미널 창을 닫고 새로운 터미널을 열고 다음 명령어를 입력해보자.
$ adb version

이렇게 adb version 정보가 나온다면 성공적으로 환경변수에 입력된 것이다.
❓Firebase 연동
나는 Firebase Console을 사용하여 Firebase를 추가했다. 내가 진행한 방식을 정리하지만 더 자세하거나 정확한 정보가 필요하다면 여기를 참고하길 바란다.
1️⃣ 프로젝트 생성
먼저 Firebase Console로 들어가면 다음과 같은 화면이 나온다. [프로젝트 만들기]를 클릭하자.

프로젝트 이름을 입력해주자.

Google Analytics를 사용할 것인지 묻는다. 베타 테스터를 등록하고 테스트용 apk를 추출해서 배포할 때 아무 생각 없이 올렸었는데 바로 Google Analytics를 사용할 수 있어서 엥? 했었는데 다시 정리하다보니 사용한다고 했었던 것 같다.

Default Account for Firebase를 선택해주자.

프로젝트가 등록될 때까지 기다린다.

등록이 완료되었다.

2️⃣ 앱 등록
프로젝트가 정상적으로 생성되면 다음과 같은 화면이 나온다. 우리는 앱을 추가할 것이기 때문에 여기서 안드로이드 아이콘을 클릭해주자.

안드로이드 패키지 이름과 앱 닉네임을 입력해주자. 디버그 서명 인증서는 선택사항이다. 우리는 디버그 서명 인증서가 정확히 무슨 역할을 하는지 모르겠어서 선택하지 않았다.

google-service.json 파일을 다운로드하고 이 파일을 모듈(앱 수준) 루트 디렉터리로 위치시킨다. 여기서 만약 public한 깃허브 리포지터리에 프로젝트를 올릴 것이라면 google-service.json 파일은 .gitignore 파일에 추가해놓도록 하자. 나는 아무 생각없이 깃에 올려버렸다가 프로젝트를 새로 만드는 불상사가 발생했다.. 아흑..

루트 수준(프로젝트 수준) Gradle 파일에서 Google 서비스 플러그인을 종속 항목으로 추가한다.
plugins {
// ...
// Add the dependency for the Google services Gradle plugin
id("com.google.gms.google-services") version "4.3.15" apply false
}
그 다음 모듈(앱 수준) build.gradle.kts 파일에서 google-services 플러그인과 앱에서 사용할 Firebase SDK를 모두 추가한다.
plugins {
id("com.android.application")
// Add the Google services Gradle plugin
id("com.google.gms.google-services")
...
}
dependencies {
// Import the Firebase BoM
implementation(platform("com.google.firebase:firebase-bom:32.2.0"))
// TODO: Add the dependencies for Firebase products you want to use
// When using the BoM, don't specify versions in Firebase dependencies
implementation("com.google.firebase:firebase-analytics-ktx")
// Add the dependencies for any other desired Firebase products
// https://firebase.google.com/docs/android/setup#available-libraries
}
그럼 완료다.

3️⃣ 베타 테스터 등록 및 배포
앱을 출시하기 전 믿을만한 사용자들을 테스터로 등록해놓으면 테스터들의 이메일로 출시할 앱의 apk를 다운받을 수 있는 링크가 전송된다. 그리고 테스터들의 피드백을 듣고 혹은 그 과정에서 발생하는 에러를 찾아 해결하고 제대로 된 출시를 진행하게 된다.
앱의 베타 테스터를 등록하기 위해서는 다음의 과정을 따르면 된다.
Firebase Console 프로젝트의 메인 페이지에서 가장 아래로 내려 [모든 Firebase 기능 보기]를 클릭한다.

App Distribution을 찾아 클릭하자.

앱의 출시 전 버전을 신뢰할 수 있는 테스터에게 배포이며 개발자의 이메일 주소가 이 앱의 연락처 이메일로 등록되며 앱 테스터에게 공개된다. 온보딩 후에 앱의 연락처 이메일을 변경할 수 있다.

출시할 앱의 apk 혹은 aab파일을 올리면 된다. apk 혹은 aab파일은 안드로이드 스튜디오에서 추출할 수 있다.

[테스터 및 그룹] 탭에서 테스터를 등록할 수 있다.

Android 프로젝트에 Firebase 추가하는 방법은 차근차근 진행하면 어렵지 않다. 하지만 이제 시작이다. 이어서 쓰는 글에는 Firebase Analytics, Crashlytics를 사용하기 위해 설정하는 것과 로깅에 대해 정리할 예정이다.
참고
💡 Intro
3주차 데모데이 권장 요구사항으로 Firebase와 연동과 Firebase Analytics, Crashlytics 등 모니터링 환경 구축, Log 설계 이렇게 세개가 주어졌다. 아마 결국 사용자의 행동 사항이나 앱의 문제에 대한 모니터링을 어떻게 진행할 것이고 어떤 상황에 어떤 로그를 남겨 확인할 것인지의 전략을 정하라는 것이 아닐까 생각한다.
이번 글에서는 앱과 Firebase를 연동하는 방법에 대해 정리하려고 한다.
❓ ADB 설치 및 환경변수 설정
Android Debug Bridge (ADB)는 안드로이드 기기와 컴퓨터 간의 통신을 위한 도구다. 기본적인 개념은 Unix Shell에 대한 접근을 제공하는 클라이언트-서버 프로그램이라고 할 수 있다. ADB는 안드로이드 디바이스와 상호 작용하고, 앱을 설치하고 실행하며, 디바이스의 로그를 보거나 파일을 복사하고, 디바이스를 디버깅하거나 테스트하는 등 다양한 작업을 수행하는 데 사용할 수 있다. adb 명령어로 클라이언트를 실행할 수 있으며 이 클라이언트를 통해 우리는 기기에 명령을 전달할 수 있다.
이것을 안드로이드 스튜디오에 설치해보도록 하자. (철저히 맥북 기준임)
1️⃣ 설치
[ ⌘ + , ] 를 클릭하여 Settings를 열고 검색창에 sdk를 검색한다.
[SDK Tools] 탭에 들어가 Android SDK Platform-Tools를 설치해주면 된다.

2️⃣ 환경 변수 설정
adb가 설치되어 있다고 하더라도 환경 변수로 등록되어 있지 않으면 명령어를 입력할 수 없다. 기본적으로 Android SDK Platform-Tool는 다음과 같은 경로에 등록되어 있다.
/Users/<username>/Library/Android/sdk/platform-tools/
cd ~/Library/Android/sdk/platform-tools/ 명령어를 통해 있는지 확인해보자. 없다면 어디 설치되었는지 찾아야한다. 셀프로,,
bash_profile을 설정해서 환경 변수를 설정하는 방법도 있는데 이 방법은 터미널을 닫거나 MacOs를 재시동하면 풀려버린다고 한다.(해보지는 않아서 잘 모르겠다.) 하지만 지금 작성하는 방법은 터미널을 닫거나 MacOs를 재시동해도 풀리지 않는 방법이다. 어떤 방법이는 adb명령어가 듣도록 하는 것이 목적이다.
다음의 명령어로 paths파일을 열어주자.
$ sudo nano /etc/paths
그럼 아래와 같이 환경 변수 목록이 뜬다.
가장 아래줄에 앞에서 찾아본 Android SDK Platform-Tools가 설치되어 있는 경로를 입력해주면 된다.
[ crtl + x ]를 누르고 y를 눌러 저장하고 빠져나오자. (여기서 빠져나오는게 두 번째로 힘들었다.)

빠져나온 뒤 열려있는 터미널 창을 닫고 새로운 터미널을 열고 다음 명령어를 입력해보자.
$ adb version

이렇게 adb version 정보가 나온다면 성공적으로 환경변수에 입력된 것이다.
❓Firebase 연동
나는 Firebase Console을 사용하여 Firebase를 추가했다. 내가 진행한 방식을 정리하지만 더 자세하거나 정확한 정보가 필요하다면 여기를 참고하길 바란다.
1️⃣ 프로젝트 생성
먼저 Firebase Console로 들어가면 다음과 같은 화면이 나온다. [프로젝트 만들기]를 클릭하자.

프로젝트 이름을 입력해주자.

Google Analytics를 사용할 것인지 묻는다. 베타 테스터를 등록하고 테스트용 apk를 추출해서 배포할 때 아무 생각 없이 올렸었는데 바로 Google Analytics를 사용할 수 있어서 엥? 했었는데 다시 정리하다보니 사용한다고 했었던 것 같다.

Default Account for Firebase를 선택해주자.

프로젝트가 등록될 때까지 기다린다.

등록이 완료되었다.

2️⃣ 앱 등록
프로젝트가 정상적으로 생성되면 다음과 같은 화면이 나온다. 우리는 앱을 추가할 것이기 때문에 여기서 안드로이드 아이콘을 클릭해주자.

안드로이드 패키지 이름과 앱 닉네임을 입력해주자. 디버그 서명 인증서는 선택사항이다. 우리는 디버그 서명 인증서가 정확히 무슨 역할을 하는지 모르겠어서 선택하지 않았다.

google-service.json 파일을 다운로드하고 이 파일을 모듈(앱 수준) 루트 디렉터리로 위치시킨다. 여기서 만약 public한 깃허브 리포지터리에 프로젝트를 올릴 것이라면 google-service.json 파일은 .gitignore 파일에 추가해놓도록 하자. 나는 아무 생각없이 깃에 올려버렸다가 프로젝트를 새로 만드는 불상사가 발생했다.. 아흑..

루트 수준(프로젝트 수준) Gradle 파일에서 Google 서비스 플러그인을 종속 항목으로 추가한다.
plugins {
// ...
// Add the dependency for the Google services Gradle plugin
id("com.google.gms.google-services") version "4.3.15" apply false
}
그 다음 모듈(앱 수준) build.gradle.kts 파일에서 google-services 플러그인과 앱에서 사용할 Firebase SDK를 모두 추가한다.
plugins {
id("com.android.application")
// Add the Google services Gradle plugin
id("com.google.gms.google-services")
...
}
dependencies {
// Import the Firebase BoM
implementation(platform("com.google.firebase:firebase-bom:32.2.0"))
// TODO: Add the dependencies for Firebase products you want to use
// When using the BoM, don't specify versions in Firebase dependencies
implementation("com.google.firebase:firebase-analytics-ktx")
// Add the dependencies for any other desired Firebase products
// https://firebase.google.com/docs/android/setup#available-libraries
}
그럼 완료다.

3️⃣ 베타 테스터 등록 및 배포
앱을 출시하기 전 믿을만한 사용자들을 테스터로 등록해놓으면 테스터들의 이메일로 출시할 앱의 apk를 다운받을 수 있는 링크가 전송된다. 그리고 테스터들의 피드백을 듣고 혹은 그 과정에서 발생하는 에러를 찾아 해결하고 제대로 된 출시를 진행하게 된다.
앱의 베타 테스터를 등록하기 위해서는 다음의 과정을 따르면 된다.
Firebase Console 프로젝트의 메인 페이지에서 가장 아래로 내려 [모든 Firebase 기능 보기]를 클릭한다.

App Distribution을 찾아 클릭하자.

앱의 출시 전 버전을 신뢰할 수 있는 테스터에게 배포이며 개발자의 이메일 주소가 이 앱의 연락처 이메일로 등록되며 앱 테스터에게 공개된다. 온보딩 후에 앱의 연락처 이메일을 변경할 수 있다.

출시할 앱의 apk 혹은 aab파일을 올리면 된다. apk 혹은 aab파일은 안드로이드 스튜디오에서 추출할 수 있다.

[테스터 및 그룹] 탭에서 테스터를 등록할 수 있다.

Android 프로젝트에 Firebase 추가하는 방법은 차근차근 진행하면 어렵지 않다. 하지만 이제 시작이다. 이어서 쓰는 글에는 Firebase Analytics, Crashlytics를 사용하기 위해 설정하는 것과 로깅에 대해 정리할 예정이다.
참고