"서버리스(Serverless)를 직역하면, 혹자는 서버가 없다고 오해하지만, 컴퓨터에 서버를 놓고 쓰는 게 아니라는 뜻입니다. 클라우드 공급자가 서버를 관리하다가 특정 이벤트나 요청이 발생하면 클라우드 서버를 동작시키는 방식입니다. 효율적으로 사용하는 것입니다. 개발자를 서버 관리에서 자유롭게 해 업무 효율이 올라갑니다."

김민준 프리랜서 개발자. / 김동진 기자
김민준 프리랜서 개발자. / 김동진 기자
김민준 프리랜서 개발자는 23일 서울 마포구 누리꿈스퀘어에서 열린 ‘마소콘(MASOCON) 2019’에서 이같이 말했다. 마소콘 2019는 소프트웨어 전문 잡지인 마이크로소프트웨어가 ‘장벽을 두드려라(Knock the Barrier)’를 주제로 개최한 개발자 콘퍼런스다.

그는 "서버리스 환경에서는 BaaS(Backend as a Service)나 FaaS(Function as a Service)에 의존해 작업을 처리한다"며 "예로는 AWS Lambda, Azure Functions, Google Cloud Functions가 있다"고 전했다.

BaaS는 개발자가 애플플리케이션 등을 만들고 서비스하는 데 필요한 백엔드(Back-End) 개발 작업을
클라우드 공급자들이 대신하는 서비스다. 개발자는 백엔드 개발에 필요한 시간과 수고를 줄일 수 있다. 구글의 Firebase가 대표적인 예다.

FaaS는 API 호출 등과 같이 특정한 이벤트나 요청이 사용자로부터 있을 때 클라우드 공급자 서버를 이용하는 방식이다. 서버가 계속 대기하면서 실행을 기다리는 것이 아닌 요청한 상황에 동작하므로 개발자가 서버 관리를 하는 수고를 줄일 수 있다.

김민준 개발자는 "서버리스 환경을 활용하면 적은 시간에 더 많은 데이터를 처리하면서 비용도 절감할 수 있다"며 "개발자가 말 그대로 ‘개발’에만 집중해 생산성이 크게 올라가는 환경이다. 클라우드 서비스의 진화한 형태다"고 전했다.

그는 "서버리스가 만능이라는 얘기는 아니다"며 "자신의 환경을 고려해야 한다. 빠른 응답 또는 실시간 처리가 필요한 경우 서버리스로의 전환은 적합하지 않을 수 있다. 서버 동작을 위해 함수를 호출하면 대기 시간(콜드스타트)이 존재한다. 서버가 대기하고 있지 않은 서버리스 특징 때문이다"고 말했다.


관련기사