풍성한 라벤더농장이 될때까지

[Conflict]

프로젝트에서 firebase를 사용하신 것 같은데, 왜 firebase를 선택했는지 간단하게 설명해주실 수 있나요? 다른 것과 비교해서 어떤 장단점이 있나요?

 

[Merge]데이터베이스 종류는 Oracle, MySQL, AWS등 다양하지만 그중에 Firebase를 선택한 이유는 사실 한가지 입니다.

Flutter 3.0에서 Firebase를 정식으로 지원하기 때문입니다. 같은 구글에서 만든 데이터베이스와 프레임워크이기 때문에 연동성 부분에서는 어떤 데이터베이스보다 뛰어나기 때문에 채택하게 되었습니다.

 

Firebase를 간략하게 소개해드리자면,

모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시알람, 스토리지, api등 모든 것을 개발해야 하는데 Firebase는 이 모든 플렛폼을 프로젝트 구축 시 자동적으로 만들어 줍니다. 또 서버를 구축하기 위해 리눅스를 다룰 필요도 없고, 도메인 또한 필요 없으며 간단한 개발 단계에서는 서버를 구입할 필요도 없습니다.

 

장점으로는

 

1. 인증 시스템 지원

로그인, 비밀번호 찾기 등의 인증된 사용자인지 확인하는 세션처리 부분에서 Firebase는 이에 해당하는 보안처리를 모두 제공해줍니다

 

2. NoSQL 기반의 3세대 데이터베이스

NoSQL 기반 데이터베이스인 만큼, 현재 많이 사용되고 있는 Oracle이나 MySQL 같은 관계형 데이터베이스보다 빠르고 간편합니다.

또 다른 데이터베이스와 다르게 RTSP 방식의 데이터베이스를 지원해, 소켓 기반 서버를 만들어서 통신하는 것 보다 훨씬 간단하게 원하는 구성을 만들 수 있습니다

 

3. 실시간 데이터베이스

Firebase는 Realtime database로, 실시간으로 데이터를 동기화하기 때문에 사용자들이 공동으로 데이터를 공유하고 협업하는데 유용합니다

 

4. 설치가 필요없음

서버를 설정하거나 데이터베이스를 설치할 필요가 없습니다

(다만, 사용하려면 관련 sdk정도는 다운을 받아야합니다)

 

단점으로는

 

1. 비용

데이터베이스에서 읽기, 쓰기, 삭제 등의 작업은 비용이 발생하게 되고, 트래픽이 높은 서비스에서는 많은 비용이 발생할 수 있습니다.

 

2. 데이터 쿼리 제한

Firebase는 복잡한 쿼리를 지원하지 않기 때문에 SQL과 같은 전통적인 관계형 데이터베이스에 익숙하다면 제약사항이 될 수 있습니다

 

MySQL, Oracle, AWS 등과 비교를 하자면,

Mysql, Oracle과 같은 3세대 관계형 데이터베이스는 비교적 정교한 쿼리 작성, 데이터베이스 스키마 디자인을 제공하게 됩니다. 이런 부분을 생각하면 Firebase보다 더욱 유연한 구성과 커스터마이징을 제공하긴 하지만, 복잡성도 동시에 생기게 됩니다.

AWS는 Firebase와 같은 광범위한 클라우드 서비스를 제공하지만 연동성 부분에서 Flutter가 Firebase를 공식 지원하기 때문에 선택했습니다.

 

profile

풍성한 라벤더농장이 될때까지

@그레이라벤더

느리지만 꾸준히 굴러서 큰 바다가 되고싶은 개발 어린이