서비스형 백엔드(Backend as a service, BaaS) 또는 서비스형 모바일 백엔드(Mobile Backend as a Service, MBaaS)[1][2][3]는 웹 앱 및 모바일 앱 개발자에게 프론트엔드 애플리케이션에 대한 백엔드를 쉽게 구축할 수 있는 방법을 제공하는 서비스이다. 사용 가능한 기능에는 사용자 관리, 푸시 알림, 소셜 네트워킹 서비스와의 통합이 포함된다.[4] 이러한 서비스는 맞춤형 소프트웨어 개발 키트(SDK)와 애플리케이션 프로그래밍 인터페이스(API)를 통해 제공된다. BaaS는 클라우드 컴퓨팅 분야에서 비교적 최근에 개발된 것으로,[5] 대부분의 BaaS 스타트업은 2011년 이후에 시작되었다.[6][7][8] 가장 인기 있는 서비스 제공업체로는 AWS 애플리파이(AWS Amplify)와 파이어베이스가 있다.
목적
웹 및 모바일 앱은 알림 서비스, 사회 연결망과의 통합, 클라우드 스토리지 등 백엔드에서 유사한 기능 세트를 필요로 한다.[9][10] 이러한 각 서비스에는 개별적으로 앱에 통합되어야 하는 자체 애플리케이션 프로그래밍 인터페이스가 있으며, 이 과정은 앱 개발자에게 시간이 많이 소요되고 복잡할 수 있다.[11] BaaS 제공자는 통합된 API와 SDK를 통해 애플리케이션의 프론트엔드와 다양한 클라우드 기반 백엔드 사이의 다리 역할을 한다.[3]
백엔드 데이터를 관리하는 일관된 방법을 제공함으로써 개발자는 앱이 액세스해야 하는 각 서비스에 대해 자체 백엔드를 다시 개발할 필요가 없으며,[10] 잠재적으로 시간과 비용을 절약할 수 있다.[11][12]
서버리스 컴퓨팅, 서비스형 소프트웨어(SaaS), 서비스형 인프라스트럭처(IaaS), 서비스형 플랫폼(PaaS)과 같은 다른 클라우드 컴퓨팅 비즈니스 모델과 유사하지만, BaaS는 앱을 클라우드 서비스에 연결하는 통합된 수단을 제공함으로써 웹 및 모바일 앱 개발자의 클라우드 컴퓨팅 요구 사항을 특별히 해결한다는 점에서 이러한 다른 서비스와 구별된다.[13]
기능
BaaS 제공자는 다양한 기능 세트와 백엔드 도구를 제공한다.[14] 가장 일반적인 기능 중 일부는 다음과 같다.
- 데이터베이스 관리. 대부분의 BaaS 솔루션은 애플리케이션을 위한 SQL 및 NoSQL 데이터베이스 관리 서비스를 제공한다.[15] 개발자는 데이터베이스를 직접 배포하고 관리할 필요 없이 앱 데이터를 저장할 수 있다. BaaS는 일반적으로 프론트엔드가 데이터베이스와 상호 작용할 수 있도록 클라이언트 SDK, REST 및 GraphQL API를 제공한다.
- 파일 스토리지. BaaS 제공자는 종종 미디어 파일, 사용자 업로드 및 기타 이진 데이터를 위한 스토리지 솔루션을 제공한다. 애플리케이션은 제공된 SDK 및 API를 통해 파일을 업로드, 다운로드 및 삭제할 수 있다.
- 인증 및 권한 부여. 일부 BaaS는 개발자가 앱 사용자를 쉽게 관리할 수 있도록 인증 및 권한 부여 서비스를 제공한다.[15] 여기에는 사용자 가입, 로그인, 비밀번호 재설정, OAuth를 통한 소셜 미디어 로그인 통합, 사용자 그룹 및 권한 관리 등이 포함된다.
- 알림 서비스. 파이어베이스 및 AWS Amplify와 같은 일부 BaaS 제공자는 사용자에게 사용자 지정 이메일을 보내고 모바일 플랫폼에서 기본 알림을 푸시할 수 있는 알림 서비스를 가지고 있다.[16][17] 이는 메시지, 알림 및 미리 알림을 보내야 하는 애플리케이션에 특히 유용하다.
- 클라우드 함수. 일부 BaaS는 개발자가 서버리스 함수를 배포하고 실행할 수 있도록 허용한다. 함수는 일반적으로 상태 비저장이며 HTTP 요청, SDK 호출, 백그라운드 서버 이벤트 및 클라우드 예약 실행을 포함한 다양한 방법으로 트리거될 수 있다.[18][19] 다양한 제공자는 다양한 언어에 대한 런타임 지원을 제공하며, 인기 있는 언어 중 일부는 자바스크립트/타입스크립트 (Node.js, Deno), 파이썬, 자바/코틀린이다.[18][19][20] 클라우드 함수는 개발자가 앱을 위한 사용자 지정 기능을 작성할 수 있도록 허용하여 BaaS의 잠재력과 유연성을 확장하며, 기존 REST API 백엔드 프레임워크와 유사한 방식으로 작동한다.[21]
- 사용량 분석. 애플리케이션 사용량에 대한 분석 데이터는 종종 BaaS에 포함된다. 이를 통해 개발자는 사용자 행동을 모니터링하고 마케팅 전략 및 성능 최적화에 따라 결정을 내릴 수 있다.[22][23]
- UI 디자인. AWS Amplify 및 Backendless와 같은 일부 BaaS 제공자는 개발자가 웹 및 모바일 앱의 프론트엔드 UI를 디자인하는 데 도움이 되는 사용자 인터페이스 디자인 도구를 제공한다.[24][25] 이는 소규모 팀과 개별 개발자에게 유용할 수 있지만, UI 디자인 지원은 백엔드 인프라의 범위를 넘어서기 때문에 BaaS에서 일반적이지 않을 수 있다.
- 실시간. BaaS 플랫폼의 실시간 기능은 모든 클라이언트에서 데이터 업데이트 및 동기화가 즉시 발생하여 변경 사항이 사용자에게 즉시 보이도록 보장한다. 이는 웹소켓과 같은 기술을 사용하여 지속적인 서버-클라이언트 연결을 유지하는 라이브 채팅 및 협업 도구와 같은 애플리케이션에 중요하다.
서비스 제공자
BaaS 제공자는 광범위한 초점을 가지고 있으며, 다양한 기술 스택을 가진 여러 플랫폼에서 앱 개발에 작동하는 SDK 및 애플리케이션 프로그래밍 인터페이스를 제공한다. 예를 들어, 웹 앱용 자바스크립트, 플러터, 자바/코틀린 (안드로이드 앱용), 스위프트/오브젝티브-C (iOS/MacOS/WatchOS/TvOS 앱용), 닷넷 (윈도우용) 등이 있다. BaaS 제공자도 다양한 유형으로 제공되어 다양한 요구를 가진 개발자에게 적합하다.
클라우드 기반 BaaS
대부분의 BaaS 제공자는 백엔드 플랫폼을 자체 클라우드 서버에 호스팅한다.[26] 또한 플랫폼의 인프라, 보안 및 확장성을 관리한다. 개발자는 웹 인터페이스 또는 제공된 API를 통해 백엔드 서비스에 액세스할 수 있다.[15] 클라우드 기반 BaaS의 예로는 파이어베이스 (구글 클라우드 플랫폼에 호스팅), AWS Amplify (아마존 웹 서비스에 호스팅), 마이크로소프트 애저 모바일 앱 (마이크로소프트 애저에 호스팅) 등이 있다.
자체 호스팅 BaaS
자체 호스팅 BaaS는 개발자가 자체 서버에 백엔드를 호스팅할 수 있도록 하여, 종종 마이그레이션이 더 어려운 클라우드 기반 BaaS에 비해 더 많은 유연성과 사용자 지정 가능성을 제공한다. 그러나 개발자는 또한 서버의 인프라, 보안 및 확장성을 관리해야 한다.[15][26]
모바일 BaaS
서비스형 모바일 백엔드 (MBaaS)는 모바일 시스템에 배포된 애플리케이션을 위한 BaaS의 한 유형이다. 일부 참고 자료에서는 MBaaS를 BaaS와 상호 교환적으로 사용하지만, BaaS는 웹 앱 및 데스크톱 앱과 같은 더 넓은 범위의 지원을 가질 수 있다.[27][28]
비즈니스 모델
BaaS 제공자는 다양한 방식으로 서비스에서 수익을 창출하며, 종종 프리미엄 모델을 사용한다. 이 모델에서 클라이언트는 매월 특정 수의 무료 활성 사용자 또는 API 호출을 받고, 이 한도를 초과하는 사용자 또는 호출에 대해 요금을 지불한다. 또는 클라이언트는 매월 더 많은 호출 또는 활성 사용자를 허용하는 패키지에 대해 정해진 요금을 지불할 수 있다.[10] 가격 책정을 더 예측 가능하게 만드는 고정 요금제도 있다. 일부 제공업체는 무료 플랜 내에서 무제한 API 호출을 제공한다.[29] 많은 BaaS 제공업체에서 사용되는 또 다른 비즈니스 모델은 PAYG(pay as you go)인데,[30] 이는 개발자의 데이터베이스, 스토리지, 대역폭, 함수 호출, 사용자 수 등의 사용량에 따라 유연한 비용이 책정된다.
같이 보기
각주
- ↑ Monroe, Martin. “The Gospel of MBaaS (Part 1 of 2)”. InfoQ. 2013년 5월 6일에 확인함.
- ↑ Monroe, Martin. “The Gospel of MBaaS (Part 2)”. InfoQ. 2013년 5월 15일에 확인함.
- ↑ 가 나 Lane, Kin (2012년 6월 3일). “Rise of Mobile Backend as a Service (MBaaS) API Stacks”. 《API Evangelist》. 2012년 10월 16일에 확인함.
- ↑ Carney, Michael. “AnyPresence partners with Heroku to beef up its enterprise mBaaS offering”. PandoDaily. 2013년 6월 27일에 원본 문서에서 보존된 문서. 2013년 6월 24일에 확인함.
- ↑ Williams, Alex (2012년 10월 11일). “Kii Cloud Opens Doors For Mobile Developer Platform With 25 Million End Users”. 《TechCrunch》. 2012년 10월 16일에 확인함.
- ↑ Tan, Aaron (2012년 9월 30일). “FatFractal ups the ante in backend-as-a-service market”. 《Techgoondu.com》. 2012년 10월 16일에 확인함.
- ↑ Rowinski, Dan (2011년 11월 9일). “Mobile Backend As A Service Parse Raises $5.5 Million in Series A Funding”. 《ReadWrite》. 2012년 10월 23일에 확인함.
- ↑ Mishra, Pankaj (2014년 1월 7일). “MobStac Raises $2 Million In Series B To Help Brands Leverage Mobile Commerce”. 《TechCrunch》. 2014년 5월 22일에 확인함.
- ↑ Lane, Kin. “New Features From BaaS Provider AnyPresence”. API Evangelist. 2013년 5월 28일에 확인함.
- ↑ 가 나 다 Lawler, Ryan (2012년 3월 26일). “Parse offers its mobile backend-as-a-service on a freemium model”. 《GigaOM》. 2012년 10월 9일에 원본 문서에서 보존된 문서. 2012년 10월 16일에 확인함.
- ↑ 가 나 Williams, Alex (2012년 7월 11일). “Kinvey Raises $5 Million For Mobile And Web App Backend As A Service”. 《TechCrunch》. 2012년 10월 16일에 확인함.
- ↑ Facemire, Michael (2012년 9월 2일). “Enterprise Mobility: How Fast Can Development Go?”. 《Michael Facemire's Blog》. Forrester.com. 2012년 10월 16일에 확인함.
- ↑ Rowinski, Dan (2012년 4월 17일). “The Rise of Mobile Cloud Services: BaaS Startups Grow Up”. 《ReadWrite》. 2012년 10월 23일에 확인함.
- ↑ Lane, Kin. “New Features From BaaS Provider AnyPresence”. API Evangelist. 2013년 5월 28일에 확인함.
- ↑ 가 나 다 라 Zomko, Roman. “The Brief Guide to Backend as a Service (BaaS)”. 《impressit.io》 (영어). 2023년 11월 23일에 확인함.
- ↑ “Firebase Cloud Messaging”. 《Firebase》 (영어). 2023년 11월 24일에 확인함.
- ↑ “Notifications - AWS Amplify Hosting”. 《docs.aws.amazon.com》. 2023년 11월 24일에 확인함.
- ↑ 가 나 “Cloud Functions for Firebase”. 《Firebase》 (영어). 2023년 11월 24일에 확인함.
- ↑ 가 나 “Functions - Docs - Appwrite”. 《Appwrite》 (영어). 2023년 11월 24일에 확인함.
- ↑ “Edge Functions | Supabase Docs”. 《Supabase》 (영어). 2023년 11월 24일에 확인함.
- ↑ Ail, Vijit (2022년 6월 15일). “Using Edge Functions in Supabase: A complete guide”. 《LogRocket Blog》. 2023년 11월 24일에 확인함.
- ↑ Rowinski, Dan (2012년 4월 17일). “The Rise of Mobile Cloud Services: BaaS Startups Grow Up”. 《ReadWrite》. 2012년 10월 23일에 확인함.
- ↑ “Google Analytics for Firebase”. 《Firebase》 (영어). 2023년 11월 24일에 확인함.
- ↑ “Full Stack Web App Editor - Extensible App Builder - AWS Amplify Studio - AWS”. 《Amazon Web Services, Inc.》 (미국 영어). 2023년 11월 24일에 확인함.
- ↑ “UI Builder”. 《Backendless》 (영어). 2023년 11월 24일에 확인함.
- ↑ 가 나 “How to Choose the Right Backend as a Service (BaaS) Provider for Your Project”. 《DEV Community》 (영어). 2023년 9월 13일. 2023년 11월 23일에 확인함.
- ↑ “What is BaaS? | Backend-as-a-Service vs. serverless”. 《Cloudflare》. 2023년 11월 23일에 확인함.
- ↑ “What Is Mobile Backend As A Service (MBaaS)? (2022)”. 《Backendless》 (영어). 2023년 1월 20일. 2023년 11월 23일에 확인함.
- ↑ “MongoDB Stitch - Backend as a Service”. 《MongoDB》. 2017년 6월 21일에 확인함.
- ↑ “What is a Mobile Backend Service (MBAAS)?”. 《Carina Softlabs Blog》 (영어). 2021년 5월 12일. 1–2면. 2024년 5월 16일에 원본 문서에서 보존된 문서. 2021년 5월 12일에 확인함.