모바일에서 유용할 Firebase 새소식 - 구글IO 2022

yu minwoo·2022년 6월 5일
1

구글IO

목록 보기
1/6
post-thumbnail

지난 달 5월 구글의 대규모 개발자 컨퍼런스, 구글io가 개막하였다. 이번 구글io에서는 CSS에서의 새로운 신기능을 포함해, LaMDA2 공개, Jetpack, Flutter에 관한 새로운 소식 등 주제만 들어도 아직 보지는 못했지만 흥미를 끌었던 주제들이 많았던 것 같다. 하지만 나는 모바일 앱을 개발하고 있다. 모바일 개발을 하고 있으면 모바일 개발과 관련이 있는 기술을 도사처럼 잘 알고 있어야 하는 만큼, 이번 구글io 중에서 모바일과 가장 관련이 깊은 주제를 가지고 블로그를 적어보려고 한다.

안드로이드, ios, react-native, flutter 등 다양한 모바일 개발 프레임워크를 사용하면서 절때로 뗄수 없는 것이 있다면 나는 파이어베이스를 고를 것이다. 프레임워크를 막론하고 앱을 개발한다고 했을 때 최소 푸시 알림 또는 링크 기능을 사용하고자 한다면 파이어베이스를 빼고 논한다는 것은 올라갈 필요가 없는 산을 오르겠다는 것과 마찬가지가 아닐까? 그래. 다이나믹링크는 그렇다 치자. 안드로이드에서 푸시 알림기능을 구현하려면 2019년 이후부터는 FCM(Firebase Cloud Messaging)을 사용하지 않으면 구현할 방법이 없다. 그렇기 때문에 모바일 개발에 있어서는 파이어베이스를 사용하지 않고 그럴듯한 앱을 개발한다는 것은 불가능할 것이다.

그래서 이번에는 이번 2022년 구글io에서 공개된 파이어베이스의 새로운 기능과 소식들을 정리해보겠다.

Firebase Extensions(Beta 출시)


만약 모바일 앱 또는 웹 앱을 개발하면서 사용자 화면의 크기 또는 사양에 따라 이미지의 크기를 최적화시키거나 사용자가 사용중인 구독을 해제했을 때 사용자를 묶어두도록 할 재미있는 내용이 담긴 이메일을 발송하려고 할 때는 어떻게 해야 할까? 이미지 크기 최적화는 이미 네이버 클라우드에서 제공은 하고 있다. 하지만 이미지 옵티마이저에 원하는 사이즈를 입력하고 자동회전 여부 설정 등 많은 것을 미리 등록해놔야 하고, 경험상 이렇게 옵티마이징 된 이미지가 계속 깨져서 나오는 경우도 있다. 그리고 구독 해제시 이메일을 발송하는 것은 백엔드에서 자체 api를 설계해서 해도 된다. 하지만 이렇게 하면 시간이 오래 걸리거나 미처 발견하지 못한 오류가 발생할 수도 있다.

Firebase Extensions(확장)은 이런 확장기능들을 패키지의 형태로 제공해 사용할 수 있도록 도와준다. 그만큼 검증을 마친 확장 프로그램인 만큼 안심하고 사용할 수 있고 내가 원하는 기능을 빠르게 연결할 수 있다.
하지만 한가지 의문점이 들 것이다. 이렇게 미리 패키지화 된 확장 프로그램을 사용하고 있는데, 나중에 사용자가 엄청나게 늘어나게 된다면 사용 중인 확장 프로그램을 우리가 원하는 방식으로 수정해야 된다면 어떻게 될까? 미리 오류 검증까지 끝낸 확장 프로그램을 내가 원하는 방식으로 수정하게 된다면 그 때부터 무슨 오류가 발생하게 될지 모른다.
이럴 때 Firebase Extensions와 함께 공개한 Firebase Extensions Events(Beta)가 이 문제를 해결해줄 것이다. 이는 Firebase Extensions에서 제공된 확장 프로그램을 내가 원하는 방식으로 사용하고 싶을 때 이 확장 프로그램을 통해 발생할 이벤트를 감지해, 해당 이벤트가 감지되면 원하는 코드를 추가하는 방식으로 원하는 기능을 확장할 수 있도록 도와준다.

Flutter 공식 지원


이번 구글io를 통한 파이어베이스 새소식 관련해서 가장 인상깊었던 부분이 아닐까 싶다. 바로 파이어베이스가 Flutter(플러터)를 공식 지원하면서 플러터용 파이어베이스 플러그인을 출시했다는 소식이었다. 사실 Flutter도 구글에서 개발한 것이기 때문에 예상은 하고 있었다. (하지만 언제 적용해주느냐지....)
사실 플러터가 내가 하고 있는 react-native보다 후발주자기도 하고, 아직 커뮤니티가 작기 때문에 플러터로 개발한 프로젝트에 파이어베이스를 연결하는 방법이 있어도 제대로 연결이 안되는 경우도 있고 잘 되는 경우도 있고 결과가 케바케였던 것 같다.(나도 플러터 경험이 부족하기 때문에 발생한 건지는 모르겠지만....) 그런데 파이어베이스가 플러터를 공식 지원함으로서, 구글을 백방으로 뒤지지 않고 파이어베이스 플러그인 깔고 플러터 공식문서만 보고 파이어베이스를 쉽게 연결할 수 있게 된 것이다. 만약 crashlytics를 연결한다고 하면 플러터 crashlytics 패키지를 설치하고 초기화만 해주면 끝! (하.... 부럽다. 플러터 개발자....).

