728x90
FireBase란?
"백엔드 서비스"
모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API 등 모든 것을 개발해야 한다. 그러나 이는 매번 새로운 앱들과 별로 차이가 나지 않기 때문에 복잡한 과정들을 매번 개발할 때마다 하는 것은 시간낭비이다.
FireBase는 이 모든 플렛폼을 프로젝트 구축 시 자동적으로 만들어 준다. 또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요가 없고 개발하는 동안에는 서버를 구입할 필요도 없다.
FireBase라는 플랫폼을 통해 프론트엔드 개발자와 백엔드 개발자의 경계가 모호해 질 것이며 적은 비용으로 매우 좋은 앱을 만들 수 있을 것이다.
FireBase의 기능
- 대표적인 기능으로 인증, 데이터베이스, 스토리지, 원격 구성, 푸시 알람이 있다.
FireBase의 장점
1. 인증 시스템을 지원한다.
- 인증은 우리가 알고 있는 로그인 하는 부분을 말한다. 이를 직접 서버로 개발할 경우 매우 복잡한데, 그 이유는 인증된 사용자인지 확인하는 세션처리에서 그 세션으로 데이터베이스와 저장소에 접근해도 문제가 없는지 확인하는 보안처리, 비밀번호 찾기, 아이디 찾기, 비밀번호 변경 등등 복잡한 것들을 구현해야 한다. 그러나 FireBase는 이를 모두 제공하고 있다.
2. NoSQl 기반의 3세대 데이터베이스이다.
- NoSQL기반 데이터베이스의 Document DB는, 현재 많이 사용되는 오라클이나 MySQL 같은 관계형 데이터베이스보다 빠르고 간편하다.
- 또한 FireBase는 다른 데이터 베이스들과 다르게 RTSP(Real Time Stream Protocol) 방식의 데이터베이스를 지원하고 있다. RTSP는 말그대로 실시간으로 데이터들을 전송해주는 방식이다. 이 방식을 사용하면 소켓 기반 서버를 만들어서 통신하는 것 보다 훨씬 코드 양이 줄게되어 코드 몇 줄로도 원하는 구성을 만들 수 있습니다.
3. 원격 구성을 지원한다.
- 원격구성이란 원격으로 앱의 환경 상태를 구성하는 것을 말한다.
- 앱의 배경화면 테마나 폰트를 바꾼다던가, 업데이트창과 알림창을 띄우고 앱의 환경을 원격으로 구성할 때 사용하는 기능이다.
4. 콘솔을 제공한다.
- 콘솔이란 쉽게 말해서 서버 관리자 페이지라고 생각하면 된다.
- 앱의 서버를 만들게 되면 리눅스, FTP, MySQL(데이터베이스), Node.JS 서버 혹은 Spring 서버, 푸시보내기 API만 구축할 것이 아니라 이 모든 것을 관리할 수 있는 관리자 페이지가 필요하다.
- 리눅스나 데이터베이스, 서버를 다룰 줄 안다면 관리자 페이지가 필요없을 수도 있지만 그렇지 경우를 위해, 그리고 접근 보안을 위해서 관리자 페이지를 만들어야 한다. 그럼 앱을 만들기 위해서 앱개발자 뿐아니라 서버 개발자까지 필요해지는데, FireBase는 이를 지원해주어 그럴 필요 없어지는 것이다.
5. Analytics를 제공한다.
- Analytics는 다수의 사용자가 앱을 어떻게 사용하는지에 대한 통계 정보를 가지고 있다.
- 추적할 수 있는 정보: 앱의 현재 접속자, 오류통계, 사용자 유지율, 고객들의 앱 업데이트 상태, 사용자들이 특정 페이지에 머문 시간, 이벤트 등
- 이런 데이터들을 수집하면 사용자가 어떤 페이지에서 흥미를 잃었고, 어떤 페이지가 인기가 많은지 등을 찾아낼 수 있으며 맞춤 마케팅을 할 수 있다.
FireBase의 단점
1. 종종 서버의 응답속도가 느려진다.
- Firebase로 채팅 앱을 만들었는데 메시지가 늦게 간다던가, Firebase 인증을 성공하고 나서 메인화면에서 데이터베이스에 접근할 때 서버 응답 시간이 조금 지연되는 경우
- 그 이유는 서버가 해외에 있기 때문에 종종 처리 속도에 지연이 발생된다고 한다.
- Firebase가 국내에서 많이 쓰인다면 구글이 아시아쪽 서버를 구축해 줄것이며 아마 응답 지연이 해결될 것.
2. Firebase의 데이터베이스인 FireStore(신버전)나 RealTimeDatabase(구버전) 모두 쿼리가 매우 빈약하다.
- 데이터 검색이 어렵다. (SQL에서는 일반적으로 OR 문이나 LIKE 문을 이용해 데이터검색이 가능한데 이들 모두 존재하지 않는다고 한다.)
- 그래서 Firebase를 사용하는 사용자들은 모든 데이터를 받아와서 안드로이드 기기에서 필터링해주는 방법을 권장하고 있다.
FireBase는 어떻게 이용될까
- FireBase를 이용하면 앱 개발시 오랜시간을 들여서 프론트엔드와 백엔드를 모두 구현할 필요가 없고, 프로토타입을 만들어 잘 작동하는지 테스트 할 수 있다. 또한 사람들이 이 프로토타입을 써보게 하여 해당 앱이 가능성이 있는지 없는지 미리 확인할 수 있다.
-> 시간 절약 가능! - FireBase가 많은 기능을 제공하고 있음에도 불구하고 실제 앱을 개발할 때 다시 시간을 들여 백엔드를 갖추는 이유는 이를 컨트롤할 수 없기 때문이다. 백엔드를 직접 개발하면 원하는 서버를 선택할 수 있고 관리자 패널도 사용할 수 있지만 파이어베이스만 사용하게 되면 그럴 수 없다.
728x90
'Info' 카테고리의 다른 글
[공지] 블로그 이전합니다. (0) | 2023.05.31 |
---|---|
카카오 애드핏 데일리 리포트 받는 방법. (0) | 2021.05.24 |