ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Firebase가 뭐죠..?
    Backend/Firebase 2022. 10. 3. 21:27

    BaaS(Backend as a Service)

     

    모바일 환경에서 서버를 개발하기위해서는 회원인증, 데이터베이스, 푸시알림, 스토리지, API등 많은것들을 개발해야한다.
    이런 복잡한 과정들을 프로젝트 구축시에 자동적으로 만들어주는것이 Firebase이다.

     

    그렇다면 Firebase를 사용할 때 얻을 수 있는 장점은 무엇이 있을까?

     

    1. 인증시스템

       인증의 경우에는 회원관리와 로그인 부분을 설명한다. 직접 서버로 개발하는 경우에는 복잡한 항목 중 하나인데 가장 복잡한 이유중 하나는 사용자 인증의 세션처리를 해야하기 때문이고, DB 접근 가능성에대한 보안처리, 아이디 비밀번호 찾기 변경등 많은 것들을 구현해야한다. 하지만 FireBase는 앞서 말한 모든것을 제공하고있다.

    2. NOSQL 기반 3세대 데이터베이스
       
       NoSQL기반 데이터베이스의 Document DB는, 현재 많이 사용되는 오라클이나 MySQL 같은 관계형 데이터베이스보다 빠르고 간편하다. 또한 FireBase는 다른 데이터 베이스들과 다르게 RTSP(Real Time Protocol) 방식의 데이터베이스를 지원하고있다. RTSP는 실시간으로 데이터들을 전송해주는 방식이며, 이 경우 소켓 기반 서버를 만들어 통신하는 것 보다 코드의 양이 많이 즐게된다.

    3. 원격 구성 지원

       원격 구성이란 원격으로 앱의 환경을 관리 구성하는 것을 말한다. 앱의 배경화면 테마 혹은 폰트를 바꾸거나, 업데이트창과 알림창을 띄우고 앱의 환경을 원격으로 구성할 때 사용하는 기능이다.


    4. 콘솔 제공

       콘솔이란 서버 관리자 페이지이다. 앱의 서버를 만들게 되면 리눅스, FTP, Mysql(데이터베이스), Node.JS 서버 혹은 Spring 서버 등 에서 단순 API만 구성하는 것이 아닌 이 모든것을 관리 할 수 있는 관리자 페이지가 필요하다. 리눅스나 데이터베이스, 서버를 다룰 줄 안다면 관리자 페이지가 필수로 필요하다고는 할 수 없지만, 그렇지 않은 경우에는 접근 보안과 관리를 위해서 관리자 페이지가 필요하다. Firebase의 경우에는 콘솔을 제공함으로써 앱의 관리자 페이지 또한 지원을 해준다.


    5. 호스팅

       파이어베이스 호스팅을 사용하면 단일 페이지 웹앱 또는 프로그레시브 웹앱을 간편하게 배포 가능하다. 이는 배포된 각 사이트에 대하여 SSL/TLS 인증서를 자동으로 준비하여 구성한다. 도메인 또한 손쉽게 연결할 수 있다.

    6. 파이어베이스용 클라우드 함수

       클라우드 함수는 Node.js 환경에서 실행되는 자바스크립트 함수이다. 이 함수는 특정한 이벤트가 발생할 때만 실행된다.실시간 데이터베이스의 데이터 변경 인증을 통한 신규 사용자 가입, Analytics의 전환 이벤트에 대해 트리거되는 함수를 만들 수 있다.


    7. Analytics

       Analytics는 다수의 유저가 앱을 어떻게 사용하고있는지에 대한 통계정보를 가지고있다.추적 가능한 정보로는 앱의 현재 접속자, 오류통계, 사용자 유지율, 고객들의 앱 업데이트 상태, 사용자들이 특정 페이지에 머문 시간, 이벤트 등등을 통계 낼 수 있다. 앞선 통계들을 통해서 사용자가 어떤 페이지에 흥미를 갖고 봤으며 어떤 페이지에서 흥미를 잃었는지 등등 마케팅 적으로도 접근 할 수 있는 장점이 있다.

    단점에 대해서도 알아보고 넘어가려한다.

    1. 서버가 해외에 있기 때문에 종종 처리 속도의 지연이 발생하기도 한다.
    2. Firebase에서 제공하는 DB인 FireStore나 RealTimeDatabase 모두 쿼리가 빈약하다. 이 말은 즉 데이터 검색이 어렵다는 말이다..(SQL에서는 OR 혹은 LIKE등의 쿼리문을 통해 데이터검색이 가능하지만 FireStore나 RealTimeDatabase는 이것들을 제공하지 않는다.)

    처음 Server를 구축해보는 입장에서  Server 개발에 대한 비중을 낮추고 싶다면, Firebase라는 간편한 Framework를 시도해 보는것은 어떨까?

Designed by Tistory.