Welcome

mwryu.devdocs

배운 것을 문서로 남기는 개발 노트. 기술 정리부터 삽질 기록까지, mwryu의 devdocs입니다.

기술/Google IO

생성형 AI 기능 구축을 위한 Firebase의 새로운 기능 - 구글IO 2024

생성형 AI 기능 구축을 위한 Firebase의 새로운 기능 - 구글IO 2024 대표 이미지
반응형

안녕하세요.

 

오랜만에 작성하는 구글 I/O 포스트입니다. 작년까지만 해도 Firebase 새 소식만 정리해서 올렸지만, 올해부터는 Firebase를 포함해 제가 예전부터 관심이 많았던 Flutter, Jetpack Compose, Android 등 다양한 주제로 포스트를 작성하려고 합니다.

 

첫 번째 순서는 제가 2022년 구글 I/O부터 매년 작성하고 있는 주제, 바로 Firebase입니다.

1. Firebase 로고 변경

올해 강의에서는 Firebase 로고 리뉴얼 소식을 알려 왔습니다.

 

새로 바뀐 Firebase 로고

 

저는 이 로고를 보고 기존 로고보다 더 예뻐졌다는 느낌을 받았는데요, 이번 강연에서 설명한 로고 변경의 계기는 요즘 구글을 포함해 전 세계적으로 많이 밀고 있는 AI, 그중에서도 생성형 AI에 더욱 집중하겠다는 의미를 담았다고 합니다.

2. Vertex AI for Firebase

Vertex AI for Firebase 소개 이미지

 

Vertex AI는 Google Cloud에서 제공하는 생성형 AI 플랫폼입니다. 하드웨어(GPU, 메모리 등)와 소프트웨어(파이프라인 등)를 모두 제공하기 때문에, 데이터 과학자나 ML 개발자가 ML 모델 개발과 배포를 간편하게 할 수 있도록 도와줍니다.

 

이 Vertex AI를 Firebase에서 공식 지원한다고 발표하였습니다. 사용할 수 있는 언어로는 JavaScript, Dart, Swift, Kotlin 등이 있는데요, Firebase에 연결된 모바일 및 웹 애플리케이션에서 Vertex AI의 기능을 활용할 수 있다는 것이 특징이라고 합니다.

 

또한 Vertex AI 기능은 Firebase 콘솔에서 설정만 해 주면 Firebase App Check와 결합해서 쓸 수 있다고 합니다.

 

Firebase의 Vertex AI는 지난달 Cloud Next에서 비공개 미리보기로 공개됐고, 현재는 공개 미리보기로 전환된 상태이며 올가을쯤 정식 지원으로 전환할 예정이라고 합니다.

3. Checks

이 서비스는 올해 구글 I/O 개발자 키노트에서 공개된 내용인데요, Firebase 서비스는 아니지만 이번 강의에서 언급된 내용이라 간단히만 다루겠습니다.

 

Google Checks 소개 화면

 

Checks는 구글이 제공하는 AI 기반 개인정보 보호 플랫폼입니다. 앱 개발자가 앱의 데이터 공유 패턴을 간단하게 모니터링하고 개인정보 보호 규정을 계속 준수하도록 돕는 것을 목표로 하고 있습니다.

 

이 기능을 쓰려면 구글 계정으로 Checks에 로그인하고 Google Play Console에서 앱을 연결하면 됩니다.

해당 내용은 Gemini가 작성한 내용입니다.

4. Firestore 업데이트

4-1. Firestore Vector Search

이 내용은 LLM과 관련된 내용이라 저도 잘 몰라서, 강의 내용을 번역한 것과 인터넷에서 찾은 정보를 섞어 최소한의 내용만 작성하였습니다.

 

기존 LLM의 단점으로 지적되는 점은 "사실관계 오류 가능성"과 "맥락 이해의 한계"입니다. 이 두 문제를 개선하는 데 초점을 맞춰 새로 나온 것이 바로 검색 증강 생성 기법, RAG(Retrieval-Augmented Generation)입니다.

 

RAG는 주어진 질문을 벡터 형태로 인코딩하는 것이 특징인데, 이번 Firestore 업데이트에서는 RAG 기법에서 쓰는 토픽과 벡터값을 문서 형태로 저장할 수 있는 기능이 발표되었습니다.

4-2. 그 밖의 업데이트 사항

Aggregations (집계 기능)

모든 문서를 하나하나 읽지 않고도 문서 개수를 세거나 필드값의 합계, 평균을 얻을 수 있도록 업데이트되었습니다.

