Community

Firebase 대안으로 사용할 수 있는 BaaS들

Firebase는 백엔드 개발을 할때 필요한 인증, 데이터베이스, 푸쉬, 스토리지, 호스팅부터 crashlytics, 이벤트 대시보드 등 전반적으로 개발할때 필요한 플랫폼들을 쉽게 사용할 수 있도록 제공해주는 플랫폼입니다. 자체적으로 이런 플랫폼들을 다 만드는 것은 비용이 크기 때문에 많은 제품들이 Firebase와 같은 BaaS(Backend as a Service) 플랫폼을 사용하고 있습니다. BaaS중에서 아직까지는 Firebase가 가장 인기가 많지만 최근에 이를 대체하고자 하는 플랫폼들이 많이 생겨나서 각 BaaS들의 장단점을 영상을 참고해 요약해 보려고 합니다. - Firebase 여러 서비스들(인증, 서버리스, 스토리지 등)이 있고, 여러 클라이언트들에서 사용할 수 있는 SDK(iOS, Android, Flutter, JS/TS, etc.)를 제공한다는 점이 장점입니다. 하지만, DB로는 NoSQL밖에 없고 실 서비스에서 사용하기에는 성능이 아쉽다는 평가가 있고 새로운 플랫폼으로 migration을 해야할때 어려운 부분이 단점입니다. - Amplify AWS제품이고 DynamoDB를 사용할 수 있습니다. DynamoDB는 scalable하게 사용할 수 있는 DB중 하나이고, Amplify에서는 graphql API들을 제공하고 있습니다. 데이터를 잘 검색하기 위해 elasticsearch도 제공하고 있습니다. 또한, 클라이언트 플랫폼에서 쉽게 사용할 수 있는 sdk들을 제공하고 있습니다. 하지만 Amplify도 Firebase와 마찬가지로 락인되면 다른 제품으로 갈아타기 어려운 부분이 있습니다 (특히, DynamoDB는 AWS에서만 사용할 수 있습니다). - Supabase Firebase와 같이 인증이나 스토리지 등을 지원하지만 차이점이 있다면 관계형 db인 postgreSQL를 사용한다는 점입니다. 개발을 할때 많이 사용되는 rdb를 통해서 데이터를 모델링할 수 있고 postgreSQL을 사용하기에 나중에 migration도 쉽게 할 수 있습니다. 단점으로는 호스팅같은 기능들을 지원하지 않아 자체적으로 호스팅을 해야하고, native 앱 sdk들을 지원하지 않습니다. - nhost hasura는 rdb를 graphql api로 만들어주는 서비스이고 nhost는 이 위에 만들어졌습니다. PostgreSQL을 DB로 사용하는데 데이터를 쿼리로도 조회할 수 있고 graphql API로도 조회 및 mutation할 수 있습니다. nhost를 사용하면서도 haura를 왔다갔다하는 불편함이 다소 존재합니다. 만약 GraphQL을 사용한다면 Supabase보다는 나은 대안으로 보입니다. - appwrite supabase나 nhost와 비슷하지만 모바일과 웹을 지원하는 sdk들이 있습니다. 오픈소스이기 때문에 직접 설치해서 사용할수 있고, 아직은 클라우드에서 managed로 지원은 하지 않지만 조만간 출시 예정이라고 합니다. GraphQL을 아직 지원하지 않는다고 합니다. - realm mongodb를 사용하고 있다면 사용하기 좋은 플랫폼입니다. mongodb를 graphql로 접근할 수 있는 API도 지원합니다. 여러 BaaS들을 살펴봤는데, 데이터베이스나 스토리지 외에도 인증, 데이터 대시보드, 서버리스를 사용하고 싶고 참고할만한 코드들이 많이 필요하고 GCP를 앞으로 사용할 예정이라면 Firebase / DynamoDB를 활용하고 있거나 활용할 에정이고, AWS 제품들을 사용한다면 Amplify / RDB를 사용하고 self hosting으로 비용을 절감하고 싶다면 supabase / graphql과 rdb를 사용하고 싶다면 nhost / superbase랑 비슷한 니즈 추가로 네이티브 sdk가 필요하다면 appwrite / mongodb를 사용한다면 realm가 좋은 대안일 것 같습니다. 저도 아직까지는 Firebase밖에 사용해보지 못했는데 다른 플랫폼들에 대해서도 조금 알게 되서 나중에 요구사항에 따라 다른 플랫폼들도 고려해볼 수 있을 것 같습니다.

알림

알림이 없습니다