속마음)
가능성은 없지만 react-native도 공식 지원해주면 소원이 없을 것 같다.

Beta -> 정식 출시한 기능들

올해 구글io를 통해 접한 파이어베이스 관련 소식들 중에서는 작년에 Beta로 세상에 내놓은 기술들의 정식 출시 소식이 좀 있었던 것 같다. 지금부터 이 기술을 소개하려고 한다.

Firebase App Check

App Check는 API를 통한 서버와의 통신과정에서 발생할 수 있는 데이터 유출과 같은 보안문제를 보완할 수 있는 기능이다. 기본적으로 앱, 즉 클라이언트와 서버가 통신을 통해 데이터를 주고받을 때, 클라이언트는 서버와 직접 통신하지 않는다. 이때 API를 사용하게 된다. 클라이언트가 API에 무슨 데이터를 요청하면 이 요청을 받은 API가 서버에 관련 데이터를 요청하고 API가 서버에서 데이터를 제공받으면 이를 클라이언트에 전달하는 방식이다.
이 경우 클라이언트에서 다양한 기능들을 구현하기 위해 수많은 API를 연결하게 된다. 하지만 이 경우에도 피싱, 앱 사칭, 데이터 유출 및 오염과 같은 위험에 노출될 수 밖에 없다. 이 때 App Check는 앱 id와 기기 무결성 등의 정보를 사용해 수신되는 트래픽이 정상적인 경로를 통해 전송되었는지를 체크하여 백엔드 자원과 API를 보호한다. 이는 파이어베이스, 구글 클라우드, 개인 백엔드 서버의 API 엔드포인트에도 적용이 가능하고, 부가적으로 안드로이드의 Play Integrity API와 통합해 사용할 수 있다.

Play Integrity API
안드로이드 단말기에서 위험하고 신뢰할 수 없는 앱과의 통신을 탐지할 수 있는 API. 백엔드 서버 신호를 통해 앱과의 통신을 신뢰할 지 여부를 결정하게 되고, 만약 위험이 탐지될 경우 사용자 마찰을 높여 앱의 위험을 낮출방법을 결정하게됨.

Firebase App Distribution

테스팅은 앱의 오류를 찾아내는 과정이다. 오류를 찾아내면서 가장 좋은 것은 오류를 배포하기 전에 찾아내는 것이다. 파이어베이스의 App Distribution을 사용하면 신뢰할 수 있는 사용자에게 앱을 먼저 배포해, 테스터의 입장에서 앱에 대한 피드백을 받을 수 있다. 또한 이를 crashlytics와 연계해 앱에서 발생하는 오류를 자동으로 파악할 수 있게 된다.

Firebase Performance Monitoring(Real time alerts)

우리가 처음에 앱을 개발할 때는 일단 기능이 정상적으로 동작하도록 설계하는 것이 무엇보다 가장 중요하다. 하지만 기능은 정상 동작을 했지만 사용자가 실제로 앱을 실행했을 때 앱의 실행속도가 겁나 느리다면 그것도 오류라고 봐야 할 것이다. 그리고 나는 다 잡았다고 생각했지만 실제로 미처 성능을 개선하지 못한 부분이 있어 이로 인해 속도가 느려진다면 사용자는 엄청 짜증을 낼 것이다. 이것을 미리 방지하기 위해 파이어베이스에는 Performance Monitoring이라는 기능이 있다. 이를 통해 실제로 사용되고 있는 앱의 실행시간 및 실행속도를 실시간으로 추적해 앱의 전반적인 성능을 측정할 수 있게 된다. 그리고 나중에 앱에 새로운 기능이 추가되어 구성을 변경하게 될 경우 이에 따른 성능의 영향도 확인해볼 수 있는 지표로도 활용할 수 있다.

그리고 이 중에서 성능이 우리가 지정한 임계치를 넘어갔을 때 자동으로 이메일을 발송해 이에 따른 조치를 취할 수 있도록 도와주는 Performance Monitoring Alerts기능이 이번에 드디어 Beta를 종료하고 정식 출시되었다. Beta에서는 앱 시작시간에 대한 알림만 수신받을 수 있었다. 하지만 정식 버전에서는 앱의 가장 중요한 영역에 대해 사용자 정의 코드 추적, 네트워크 요청, 화면 렌더링, 웹 추적에 대한 알림 등 다양한 알림을 수신받을 수 있게 되었고, 이 역시 임계치를 개발자가 설정할 수 있다.

이 외에 이번 프로그램을 통해 애플용 파이어베이스 SDK에 대한 Swift 최적화, 파이어베이스 호스팅 기능 개선 등 파이어베이스에 관한 다양한 새로운 소식들을 접할 수 있었다. 앞으로 다른 구글io 강의도 들어보고, 이번 파이어베이스 외에 모바일에 적용했을 때 정말 유용한 강의가 있으면 최대한 빨리 작성해서 올려야 겠다!!!!!

0개의 댓글