ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Firebase 개인 정리
    firebase 2023. 4. 11. 15:36
    반응형

    Firebase란?

    • Firebase는 14년도에 구글에서 인수한 모바일, 웹 애플리케이션 개발 플랫폼
    • 16년도부터 구글에서 서비스를 대폭 강화한 BaaS(Backend as a Service)
    • 백엔드 기능을 클라우드 서비스 형태로 제공하기 때문에 서버리스 애플리케이션 개발 가능 앱 개발자가 앱 개발(프런트엔드)에만 전념할 수 있음!

    모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API 등 모든 것을 개발해야 한다. FireBase는 이 모든 플랫폼을 프로젝트 구축 시 자동적으로 만들어 준다.

    또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요도 없고 개발하는 동안에는 서버를 구입할 필요도 없다!

     


    FireBase 는 크게 앱 개발, 앱 품질 향상, 비즈니스 성장 도모, 3가지의 기능을 제공한다.

    앱 개발

    1 Cloud Firestore:

    클라우드에 호스팅 되는 NoSQL 데이터베이스를 사용해서 글로벌 규모의 데이터를 저장하고, 사용자와 기기 간에 동기화할 수 있다. Cloud Firestore는 효율적인 데이터 쿼리와 실시간 동기화 및 오프라인 지원을 제공한다.

    2 ML Kit:

    앱에 강력한 머신러닝 기능을 구현할 수 있도록 도와준다.

    3 Cloud 함수:

    서버를 직접 관리하거나 확장할 필요 없이 맞춤 백엔드 코드로 앱을 확장할 수 있다.

    4 인증:

    이메일 및 비밀번호, 타사 제공업체(예: Google 또는 Facebook), 기존 계정 시스템 직접 사용 등의 다양한 인증 방법을 제공한다.

    5 호스팅:

    최신형 웹 앱을 위해 맞춤 제작된 도구로 웹 호스팅을 단순화한다.

    6 Cloud Storage:

    Google의 규모를 활용한 강력하고 단순하며 경제적인 객체 스토리지에 이미지, 오디오, 동영상 등의 사용자 제작 컨텐츠를 저장하고 공유할 수 있다.

    7 실시간 데이터베이스:

    클라이어트 간에 동기화된 상태를 실시간으로 요구하는 모바일 앱을 위해서 효율적이고 대기 시간이 짧은 솔루션. 새 프로젝트를 시작하는 경우 실시간 DB 대신에 Cloud Firestore를 구글에서 권장하고 있다.


    앱 품질 향상

    8 Crashlytics:

    다량의 비정상 종료를 관리 가능한 문제 목록으로 바꾸어 문제 해결 시간을 줄일 수 있다.

    9 성능 모니터링:

    사용자의 기기에서 발생하는 앱 성능 문제를 진단한다.

    10 Test Lab

    Google이 호스팅 하는 가상 기기 및 실제 기기에서 앱에 대해 자동 테스트 및 커스텀 테스를 실행한다.


    비즈니스 성장 도모

    11 인앱 메시지:

    사용자가 앱 내에서 의미 있는 행동을 완료하도록 장려하는 타겟팅 메시지와 상황별 메시지를 이용하여 활성 사용자의 참여를 유도하고 장려한다.

    12 Google Analytics:

    단일 대시보드에서 사용자 기여도와 행동을 분석하여 제품 로드맵에 대한 의사결정의 근거로 활용한다.

    13 예측:

    Google의 머신러닝을 활용하여 앱 제거 또는 지출(또는 다른 전환 이벤트 완료) 가능성이 높은 사용자 세그먼트를 파악한다.

    • ‘사용자 세그먼트’란 데이터의 필터 기능으로, 1차 데이터를 하위 기준으로 분류해서 보는 것을 의미합니다. 예를 들어 앱 사용자 전체의 데이터를 성별, 연령, 국가, 플랫폼 별로 나누어서 보는 것도 세그먼트에 해당합니다. 이 기능을 이용하면 ‘우리 사용자는 누구인가?’ 에서 더 나아가, 앱 서비스의 충성고객, 구매고객, 이탈고객 각각의 특성을 파악하고 이에 맞는 비즈니스 전략을 만들 수 있습니다. 

    14 클라우드 메시징:

    Android, iOS, 웹 등의 플랫폼을 넘나들며 사용자에게 메시지와 알림을 무료로 보낸다.

    15 원격 구성:

    각 사용자에게 앱이 표시되는 방식을 맞춤으로 설정할 수 있다.

    16 동적 링크:

    모바일 성장을 보다 정확히 이해하는 데 필요한 기여도 추적 기능을 제공한다.

    • *Database, Storage, Auth, Analytics까지 제공해주기 때문에 서버 인프라를 고민할 필요가 없다. 필요한 기능만 골라서 쓰면 된다.

    파이어베이스의 장점

    1. 인증 시스템을 지원합니다.
    2. 파이어베이스는 NoSQl 기반의 3세대 데이터베이스 입니다.
    3. 원격으로 앱 환경 상태를 구성하는 원격 구성을 지원합니다.
    4. 콘솔을 제공합니다.
    5. 사용자들의 앱 사용 정보를 Analytics를 통해 제공합니다.

    파이어베이스의 단점

    1. 파이어 베이스 사용시 서버의 응답속도가 느려지는 문제점이 종종 드러납니다.
    2. FireStore(신버전 데이터베이스)나 RTD(구버전 데이터베이스)의 쿼리 구성이 빈약합니다.

    ※ 참고

    https://www.icia.co.kr/community/board/view/2/1/81

     

    파이어베이스란? | 인천일보아카데미

    모바일 서버 개발을 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API 등 모든것을 개발해야 했습니다.  하지만 이러한 모바일 서버 …

    www.icia.co.kr

     


    Firebase 프로젝트와 Google Cloud 간의 관계

    새 Firebase 프로젝트를 만들면 내부적으로 Google Cloud 프로젝트가 생성

    Google Cloud 프로젝트는 데이터, 코드, 구성, 서비스의 가상 컨테이너

    핵심사항: Firebase 프로젝트는 실제로는 사용 설정된 Firebase 관련  구성과 서비스가 추가적으로 포함된 Google Cloud 프로젝트입니다.

    Firebase CLI(명령줄 도구)

    Firebase는 Firebase 호스팅, Firebase용 Cloud Functions, Firebase Extensions와 같은 특정 Firebase 제품을 구성 및 관리하는 Firebase CLI도 제공합니다.

    CLI를 설치하면 전역 firebase 명령어에 액세스할 수 있습니다.

    CLI를 사용하여 로컬 앱 디렉터리를 Firebase 프로젝트에 연결한 다음 Firebase 호스팅 콘텐츠의 새 버전 또는 함수 업데이트를 배포합니다.

     

    ※ 자세한 설치 방법으로는 아래를 참고

    firebase 연결

    프로젝트 번호

    Firebase 프로젝트(및 연결된 Google Cloud 프로젝트)에는 프로젝트 번호가 있습니다. 이 번호는 Google에서 할당하여 전역적으로 고유한 프로젝트의 정규 식별자입니다. 통합을 구성하거나 Firebase, Google 또는 타사 서비스에 API 호출 시 이 식별자를 사용합니다.

    다음 옵션 중 하나를 사용하여 Firebase 프로젝트의 프로젝트 번호를 찾습니다.

    • Firebase Console 사용: settings 프로젝트 설정을 클릭합니다. 상단 창에 프로젝트 번호가 표시됩니다.
    • Firebase CLI 사용: firebase projects:list를 실행합니다. 프로젝트 번호가 계정과 연결된 모든 Firebase 프로젝트와 함께 표시됩니다.
    • Firebase Management REST API 사용: projects.list를 호출합니다. 응답 본문에서는 FirebaseProject 객체에 프로젝트 번호가 포함됩니다.

    프로젝트 ID

    Firebase 프로젝트(및 연결된 Google Cloud 프로젝트)에는 프로젝트 ID가 있습니다.

    이 ID는 모든 Firebase 및 Google Cloud에서 프로젝트의 사용자 정의 고유 식별자입니다.

    Firebase 프로젝트를 만들면 Firebase에서 자동으로 프로젝트에 고유 ID를 할당하지만 개발자가 설정 중에 수정할 수 있습니다.

    일반적으로 이 식별자는 프로젝트를 참조하기 위한 편의성 별칭으로 취급


    firebase에서 가장 많이 사용하는 notifcation

    FCM(Firebase Cloud Messaging) Architecture

    (1) : GUI 나 HTTP/XMPP 프로토콜을 사용할 수 있는 환경이라면 어디서든 메시지를 전송할 수 있다. 파이어베이스 sdk 라이브러리를 사용할 수 있는 환경은 https://firebase.google.com/docs/libraries 에서 확인 가능하다.

    (2) : 클라이언트에게 메시지 전송을 하려면 FCM 백엔드 서버에 클라이언트 정보를 같이 전달해줘야 하는데 토픽과 instance가 필요하다.

    여기서 토픽은 클라이언트 정보를 묶는 topic (pub/sub 모델에서 자주 등장하는 topic 으로 생각해도 좋다) 을 전달해주거나 고유한 token(device 정보를 알 수 있는 uuid 값)을 함께 전달해야 한다.

    (3) : FCM 백엔드 서버는 데이터를(json 혹은 xml) 분석하고 플랫폼에 맞게 전송 서버를 타겟할 것이다.

    (4) : 전송했던 타겟 정보와 일치한 클라이언트는 메시지를 수신한다.

    ※ 참고 : https://swiftymind.tistory.com/135

    LifeCycle

    메시지를 수신할 클라이언트는 자신의 정보를 FCM 서버에 등록

    1. 클라이언트는 자신의 정보( 토픽, 인스턴스) 를 FCM 백엔드 서버에 등록해야 한다.
    2. 메시지를 전송할 주체 (3rd-parry 서버 혹은 모바일) 는 등록된 정보를 획득해야 하며, 해당 정보로 다운스트림 메시지를 전송한다.
    반응형

    댓글

Designed by Tistory.