상위 질문
타임라인
채팅
관점

서비스형 백엔드

백엔드를 쉽게 구축할 수 있는 방법을 제공하는 서비스 위키백과, 무료 백과사전

Remove ads

서비스형 백엔드(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)와 파이어베이스가 있다.

Remove ads

목적

웹 및 모바일 앱은 알림 서비스, 사회 연결망과의 통합, 클라우드 스토리지 등 백엔드에서 유사한 기능 세트를 필요로 한다.[9][10] 이러한 각 서비스에는 개별적으로 앱에 통합되어야 하는 자체 애플리케이션 프로그래밍 인터페이스가 있으며, 이 과정은 앱 개발자에게 시간이 많이 소요되고 복잡할 수 있다.[11] BaaS 제공자는 통합된 APISDK를 통해 애플리케이션의 프론트엔드와 다양한 클라우드 기반 백엔드 사이의 다리 역할을 한다.[3]

백엔드 데이터를 관리하는 일관된 방법을 제공함으로써 개발자는 앱이 액세스해야 하는 각 서비스에 대해 자체 백엔드를 다시 개발할 필요가 없으며,[10] 잠재적으로 시간과 비용을 절약할 수 있다.[11][12]

서버리스 컴퓨팅, 서비스형 소프트웨어(SaaS), 서비스형 인프라스트럭처(IaaS), 서비스형 플랫폼(PaaS)과 같은 다른 클라우드 컴퓨팅 비즈니스 모델과 유사하지만, BaaS는 앱을 클라우드 서비스에 연결하는 통합된 수단을 제공함으로써 웹 및 모바일 앱 개발자의 클라우드 컴퓨팅 요구 사항을 특별히 해결한다는 점에서 이러한 다른 서비스와 구별된다.[13]

Remove ads

기능

요약
관점

BaaS 제공자는 다양한 기능 세트와 백엔드 도구를 제공한다.[14] 가장 일반적인 기능 중 일부는 다음과 같다.

  • 데이터베이스 관리. 대부분의 BaaS 솔루션은 애플리케이션을 위한 SQLNoSQL 데이터베이스 관리 서비스를 제공한다.[15] 개발자는 데이터베이스를 직접 배포하고 관리할 필요 없이 앱 데이터를 저장할 수 있다. BaaS는 일반적으로 프론트엔드가 데이터베이스와 상호 작용할 수 있도록 클라이언트 SDK, RESTGraphQL API를 제공한다.
  • 파일 스토리지. BaaS 제공자는 종종 미디어 파일, 사용자 업로드 및 기타 이진 데이터를 위한 스토리지 솔루션을 제공한다. 애플리케이션은 제공된 SDKAPI를 통해 파일을 업로드, 다운로드 및 삭제할 수 있다.
  • 인증 및 권한 부여. 일부 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 플랫폼의 실시간 기능은 모든 클라이언트에서 데이터 업데이트 및 동기화가 즉시 발생하여 변경 사항이 사용자에게 즉시 보이도록 보장한다. 이는 웹소켓과 같은 기술을 사용하여 지속적인 서버-클라이언트 연결을 유지하는 라이브 채팅 및 협업 도구와 같은 애플리케이션에 중요하다.
Remove ads

서비스 제공자

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] 이는 개발자의 데이터베이스, 스토리지, 대역폭, 함수 호출, 사용자 수 등의 사용량에 따라 유연한 비용이 책정된다.

Remove ads

같이 보기

각주

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads