본문 바로가기
FireBase

FireBase란?

by 봄석 2019. 1. 7.

FireBase란?

모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API 등 모든것을 개발해야 했습니다. 하지만 모바일 서버는 이런 모든 것을 구성하는데 구성하는 범위가 매번 새로운 앱들과 차이 나지 않기 때문에 리눅스를 설치하고, FTP를 설치하고, 데이터베이스를 설치하고, 노드 서버나 스프링 서버를 올리고, 방화벽을 올리고, 도메인을 구입하는 등 이런 반복적인 작업을 앱 개발 할 대마다 하는 것은 엄청난 시간낭비입니다.


FireBase는 이 모든 플렛폼을 프로젝트 구축 시 자동적으로 만들어 줍니다. 또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요도 없고 개발하는 동안에는 서버를 구입할 필요도 없습니다. 


FireBase라는 플랫폼으로 프론트엔드 개발자와 백엔드 개발의 경계가 모호해 질 것이며

적은 비용으로 매우 좋은 앱을 만들 수 있을것이라 기대됩니다.



FireBase의 대표적인 기능

인증, 데이터베이스, 스토리지, 원격 구성, 푸시 알람이 있다


FireBase의 장점

1) 인증 시스템을 지원합니다. 인증은 Firebase 에서 로그인을 담당하는 부분입니다. 

로그인을 담당하는 부분은 직접 서버로 개발할 경우 엄청나게 복잡한데 , 그 이유는 인증된 사용자인지 확인하는 세션처리에서 그 세션으로 데이터베이스, 저장소에 접근해도 문제가 없는지 확인하는 보안처리, 비밀번호 찾기, 아이디 찾기, 비밀번호 바꾸기, 이메일 인증 등 복잡한 것을 구축해야 합니다.  하지만 FireBase는 이 모든것들을 지원합니다!


2) FireBase는 NoSQl 기반의 3세대 데이터베이스 입니다. 현재 많이 사용되는 오라클이나, MySQL 같은 관계형 데이터베이스보다,  FireBase는 Document 형식의 빠르고 간편한 NoSQL기반의 데이터베이스를 도입했습니다. 또한  FireBase는 다른 데이터 베이스 들과 다르게 RTSP(Real Time Stream Protocol) 방식의 데이터베이스를 지원하고 있습니다. 

RTSP는 말그대로 실시간으로 데이터들을 전송해주는 방식입니다.  이 방식을 사용하면 소켓 기반 서버를 만들어서 통신하는 것 보다 비약적으로 코드 양이 줄게되어 코드 몇 줄로도 원하는 구성을 만들 수 있습니다.


3) 원격 구성을 지원합니다. 원격구성이란 원격으로 앱의 환경 상태를 구성하는 것을 말합니다.

앱의 배경화면 테마나 폰트를 바꾼다던가, 업데이트창 알림창을 띄운다던가 앱의 환경을 원격으로 구성할 때 사용하는 기능입니다. 


4) 콘솔을 제공합니다. 콘솔이라는 용어는 쉽게 말해서 서버 관리자 페이지라고 생각하면 됩니다. 앱의 서버를 만들게 되면 리눅스, FTP, MySQL(데이터베이스), Node.JS 서버 혹은 Spring 서버, 푸시보내기  API만 구축할 것이 아니라 이 모든 것을 관리할 수 있는 관리자 페이지가 필요합니다. 회사나 조직에 있는 사람들이 리눅스나 데이터베이스, 서버를 다룰 줄 안다면 관리자 페이지가 필요없을 수도 있지만 그렇경우가 많지않고 또한 접근 보안을 위해서 관리자 페이지를 만들어야 합니다. 그럼 앱을 만들기 위해서 앱개발자 뿐아니라 서버 개발자까지 필요해집니다. 

안드로이드 앱하나를 만들기위해 배보다 배꼽이 더 커져버릴수 있습니다. 

하지만 FireBase는 이 모든 것을 지원해줍니다.


5) Analytics를 제공합니다. Analytics 단어 그대로 통계를 말하며 정확히는 다수의 사용자가

앱을 어떻게 사용하는지 통계 정보를 가지고 있습니다. 앱의 현재 접속자부터 오류통계, 

사용자 유지율, 고객들의 앱 업데이트 상태, 사용자들이 특정 페이지에 머문 시간, 이벤트 등을 추적할 수 있습니다. 이런 데이터들을 수집해서 사용자가 어떤 페이지에서 흥미를 잃었는지,

어떤 페이지가 인기가 많은지 등을 찾아낼 수 있으며 맞춤 마케팅을 할 수 있습니다.


FireBase의 단점

1) Firebase를 많이 사용한 유저들이 하는 말은 서버의 응답속도가 종종 느려진다는 것입니다. 가령 Firebase로 채팅 앱을 만들었는데 메시지가 늦게 간다던가 혹은 Firebase인증을 성공하고 나서 로그인을 하고 메인화면에서 데이터베이스에 접근할 때 서버가 응답하는데 시간이 조금 걸리는 경우가 있습니다. 이것은 Firebase의 고질적인 문제이며 유료로 전환해도 서버응답이 지연되는 부분은 해결디지 않습니다.  그 이유는 서버가 해외에 있기 때문에 종종 처리 속도에 지연이 발생됩니다. Firebase가 국내에서 많이 쓰인다면 구글이 아시아쪽 서버를 구축해 줄것이며 

아마 응답 지연이 해결될 것입니다.


2) Firebase의 데이터베이스인 FireStore(신버전 데이터베이스)나 RealTimeDatabase(구버전 데이터베이스) 모두 쿼리가 굉장히 빈약합니다. SQL에 익숙한 사람들은 Firebase 데이터베이스를 사용하게 되면 굉장히 당황해 할 것이다.  그 흔한  OR 문으로도 검색되지 않으며 LIKE 문도 존재하지 않아서 비슷한 글자나 데이터를 검색할 수 없다. 그래서 Firebase를 사용하는 사용자들은 이 모든 데이터를 받아와서 안드로이드 기기에서 필터링해주는 방법을 권장하고 있다. 




댓글