배포 / 클라우드
서버리스(Serverless)
서버리스는 서버 인프라의 운영을 서비스 제공자에게 맡기고 앱의 기능을 실행하는 방식입니다.
쉬운 설명
서버리스라는 이름에도 실제 코드를 실행하는 서버는 있어요. 개발자가 서버 한 대를 직접 설치하고 관리하는 부담을 줄이는 방식이에요. 예를 들어 신청 폼을 받는 함수만 배포하고 실행 환경은 제공자가 관리하게 할 수 있어요. 코드 오류, 접근 권한, 데이터 저장과 비용까지 모두 대신 책임지는 것은 아니에요.
이런 상황에서 만나요
스터디 신청 폼을 제출하면 정보를 저장하고 확인 메시지를 보내는 기능을 만든다고 해 볼게요. 이때 요청을 받는 백엔드 함수를 서버리스 실행 환경에 배포할 수 있어요.
신청 요청 한 번이 함수를 실행하는 예시예요
POST /api/applications
입력 확인 → DB 저장 → 응답
실행 성공·실패
실행 시간과 오류 로그
실제 DB 저장 결과
- 1신청 폼이 백엔드 기능을 요청해요.
- 2실행 환경은 제공자가 관리하지만 처리할 코드는 직접 준비해요.
- 3함수가 호출됐는지와 원하는 결과가 남았는지 확인해요.
아래는 한 번의 신청 요청이 함수를 실행하는 상황이에요. 성공 여부는 함수의 실행 로그와 실제 저장 결과로 확인해요. 실행 중 메모리에만 넣어 둔 신청 정보가 다음 요청까지 유지된다고 가정하지 말고 필요한 데이터는 외부 저장소에 남겨요.
헷갈리기 쉬운 점
서버리스면 비용도 없고 실행 시간 제한도 없나요?
아니에요. 실행량·시간·메모리 등 과금 기준과 한도는 서비스마다 달라요. 긴 AI 응답 생성이나 지속적으로 연결을 유지하는 봇은 사용하는 실행 환경의 조건에 맞는지 먼저 확인해야 해요.
요청이나 이벤트가 다시 전달될 수 있는 구성에서는 같은 신청을 중복 저장하거나 알림을 여러 번 보내지 않도록 처리해야 해요. 재시도 정책과 중복 처리 방식도 확인해요.
왜 알아야 할까요?
서버를 직접 관리하는 방법과 기능 단위로 맡기는 방법을 비교할 수 있어요. “배포는 됐는데 실행이 중단된다”는 문제도 코드 오류, 시간 한도, 외부 서비스 응답으로 나누어 확인할 수 있어요.
조금 더 자세히
서버리스는 함수 실행뿐 아니라 데이터베이스·메시지 처리 등 관리형 서비스에도 쓰이는 운영 방식입니다. 함수형 서버리스에서는 요청이나 이벤트를 계기로 코드를 실행하는 경우가 많지만 모든 서버리스 서비스가 같은 실행 모델을 쓰지는 않습니다.
실행 환경이 재사용될 수도 있고 새로 준비될 수도 있습니다. 환경 준비에 시간이 추가되는 현상을 콜드 스타트라고 부릅니다. 데이터 보관, 동시 실행, 재시도, 최대 실행 시간 등은 선택한 서비스의 조건에 맞춰 설계합니다.
직접 사용할 때 확인해 보세요
- 실행 시간과 메모리·비용 조건을 확인한다
- 데이터를 보관할 저장소를 정한다
- 실행 로그와 실제 결과·중복 처리를 확인한다