Dart 튜토리얼 25편: Google API 연동(Firebase·googleapis·Google Cloud)

요약#

핵심 요지#

  • 문제 정의: “Google API 연동”은 범위가 넓어서, 어떤 패키지를 써야 하는지/어디서 실행해야 하는지부터 막히기 쉽다.
  • 핵심 주장: Dart는 (1) Firebase는 FlutterFire 중심, (2) Google client APIs는 googleapis1 중심, (3) 서버 실행은 Cloud Run 같은 서버리스 컨테이너 실행 환경을 추천하는 흐름이 제시된다.
  • 주요 근거: Flutter 앱은 FlutterFire로, 서버 앱은 googleapis와 샘플/래퍼 패키지 검색(예: dependency:googleapis) 안내가 제시된다.
  • 실무 기준: 먼저 “내 앱이 Flutter인가/서버인가”를 정하고, 다음으로 “직접 생성된 API(googleapis) vs 더 쉬운 래퍼 패키지”를 선택한 뒤, 배포는 Cloud Run 또는 Functions Framework로 단순화한다.

문서가 설명하는 범위#

  • Firebase 사용 시 Flutter 앱/그 외 Dart 앱의 선택지
  • googleapis 패키지와 래퍼 패키지(예: gsheets) 접근 방식
  • Google Cloud에서 Dart 서버를 운영할 때 추천되는 솔루션(Cloud Run, Functions Framework)과 App Engine 관련 주의점

읽는 시간: 15분 | 난이도: 초급


참고 자료#


문제 상황#

API 연동은 “코드 몇 줄” 문제가 아니라, 실행 환경/인증/배포까지 연결되는 문제입니다.
특히 Google 계열 서비스는 Firebase와 Google Cloud가 섞여 있고, API도 매우 많아서 입문자가 방향을 잡기 어렵습니다.
그래서 이 글은 “어떤 앱에서 어떤 선택을 하는지”를 먼저 고정합니다.


해결 방법#

단계 1: 먼저 “Flutter 앱인지, 그 외 Dart 앱인지”를 구분한다#

Why#

NOTE

같은 Firebase라도 Flutter 앱과 서버/CLI 앱의 생태계가 다릅니다.
따라서 시작점(선택지)을 다르게 잡아야 합니다.

What#

NOTE

Firebase 사용은 Flutter 앱의 경우 공식 플러그인 모음(FlutterFire) 중심을 안내합니다.
그 외 Dart 앱은 커뮤니티 firebase 패키지를 안내합니다.

How#

TIP

Flutter 앱이라면 “FlutterFire 생태계”에서 필요한 제품(Analytics, Firestore, Functions 등)을 찾아 붙이는 흐름으로 시작합니다.
서버/CLI라면 커뮤니티 firebase 패키지 또는 Google client APIs 쪽으로 넘어갑니다.

Watch out#

WARNING

같은 서비스라도 “앱 종류”에 따라 추천되는 라이브러리가 달라집니다.
즉, 코드부터 작성하기 전에 앱 종류를 먼저 확정해야 합니다.

결론: Google 연동은 “앱 종류(Flutter vs 그 외)”를 먼저 나눈 뒤, 그 생태계의 표준 도구로 시작합니다.


단계 2: Google client APIs는 googleapis 또는 래퍼 패키지로 접근한다#

Why#

NOTE

Google API는 종류가 많고, 인증/요청/응답 구조도 제품별로 다릅니다.
생성된 클라이언트를 쓰면 API 범위를 넓게 커버할 수 있습니다.

What#

NOTE

googleapis 패키지는 180개 이상의 Google client APIs에 대한 생성된 API를 제공한다고 안내됩니다.
또한 일부 API는 더 사용하기 쉬운 “Dart 래퍼” 패키지가 있을 수 있다고 설명됩니다.

How#

TIP

서버/CLI에서 Google APIs를 쓰고 싶다면, 먼저 googleapis를 기준으로 시작합니다.
그리고 특정 API(예: Google Sheets)는 gsheets 같은 래퍼 패키지가 있을 수 있으므로, “의존성으로 googleapis를 사용하는 패키지”를 검색해 래퍼 후보를 찾는 방식이 제시됩니다.

Watch out#

WARNING

래퍼 패키지를 쓰면 편해질 수 있지만, 결국 내부에서는 googleapis 기반이거나 API 변경 영향을 받을 수 있습니다.
따라서 프로젝트 성격에 따라 “생성된 API를 직접 쓰기”와 “래퍼 쓰기”의 기준을 정해야 합니다.

결론: Google client APIs는 googleapis를 기준으로 시작하되, 상황에 따라 래퍼 패키지를 선택합니다.


단계 3: Google Cloud 배포는 Cloud Run 같은 서버리스 컨테이너 실행을 우선 고려한다#

Why#

NOTE

서버 운영에서 가장 큰 비용은 “서버를 직접 관리하는 비용”입니다.
그래서 인프라 관리를 줄이는 서버리스 실행 환경이 유리할 수 있습니다.

What#

NOTE

Google Cloud에서 Dart 서버 실행은 Cloud Run 같은 서버리스 컴퓨팅 솔루션을 추천하는 흐름으로 제시됩니다.
또한 Dart 공식 Docker 이미지(Official Images for Dart)를 활용할 수 있다고 설명합니다.

How#

TIP

컨테이너 기반 서버라면 Cloud Run을 기준으로 배포를 설계하고, 샘플 서버가 Cloud Run 배포 가능하다고 안내되는 흐름을 참고합니다.

Watch out#

WARNING

App Engine의 Dart 지원은 “불완전”하며, flexible 환경을 요구하고, 0으로 스케일 다운이 되지 않아 새 Dart 서버에는 Cloud Run을 권장한다는 주의가 제시됩니다.
즉, 기본 선택은 Cloud Run으로 두는 편이 안전합니다.

결론: Google Cloud 배포는 Cloud Run을 기본 선택으로 두고, 다른 옵션은 요구사항이 있을 때만 검토합니다.


단계 4: HTTP 서버 대신 “함수”로 배포하고 싶다면 Functions Framework를 고려한다#

Why#

NOTE

모든 백엔드가 장기 실행 서버일 필요는 없습니다.
요청/이벤트를 처리하는 함수 형태가 더 맞는 경우도 있습니다.

What#

NOTE

Functions Framework for Dart는 HTTP 요청과 CloudEvents를 처리하는 “함수”를 쉽게 만들도록 돕는 프레임워크로 소개됩니다.

How#

TIP

“서버 애플리케이션” 대신 “핸들러 함수” 형태로 배포하고 싶다면 Functions Framework를 선택지로 올려 둡니다.

Watch out#

WARNING

Dart Functions Framework는 커뮤니티 지원 프로젝트임이 함께 제시됩니다.
즉, 운영에서의 지원 범위(유지보수, 자료, 업데이트)를 확인한 뒤 도입해야 합니다.

결론: 서버리스 함수 모델이 맞는 경우 Functions Framework를 고려하되, 커뮤니티 지원 범위를 이해하고 사용합니다.

Footnotes#

  1. googleapis(googleapis): 여러 Google client API에 대한 생성된 Dart API를 제공하는 패키지다.

공유

이 글이 도움이 되었다면 다른 사람과 공유해주세요!

Dart 튜토리얼 25편: Google API 연동(Firebase·googleapis·Google Cloud)
https://moodturnpost.net/posts/dart/dart-google-apis-and-cloud/
작성자
Moodturn
게시일
2026-01-04
Moodturn

목차