쿼리 안에서 OR 조건 사용 가능

단일 쿼리의 여러 필드에 범위 조건 사용 가능

한 프로젝트 안에 여러 개의 데이터베이스 추가 가능

Point-in-time 복구 기능

코딩 실수나 사용자 오류로부터 데이터를 보호할 수 있는 기능

Scheduled Backups

설정한 주기에 따라 전체 데이터베이스를 자동으로 백업하는 기능

5. Firebase Data Connect (비공개 미리보기)

Firebase Data Connect 소개 이미지

 

사실 이번 강의에서 가장 반응이 뜨거웠던 발표가 아닐까 싶습니다!!!

 

Firebase를 어느 정도 아시는 분은 잘 아시겠지만, Firebase의 Firestore, Realtime Database 같은 데이터베이스는 NoSQL 기반의 비관계형 데이터베이스입니다. 하지만 개발하다 보면 MySQL 같은 관계형 데이터베이스가 필요할 때도 있죠.

 

Firebase Data Connect는 Google Cloud SQL의 PostgreSQL을 Firebase를 통해 앱과 연결하는 새로운 서비스입니다!!

 

Data Connect는 개발자가 정의한 테이블 구조를 바탕으로 다음 항목을 만들어 줍니다.

 

  • Cloud SQL의 PostgreSQL DB
  • Google 인프라에서 실행되는 API 서버
  • 모바일 및 웹 앱에서 쓸 수 있는 SDK

Data Connect가 PostgreSQL DB, API 서버, SDK를 생성하는 구조도

 

예를 들어 다음과 같이 테이블 구조를 정의한 GraphQL 스키마가 있다고 하겠습니다.

type User @table {
  first: String!
  last: String!
  email: String!
  country: String!
}

type Order @table {
  customer: User!
  total: Float!
  name: String!
}

이렇게 테이블이 추가되거나, 테이블 안의 컬럼 이름이 바뀌거나, 새 테이블을 만들어 기존 테이블과 관계를 맺는 경우, Data Connect는 Cloud SQL의 PostgreSQL에서 데이터베이스 마이그레이션을 진행합니다. 마이그레이션이 끝나면 구글 인프라에서 실행되는 API 서버를 업데이트하고, 마지막으로 모바일이나 웹에서 쓸 새 SDK를 생성하는 방식으로 동작합니다.

 

이 동작은 모두 자동으로 이루어지고, 백엔드와 프론트엔드에도 자동으로 동기화됩니다.

 

현재 Data Connect는 Android, iOS, Web 환경에서 동작하고, 특히 안정적인 정적 타입 분석이 이루어진다는 것이 특징입니다.

6. Firebase Genkit (Beta)

Firebase Genkit 소개 이미지

 

Firebase Genkit은 프로덕션에 바로 쓸 수 있는 AI 기반 앱을 쉽고 익숙한 방법으로 빌드하고 배포하도록 돕는 오픈소스 프레임워크입니다.

 

Genkit을 쓰면 개발자가 가진 데이터를 바탕으로 질문에 답하고, AI가 내린 결정에 따라 액션을 수행하는 앱을 만들 수 있습니다.

 

현재 이 기능은 TypeScript 기반 백엔드 개발만 지원하는데, 곧 Go도 지원할 예정이라고 합니다.

 

Genkit의 대표적인 특징을 몇 가지 정리하자면, 인기 있는 여러 AI 모델을 쓰면서 모델마다 맞춤 구성을 지정할 수 있습니다. 그리고 출력은 강타입(strongly typed) 데이터로 생성되어, 결과를 구조화된 안전한 객체로 받아 앱에 전달할 수 있다고 합니다.

 

다음으로 Genkit은 텍스트, 이미지, 동영상 등 다양한 방식으로 입력값을 줄 수 있는 멀티모달 프롬프트를 제공합니다.

7. Gemini in Firebase

이제 우리가 만든 Firebase 프로젝트에 Gemini 채팅창이 추가되었습니다.

 

Firebase 콘솔의 Gemini 입력창

실제 Firebase 프로젝트 안의 Gemini 입력창입니다.

 

이번 강의에서 Firebase 프로젝트 콘솔의 Gemini 입력창 기능을 공식 지원한다고 발표했습니다. 프로젝트별 Gemini는 개별 Firebase 프로젝트를 포함한 여러 문서를 학습해서 Firebase 서비스와 기능에 대한 질의응답은 물론, 우리가 개발한 앱에 Firebase 프로젝트를 쉽게 연결할 수 있도록 관련 코드 스니펫도 제공할 수 있다고 합니다. 심지어 Crashlytics와 연동해 앱에서 발생한 에러를 이해하고 어떻게 고칠 수 있는지 예시 코드로 알려 주고, 그 밖의 트러블슈팅도 지원한다고 합니다.

 

