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
NOTEFirebase 사용은 Flutter 앱의 경우 공식 플러그인 모음(FlutterFire) 중심을 안내합니다.
그 외 Dart 앱은 커뮤니티firebase패키지를 안내합니다.
How
TIPFlutter 앱이라면 “FlutterFire 생태계”에서 필요한 제품(Analytics, Firestore, Functions 등)을 찾아 붙이는 흐름으로 시작합니다.
서버/CLI라면 커뮤니티firebase패키지 또는 Google client APIs 쪽으로 넘어갑니다.
Watch out
WARNING같은 서비스라도 “앱 종류”에 따라 추천되는 라이브러리가 달라집니다.
즉, 코드부터 작성하기 전에 앱 종류를 먼저 확정해야 합니다.
결론: Google 연동은 “앱 종류(Flutter vs 그 외)”를 먼저 나눈 뒤, 그 생태계의 표준 도구로 시작합니다.
단계 2: Google client APIs는 googleapis 또는 래퍼 패키지로 접근한다
Why
NOTEGoogle 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
NOTEGoogle Cloud에서 Dart 서버 실행은 Cloud Run 같은 서버리스 컴퓨팅 솔루션을 추천하는 흐름으로 제시됩니다.
또한 Dart 공식 Docker 이미지(Official Images for Dart)를 활용할 수 있다고 설명합니다.
How
TIP컨테이너 기반 서버라면 Cloud Run을 기준으로 배포를 설계하고, 샘플 서버가 Cloud Run 배포 가능하다고 안내되는 흐름을 참고합니다.
Watch out
WARNINGApp Engine의 Dart 지원은 “불완전”하며, flexible 환경을 요구하고, 0으로 스케일 다운이 되지 않아 새 Dart 서버에는 Cloud Run을 권장한다는 주의가 제시됩니다.
즉, 기본 선택은 Cloud Run으로 두는 편이 안전합니다.
결론: Google Cloud 배포는 Cloud Run을 기본 선택으로 두고, 다른 옵션은 요구사항이 있을 때만 검토합니다.
단계 4: HTTP 서버 대신 “함수”로 배포하고 싶다면 Functions Framework를 고려한다
Why
NOTE모든 백엔드가 장기 실행 서버일 필요는 없습니다.
요청/이벤트를 처리하는 함수 형태가 더 맞는 경우도 있습니다.
What
NOTEFunctions Framework for Dart는 HTTP 요청과 CloudEvents를 처리하는 “함수”를 쉽게 만들도록 돕는 프레임워크로 소개됩니다.
How
TIP“서버 애플리케이션” 대신 “핸들러 함수” 형태로 배포하고 싶다면 Functions Framework를 선택지로 올려 둡니다.
Watch out
WARNINGDart Functions Framework는 커뮤니티 지원 프로젝트임이 함께 제시됩니다.
즉, 운영에서의 지원 범위(유지보수, 자료, 업데이트)를 확인한 뒤 도입해야 합니다.
결론: 서버리스 함수 모델이 맞는 경우 Functions Framework를 고려하되, 커뮤니티 지원 범위를 이해하고 사용합니다.
Footnotes
-
googleapis(googleapis): 여러 Google client API에 대한 생성된 Dart API를 제공하는 패키지다. ↩
공유
이 글이 도움이 되었다면 다른 사람과 공유해주세요!