서버리스(Serverless)는 단순한 유행이 아닙니다. 소프트웨어가 확장되는 방식을 근본적으로 바꾸고 있습니다.


Netflix는 서버 걱정 없이 수십억 시간의 콘텐츠 스트리밍을 처리하고, CocaCola는 인프라 없이 워크플로를 자동화합니다. Figma와 T-Mobile은 장애 시간(downtime)을 최소화했죠. 이들은 무엇을 알고 있을까요?

비밀은 바로 이벤트 기반 서버리스 코드(Event-driven Serverless) 입니다. 이 방식은 트래픽이 갑자기 폭증해도 자동으로 확장되고, 사용한 만큼만 비용을 지불하며, 서버 운영 부담 없이 안정적으로 동작하는 애플리케이션의 핵심 구조입니다.

서버는 보이지 않고, 추측도 필요 없습니다. 이벤트에 반응하는 코드만 있으면 됩니다. 이 글은 단순한 홍보가 아니라, 실제로 확장 가능한 시스템을 만드는 설계도입니다. 이제 하나씩 살펴보겠습니다.


서버리스(Serverless)란 무엇인가?

스포일러: 서버는 여전히 존재합니다.

서버리스라는 용어는 복잡한 설명으로 가득 차 있지만, 가장 쉽게 말하면 다음과 같습니다:

“코드를 실행하는 서버를 개발자가 직접 신경 쓰지 않아도 되는 배포 방식”

예를 들어 봅시다:

Serverless Deployment Diagram

지은이는 mytrashcode.com 이라는 웹사이트를 만들었지만, 서버 설정이 너무 부담스러웠습니다. 그녀는 서버 관리자(sysadmin)가 아니라 개발자였기 때문이죠. 그래서 지은이는 코드를 클라우드 서비스에 업로드했고, 나머지는 클라우드 제공자가 처리했습니다. 덕분에 그녀의 사이트는 문제없이 운영될 수 있었습니다. 밤늦게 서버가 다운될 일도, 트래픽 폭증에 허둥댈 일도 없었습니다. 간단하죠?


왜 직접 서버를 관리하지 않으면 안 될까?

서버를 직접 관리하는 방법은 크게 두 가지입니다. 하나는 오래된 노트북을 DIY 서버로 활용하는 것처럼 물리적 하드웨어를 직접 운영하는 것이고, 다른 하나는 DigitalOcean Droplets, Azure VM, AWS Lightsail과 같은 클라우드 서비스 제공업체에서 가상 사설 서버(VPS)를 임대하는 것입니다. 이러한 서비스는 IaaS(서비스형 인프라)에 속하며, 클라우드 업체가 하드웨어 인프라를 제공하지만 업데이트, 확장, 보안 등은 전적으로 사용자의 책임입니다.

그렇다면 자체 관리형 서버는 불가능하다는 뜻인가요?