본문 바로가기
깡샘 코틀린

20-1 파이어베이스 연동과 인증 기능

by 농농씨 2023. 7. 13.

일곱째 마당(20~21장)에서는 안드로이드 앱에서 파이어베이스와 연동하기를 배울 것이다. 파이어베이스를 이용하면 구글의 클라우드 시스템에서 모바일 앱이나 웹 애플리케이션을 서버리스(serverless)로 개발할 수 있다. 오늘날 클라우드 시스템을 활용한 서버리스는 애플리케이션 개발의 큰 흐름으로 자리 잡았다. 여기서는 그 대표 주자인 파이어베이스가 제공하는 다양한 기능 중 인증, 파이어스토어, 스토리지를 살펴보자.

 

 이번 장에서는 파이어베이스를 이용해 앱에서 이메일/비밀번호와 구글 인증을 처리하는 방법을 다룰 것이다. 

 

 

파이어베이스란?

파이어베이스(Firebase)는 2011년 파이어베이스사가 개발하고 2014년 구글에 인수된 모바일과 웹 애플리케이션을 개발하는 플랫폼이다. 안드로이드 앱에서 파이어베이스를 이용하면 서버리스 컴퓨팅을 구현할 수 있다. 서버리스(serverless) 컴퓨팅이란 개발자가 서버를 별도로 구축하지 않고 데이터 센터나 클라우드에 필요한 기능을 함수 형태로 구현하여 전통적인 백엔드 대신 사용하는 방법을 의미한다.

모바일 앱은 사용자의 기기에서 실행되는 프런트엔드 애플리케이션이다. 앱이 서버와 연동하려면 서버에도 앱의 요청을 처리해서 응답하는 애플리케이션이 있어야 하는데 이를 백엔드 애플리케이션이라고 한다. 즉, 모바일 앱은 서버에 있는 백엔드 애플리케이션과 통신하여 데이터를 주고받는 구조로 개발한다.

서버리스 컴퓨팅으로 앱을 개발하면 백엔드 애플리케이션을 개발하지 않아도 되지만, 이런 시스템을 이용하려면 비용이 든다. 파이어베이스도 여러가지 요금제가 있는데, 테스트용은 무료 요금제(Spark)로도 사용할 수 있지만 정식으로 서비스하려면 알맞은 요금제에 가입해야 한다.

파이어베이스는 모바일 앱과 웹 애플리케이션을 개발하는 데 필요한 여러 가지 기능을 제공하는데, 그중에서 핵심 기능은 다음과 같다.

  • Authentication: 인증, 회원가입 및 로그인 처리
  • Cloud Message: 알림 전송
  • Firebase Database: 앱 데이터 저장 및 동기화
  • Realtime Database: 실시간 데이터 저장 및 동기화
  • Storage: 파일 저장소
  • Hosting: 웹 호스팅
  • Functions: 서버 관리 없이 모바일 백엔드 코드 실행
  • Machine Learning: 모바일 개발자용 머신러닝

 

파이어베이스 요구 사항

안드로이드 앱에서 파이어베이스와 연동하려면 다음과 같은 환경을 기본으로 갖춰야 한다.

  • 구글 계정
  • 안드로이드 스튜디오
  • 그래들 4.1 이상
  • minSdk 16 이상

우선 파이어베이스 콘솔에 로그인하려면 구글 계정이 필요하다. 그리고 안드로이드 앱에서 파이어베이스를 연동할 것이므로 안드로이드 스튜디오가 있어야 하며, minSdk는 16, 그래들은 4.1 버전 이상이어야 한다. 그래들 버전은 프로젝트 수준의 build.gradle 파일에서 확인할 수 있다.

// 그래들 버전 확인
dependencies {
    classpath "com.android.tools.build:gradle:7.0.2"
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
}

안드로이드 앱에서 파이어베이스를 사용하는 방법은 다음 2가지이다. 이 책에서는 첫 번째인 파이어베이스 콘솔을 이용하는 방법으로 설병할 것이다.

  • 파이어베이스 콘솔 이용(권장)
  • 안드로이드 스튜디오에서 파이어베이스 어시스턴트(Firebase Assistant)