한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Cloud Functions for Firebase v1.0을 소개합니다
2018년 4월 26일 목요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 서주영(GOOGLE)
님이 참여해 주셨습니다>
게시자:
Chris Oryschak,
제품 관리자
작년에 서버 관리를 신경쓰지 않고도 앱의 백엔드 기능을 개발할 수 있도록
Cloud Functions for Firebase
베타 버전을
출시했습니다
. 이를 통해 자바스크립트 또는 TypeScript로 코드를 작성해서, Google의 클라우드 인프라에 코드를 배포하고, 앱 이벤트에 응답하도록 실행할 수 있습니다. 오늘
Cloud Functions for Firebase SDK 1.0 버전
을 출시하게 되어 매우 기쁩니다. 또한 Functions의 개발, 테스트 및 모니터링을 위해 자주 요청되었던 새로운 기능 개선도 함께 출시합니다.
Cloud Functions for Firebase로 수행할 수 있는 작업
Google Cloud Functions for Firebase SDK를 사용하여 다른 Firebase 제품을 확장할 수 있으며, 앱에서 사용자가 필요로 하는 기능을 제공할 수 있습니다. 우리의 초창기 고객 중 하나이자 Hamilton 앱 제작사인
Posse
는 유명 브로드웨이 연극의 티켓을 얻을 수 있는 기회를 팬들에게 제공하기 위해 서버를 직접 관리하는 부담 없이 추첨 시스템을 만들어야 했습니다. 사용자가 추첨에 들어오면, Functions에 의해 구동되는 로직이 클라우드에서 실행되고 그 결과는 Cloud Firestore에 직접 저장됩니다. 추첨 결과는 당첨된 팬의 Hamilton 모바일 앱에 자동으로 푸시됩니다.
추첨이 개시되면, 몇 분 동안은 앱의 사용량이 갑자기 몇 배로 증가할 수 있기 때문에 Posse는 Hamilton 앱을 확장성있게 만들어야 했습니다. Posse가 아무런 작업을 하지 않아도 Functions는 자동으로 확장되며, 고객은 사용하는 리소스에 대해서만 비용을 지불합니다.
Posse는 티켓 추첨 외에도 다음과 같이 다른 Firebase 제품을 통합하기 위해 Functions을 사용했습니다.
Firebase 인증으로 사용자 프로필 자동 생성
Firebase 클라우드 메시징에서 푸시 알림 보내기
Cloud Storage에서 사용자 사진 크기 자동 조절
HTTP 웹훅 기반 Stripe로 인앱 결제 처리
그 외에도 Functions로 수많은 작업을 수행할 수 있습니다. 더 많은 사용 사례와 샘플 코드를 보려면
GitHub 리포지토리
를 참조하세요.
오늘 출시된 1.0 버전에는 여러분의 피드백이 반영된 여러 새로운 기능이 함께 제공됩니다. 아래에서 자세히 살펴보세요!
모바일 클라이언트 SDK
가장 많았던 요청 중 하나는 클라이언트 앱에서 쉽게 Functions를 직접 호출할 수 있는 방법이었습니다. 이를 위해 iOS, Android 및 웹 클라이언트용 SDK와 함께 새로운 유형의 함수를 추가했습니다. 이 새로운 유형의 함수는 클라이언트 SDK의 HTTPS 요청을 관리하는 Callable HTTPS 함수입니다. Callable HTTPS 함수는 Functions에 대한 HTTPS 요청을 수행하기 위해 작성해야 하는 코드의 양을 상당히 줄여줍니다.
작동 방식은 이렇습니다.
먼저, 클라이언트로부터 데이터 객체를 전달받는 Callable HTTPS 함수를 작성합니다. 이 함수는 또 다른 데이터 객체를 클라이언트에 반환합니다.
그런 다음, 모바일 앱에서 클라이언트 SDK를 사용하여 해당 함수를 호출합니다. 클라이언트 SDK는 HTTPS 연결을 관리하고 입력 및 출력 데이터 객체를 자동으로 직렬화합니다. 이 요청에서 SDK에는 사용자가 로그인한 경우 Firebase 인증에서 가져온 사용자 ID 토큰이 포함됩니다. 또한 Firebase 클라우드 메시징에 사용되는 인스턴스 ID 토큰도 포함됩니다.
자세한 내용은 해당
문서
를 참조하세요!
더욱 쉬워진 단위 테스트
Functions 셸
은 함수와 로컬로 상호작용하는 기능을 제공하지만, CI 시스템에서 실행되는 단위 테스트를 작성하기 위한 최적의 방법은 아닙니다. 이것이 바로 우리가 단위 테스트 작성을 단순화하는 새로운
firebase-functions-test
npm 모듈을 출시하는 이유입니다. firebase-functions-test 모듈은 필요한 설정과 해체를 처리해 주므로, 테스트 데이터를 쉽게 생성할 수 있습니다. 이제 부작용이 없이도 완전한 오프라인 테스트를 생성할 수 있으며, 개발중인 Firebase 프로젝트와 상호작용하는 테스트를 작성할 수 있습니다. 이 경우 데이터베이스 작성과 같은 작업이 성공적으로 진행되는지를 관찰할 수 있습니다.
함수 에뮬레이션 공식 지원
지난해 가을 우리는 Firebase CLI를 통해 "firebase serve --only functions" 명령과 "firebase experimental:functions:shell" 명령을 사용하여
함수를 로컬로 에뮬레이션
하는 기능을 소개했습니다. 실험적이었던 이 기능이 이제는 공식적으로 지원됩니다. "firebase experimental:functions:shell"은 "firebase functions:shell"로 이름이 바뀌었고, "firebase serve"는 "--only" 플래그가 필요 없이 기본적으로 모든 HTTPS 함수를 에뮬레이션합니다.
향상된 모니터링 도구
함수를 배포한 후 다음과 같은 의문이 생길 수도 있습니다. "내 함수에 무슨 일이 생겼는지? 내 앱이 얼마나 잘 동작하고 있는지? 문제는 없는지?" 이번 버전 부터는새로운 상태 모니터를 통해 함수에서 발생하는 오류를 확인할 수 있습니다.
또한 다음과 같이 함수 성능, 지연 시간 및 메모리 사용량을 추적할 수 있습니다.
API 업데이트
이번 1.0 버전에서는 Firebase SDK로 Cloud Functions를 작성하는 API가 변경되었습니다.
즉, 새로운 SDK로 업그레이드하려면 베타 버전에서 이미 작성했던 코드를 일부 변경해야 합니다
. 하지만 이미 배포한 함수에는 어떤 영향도 없으니 걱정하지 마세요. 어떤 내용이 변경되었는지 새 형식을 어떻게 적용하는지 알아보려면
마이그레이션 가이드
를 참조하세요!
Cloud Functions for Firebase 시작하기
Cloud Functions을 위한 Firebase SDK를 방금 시작했다면
단계별 코드랩
을 따라 해보고
문서
를 읽어보세요. 또한 TypeScript를 권장 프로그래밍 언어로 사용하도록 설정하는 데 도움이 되는 동영상 튜토리얼도 있습니다.
이러한 새 기능들이 도움이 되길 바랍니다. 참고: Cloud Functions를 위한 Firebase SDK는 정식으로 배포가 되었지만,Cloud Functions 플랫폼은 아직 베타 버전이므로 추가 업데이트를 계속 지켜봐 주십시오!
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed