서비스형 백엔드(BaaS)를 사용하면 개발자는 애플리케이션을 구축하거나 유지 관리할 필요 없이 애플리케이션의 프런트엔드에 집중하고 백엔드 서비스를 활용할 수 있습니다. BaaS와 서버리스 컴퓨팅은 몇 가지 유사점을 공유하며 많은 공급자가 두 가지를 모두 제공하지만, 두 모델에는 몇 가지 차이점이 있습니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
글 링크 복사
서비스형 백엔드(BaaS)는 개발자가 웹 또는 모바일 애플리케이션의 모든 백그라운드 측면을 아웃소싱하여 프런트엔드만 작성하고 유지 관리하면 되는 클라우드 서비스 모델입니다. BaaS 벤더는 사용자 인증, 데이터베이스 관리, 원격 업데이트, 푸시 알림(모바일 앱용), 클라우드 스토리지, 호스팅 등 서버에서 이루어지는 활동을 위해 미리 작성된 소프트웨어를 제공합니다.
BaaS 공급자를 이용하지 않고 애플리케이션을 개발하는 것을 영화 감독이 하는 일과 같다고 생각하면 됩니다. 영화 감독은 영화에 나올 장면을 실제로 촬영하고 연출하는 것 외에도 촬영 스태프, 조명, 세트 제작, 의상, 배우 캐스팅, 제작 일정 등을 감독하거나 관리하는 역할을 담당합니다. 이제 감독이 장면을 연출하고 촬영하기만 하면 되도록 모든 막후 활동을 처리해주는 서비스가 있다고 상상해 보세요. 이것이 바로 BaaS의 개념입니다. 벤더가 '조명'과 '카메라'(또는 서버 측* 기능)를 관리하므로 감독(개발자)은 최종 사용자가 보고 경험하는 '연기'에만 집중할 수 있습니다.
BaaS를 이용하면 개발자는 프런트엔드 애플리케이션 코드 작성에 집중할 수 있습니다. API(한 프로그램이 다른 프로그램에 요청하는 방법)와 BaaS 벤더가 제공하는 SDK(소프트웨어 구축 키트)를 통해 개발자는 백엔드를 직접 구축하지 않고도 필요한 모든 백엔드 기능을 통합할 수 있습니다. 또한 애플리케이션을 계속 실행하기 위해 서버, 가상 머신, 컨테이너를 관리할 필요가 없습니다. 따라서 모바일 애플리케이션 및 웹 애플리케이션(단일 페이지 애플리케이션 포함)을 더 빠르게 빌드하고 실행할 수 있습니다.
*서버 측이란 인터넷 클라이언트-서버 모델에서 클라이언트가 아닌 서버에서 호스팅되거나 서버에서 발생하는 모든 것을 말합니다.
서비스형 모바일 백엔드(MBaaS)는 모바일용 앱을 구축하기 위해 특별히 고안된 BaaS입니다. 일부에서는 BaaS와 MBaaS를 기본적으로 혼용 가능한 용어로 간주하지만, 모바일 애플리케이션을 구축하는 데 반드시 BaaS 서비스를 사용할 필요는 없습니다.
BaaS 공급자는 다양한 서버 측 기능을 제공합니다. 예:
BaaS 및 MBaaS 공급자로는 Google Firebase와 Microsoft Azure가 있습니다.
개발자는 애플리케이션 코드만 작성하면 되고 백엔드는 고려하지 않으므로 BaaS와 서버리스 컴퓨팅 사이에는 일부 중복되는 부분이 있습니다. 또한 많은 BaaS 공급자가 서버리스 컴퓨팅 서비스도 제공합니다. 하지만 BaaS를 사용하여 구축한 애플리케이션과 진정한 서버리스 아키텍처 간에는 상당한 운영상의 차이가 있습니다.
서버리스 애플리케이션의 백엔드는 이벤트에 응답하고 한 가지 작업만 수행하는 여러 함수로 나뉩니다( FaaS란? 참조). 한편 BaaS 서버 측 기능은 공급자가 원하는 대로 구성되므로 개발자는 애플리케이션의 프런트엔드 외에는 코딩에 신경 쓸 필요가 없습니다.
서버리스 아키텍처는 이벤트 기반이므로 이벤트에 대한 응답으로 실행됩니다. 각 함수는 특정 이벤트에 의해 트리거될 때만 실행되며, 그 외에는 실행되지 않습니다. BaaS로 구축된 애플리케이션은 일반적으로 이벤트 기반이 아니므로 더 많은 서버 리소스를 필요로 합니다.
서버리스 기능은 애플리케이션의 나머지 부분과 통신이 유지되는 한 모든 장비의 어느 곳에서나 실행할 수 있으며, 네트워크의 에지에서 코드를 실행하여 애플리케이션의 아키텍처에 에지 컴퓨팅을 통합할 수 있습니다.BaaS가 반드시 언제 어디서나 코드를 실행할 수 있도록 설정되어 있는 것은 아닙니다(공급자에 따라 실행 가능할 수도 있지만).
확장성은 서버리스 아키텍처를 다른 종류의 아키텍처와 구분하는 가장 큰 차별화 요소 중 하나입니다. 서버리스 컴퓨팅에서는 사용량이 증가함에 따라 애플리케이션이 자동으로 확장됩니다. 클라우드 벤더의 인프라는 필요에 따라 각 기능의 임시 인스턴스를 시작합니다. BaaS 공급자가 서버리스 컴퓨팅을 제공하고 개발자가 이를 애플리케이션에 구축하지 않는 한, BaaS 애플리케이션은 이러한 방식으로 확장하도록 설정되어 있지 않습니다.
PaaS는 클라우드를 통해 개발자가 애플리케이션을 구축할 수 있는 플랫폼을 제공합니다.서버리스 컴퓨팅 및 BaaS와 마찬가지로 서비스형 플랫폼(PaaS)의 경우에도 개발자가 애플리케이션 백엔드를 구축하고 관리할 필요가 없습니다.그러나 PaaS에는 푸시 알림 및 사용자 인증과 같은 사전 구축된 서버 측 애플리케이션 로직이 포함되어 있지 않습니다.PaaS는 개발자에게 더 많은 유연성을 제공하는 반면, BaaS는 더 많은 기능을 제공합니다.