하지만 안타깝게도 이 기능은 올해 7월 30일까지만 프로모션으로 무료 제공하고, 그 이후에는 요금제에 따라 부분 유료로 전환할 계획이라고 합니다. 아직 공식 홈페이지에 Gemini 가격은 정해지지 않았지만, 제 예상으로는 무료 요금제의 경우 무료 호출 횟수를 제한하는 방식으로 차등을 둘 것 같습니다.

8. Gemini in Crashlytics

위에서 말씀드린 Firebase 프로젝트 콘솔의 Gemini 입력창 외에, Crashlytics 안에도 별도의 Gemini 기능이 추가되었습니다.

 

모바일 개발을 기준으로 생각해 보면, 앱 내부에서 발생하는 오류를 감지하려고 Crashlytics를 연결합니다. 그리고 앱에서 오류가 발생하면 Firebase 콘솔로 오류 데이터가 알아서 전송되죠.

 

안드로이드나 iOS 네이티브로 개발한 앱은 에러를 쉽게 파악할 수 있지만, React Native나 Flutter 같은 크로스 플랫폼 프레임워크로 개발한 앱은 제 경험상 Crashlytics에서 감지된 오류를 바로 이해하기 어려웠습니다. 그래서 오류 내용을 복사해서 구글이나 GPT, Gemini에 검색하는 번거로움이 있었죠.

 

이번에 Crashlytics에서 감지된 개별 오류를 Gemini가 분석해서 무엇이 문제인지 알려 주고 간단한 해결책을 제시하는 기능이 추가되었습니다.

 

Crashlytics에서 아무 에러나 눌러 상세 화면으로 들어가면, 아래 사진처럼 "AI 인사이트 생성" 버튼이 있는 영역을 확인할 수 있습니다.

 

Crashlytics 에러 상세 화면의 AI 인사이트 생성 버튼

 

"AI 인사이트 생성" 버튼을 누르면 아래와 같이 간단한 해결책을 담은 Gemini 분석 결과를 보여 줍니다.

 

Crashlytics에서 Gemini가 생성한 AI 인사이트 결과

 

직접 테스트해 본 결과, 아직은 결과가 영어로만 나오는 것 같습니다. (앞으로도 영어로만 나올 수도 있고요.) 그리고 이 기능도 위에서 말씀드린 것처럼 7월 30일 이후에는 부분 유료로 전환될 가능성을 배제할 수 없어 보입니다.

9. Firebase App Hosting (공개 미리보기)

Firebase App Hosting 소개 이미지

 

이번 강의 맨 마지막에 공개된 Firebase App Hosting은 기존 프레임워크 지원과 더불어 GitHub 통합, 그리고 Authentication, Cloud Firestore, Firebase용 Vertex AI 같은 다른 Firebase 서비스와의 통합을 제공해서 Next.js와 Angular 앱을 쉽게 호스팅하도록 돕는 서비스입니다.

 

그리고 Next.js나 Angular를 쓰는 경우, 이를 호스팅하기 위한 인프라를 자동으로 구축해 준다고 합니다.

 

솔직히 저는 App Hosting이 기존 Firebase Hosting과 어떤 차이가 있는지 잘 모르겠습니다. 이 부분은 저도 더 찾아봐야 할 것 같습니다.

10. 마지막으로

이번 블로그에서는 생성형 AI 기능 구축과 관련한 Firebase의 새로운 기능에 대한 구글 I/O 강의 내용을 정리하였습니다. 제 기준에서 정리할 만하다고 생각한 내용만 담았기 때문에 강의의 모든 내용이 포함되지는 않았습니다.

 

혹시 잘못 작성된 내용이 있으면 댓글로 알려 주시면 확인 후 수정하겠습니다.

 

감사합니다.

강의 영상 (YouTube)

영상이 보이지 않으면 유튜브에서 보기를 눌러 주세요.

자료 출처

 

이 글은 2024년 5월 19일 velog에 작성했던 글을 티스토리로 옮긴 것입니다.

[Velog] 생성형 AI 기능 구축을 위한 Firebase의 새로운 기능 - 구글IO 2024

반응형

Last updated 2026. 10. 14.