서버리스는 클라우드 컴퓨팅의 모델 중 하나로 사용자가 서버를 직접 관리할 필요가 없는 모델을 의미한다.
FaaS는 Function, 즉 함수를 서비스로 제공합니다.
사용자가 작성한 코드(백엔드)를 서버리스 제공자의 서버에 업로드하게 되면 해당 서버는 업로드한 코드를 함수 단위로 쪼개어 대기상태로 두게 됩니다. 그러다 요청이 들어오면 서버가 대기상태에 두었던 함수를 실행시켜 처리한 다음 작업이 끝나면 다시 대기상태로 만드는 구조.
BaaS는 백엔드 개발에 필요한 여러 기능을 API로 제공하는 서비스입니다.
일반적으로 SPA 또는 모바일 응용 프로그램과 같은 클라이언트 중심의 응용 프로그램입니다. 클라이언트는 인증, 데이터베이스, 사용자 관리 등과 같은 외부 서비스를 사용하여 대부분의 비즈니스로직을 처리한다.
•이벤트 기반의 비용. (일정 주기, 조건 등에 함수를 호출하므로 리소스를 낭비하지 않게 되어서 비용이 저렴.)
•인프라 구성, 운영, 보안 등에 신경쓰지 않고 비즈니스 로직에 집중할 수 있다.
•자동 스케일 업 및 스케일 다운
•높은 가용성과 유연한 확장
•실시간 서비스에는 적합하지 않음 (항시 실행 중인 서버랑 달리, 트리거에 의해 서버를 실행하고 종료하기를 반복하기 때문에 실행 대기 시간이 오래 걸림)
•클라우드 서비스 업체에 종속적
•로컬 데이터를 사용할 수 없다. (Stateless)
•디버깅이나 테스팅에 불편하다.
참조
https://velog.io/@zvoniti/%EC%84%9C%EB%B2%84%EB%A6%AC%EC%8A%A4