본문 바로가기
카테고리 없음

Firebase를 활용한 모바일 앱 백엔드 구축하기

by 티끌코딩 2025. 3. 4.
반응형
Firebase를 활용한 모바일 앱 백엔드 구축하기

Firebase는 Google에서 제공하는 강력한 클라우드 기반 백엔드 서비스입니다. 이 튜토리얼에서는 Firebase를 활용하여 모바일 앱 백엔드를 구축하는 방법을 설명합니다.

1. Firebase란?

Firebase는 모바일 및 웹 애플리케이션 개발을 위한 클라우드 기반 플랫폼입니다. 주요 기능은 다음과 같습니다.

  • Firebase Authentication: 사용자 인증 (이메일, Google 로그인 등)
  • Firestore Database: 실시간 데이터베이스
  • Firebase Storage: 파일 및 이미지 저장
  • Cloud Functions: 서버리스 백엔드 기능

공식 사이트: Firebase 공식 사이트

2. Firebase 프로젝트 생성

Firebase를 사용하려면 Firebase Console에서 프로젝트를 생성해야 합니다.

  1. Firebase Console에 접속
  2. 새 프로젝트 생성
  3. Firebase SDK를 앱에 추가

3. Firebase 인증 (Authentication) 설정

Firebase에서 이메일 기반 로그인을 설정하는 방법을 알아봅니다.

1) Firebase 인증 라이브러리 추가


        dependencies {
            implementation 'com.google.firebase:firebase-auth:21.0.1'
        }
        

2) 로그인 구현 (Kotlin)


        import com.google.firebase.auth.FirebaseAuth

        val auth = FirebaseAuth.getInstance()

        fun signIn(email: String, password: String) {
            auth.signInWithEmailAndPassword(email, password)
                .addOnCompleteListener { task ->
                    if (task.isSuccessful) {
                        println("로그인 성공")
                    } else {
                        println("로그인 실패: ${task.exception?.message}")
                    }
                }
        }
        

4. Firestore 데이터베이스 설정

Firestore는 NoSQL 기반 실시간 데이터베이스입니다.

1) Firestore 라이브러리 추가


        dependencies {
            implementation 'com.google.firebase:firebase-firestore:24.0.1'
        }
        

2) 데이터 추가 및 가져오기


        import com.google.firebase.firestore.FirebaseFirestore

        val db = FirebaseFirestore.getInstance()

        fun addUser() {
            val user = hashMapOf("name" to "김철수", "age" to 25)

            db.collection("users")
                .add(user)
                .addOnSuccessListener { println("사용자 추가 성공") }
                .addOnFailureListener { e -> println("오류: $e") }
        }

        fun getUsers() {
            db.collection("users")
                .get()
                .addOnSuccessListener { result ->
                    for (document in result) {
                        println("${document.id} => ${document.data}")
                    }
                }
                .addOnFailureListener { e -> println("오류: $e") }
        }
        

5. Firebase Cloud Functions 설정

Firebase Cloud Functions를 사용하면 서버 없이 백엔드 로직을 실행할 수 있습니다.

1) Firebase CLI 설치


        npm install -g firebase-tools
        firebase login
        firebase init functions
        

2) 클라우드 함수 작성 (Node.js)


        const functions = require("firebase-functions");

        exports.helloWorld = functions.https.onRequest((req, res) => {
            res.send("Hello from Firebase!");
        });
        

3) 배포


        firebase deploy --only functions
        

6. Firebase Storage 사용

Firebase Storage를 사용하여 이미지 및 파일을 업로드할 수 있습니다.

1) Storage 라이브러리 추가


        dependencies {
            implementation 'com.google.firebase:firebase-storage:20.0.1'
        }
        

2) 이미지 업로드 (Kotlin)


        import com.google.firebase.storage.FirebaseStorage
        import java.io.File

        val storage = FirebaseStorage.getInstance()
        val storageRef = storage.reference

        fun uploadImage(file: File) {
            val fileRef = storageRef.child("images/${file.name}")
            fileRef.putFile(Uri.fromFile(file))
                .addOnSuccessListener { println("업로드 성공") }
                .addOnFailureListener { e -> println("업로드 실패: $e") }
        }
        

7. Firebase의 장점

  • 빠른 개발: 백엔드 코딩 없이 데이터베이스, 인증, 서버리스 기능 활용 가능
  • 실시간 동기화: Firestore 및 Realtime Database를 통해 데이터를 즉시 반영
  • 확장성: Google 클라우드 기반으로 대규모 서비스 구축 가능

8. 결론

Firebase는 모바일 앱 백엔드 구축을 빠르고 쉽게 도와주는 강력한 솔루션입니다. 인증, 데이터베이스, 스토리지, 서버리스 기능까지 한 번에 해결할 수 있어 많은 개발자들이 선호하는 플랫폼입니다.

반응형