
서버리스는 서버 사용자가 서버를 직접 관리할 필요가 없는 서비스 모델을 의미합니다.
서버리스 모델에도 서버가 존재하지만 일반적인 서버개발과는 다르게 추상화 되어 있으며
이에대한 부분을 클라우딩업체에서 프로비저닝 , 유지관리 , 스케일링을 알아서 처리해주므로
개발자는 배포를 위해 코드를 컨테이너에 패키징 하기만 하면 되는 구조입니다.
서버에 대한 직접관리가 필요없고 서버에 대해 자세히 알 필요가 없는
낮은 러닝커브로 인해 간단한 서비스를 구축할때 많이 이용되는 편입니다.
FaaS는 Function, 즉 함수를 서비스로 제공합니다.
사용자가 작성한 코드(백엔드)를 서버리스 제공자의 서버에 업로드하게 되면 해당 서버는 업로드한 코드를 함수 단위로 쪼개어 대기상태로 두게 됩니다. 그러다 요청이 들어오면 서버가 대기상태에 두었던 함수를 실행시켜 처리한 다음 작업이 끝나면 다시 대기상태로 만드는 구조입니다. 비용은 함수 호출 횟수에 따라 청구됩니다.
쉽게 말하자면 업로드한 코드가 평상시에는 쿨쿨 자고있고, 요청이 들어오면 서버가 코드를 깨워 일을 시킨 후 다시 재운다..정도로 이해하시면 될 것 같습니다.
대표 서비스 : AWS Lambda, MS Azure Function
BaaS는 백엔드 개발에 필요한 여러 기능을 API로 제공하는 서비스입니다.
쉽게 말하자면 SNS연동이나 DB와 같이 백엔드에 필요한 기능들을 사용자가 직접 구현 할 필요 없이 제공하는 API로 해당 기능을 구현할 수 있게 해 주는 것입니다. 클라우드 공급자가 백엔드 개발 환경까지 제공해 준다고 보시면 될 것 같습니다.
대표 서비스 : Firebase
즉, FaaS와 BaaS의 차이는 직접 백엔드를 구현했느냐 아니냐의 차이 정도로 보시면 됩니다.
서버리스는 사이드 프로젝트(토이 프로젝트)나 최대한 빠르게 시제품(초기 서비스)을 런칭하고 싶은 경우에 추천드립니다.
이런 경우 기존 클라우드 컴퓨팅 모델에 비해 돈과 시간을 모두 절약할 수 있으므로
서버리스가 좋은 선택이 될 수 있습니다.