매일 업데이트
2022-10-14 13:33 11 min

서버리스 앱을 만들기 위한 13가지 프레임워크

서버리스 기술에 매료되셨나요? 새로운 프로젝트를 시작하고 싶지만 어디서부터 시작해야 할지 막막하신가요?

여러분의 고민을 덜어드리기 위해, 현재 가장 인기 있는 서버리스 프레임워크들을 모았습니다!

서버리스 컴퓨팅은 관리 부담을 줄이면서 더 많은 것을 개발하고자 하는 사람들에게 큰 인기를 얻고 있습니다. 아직 비교적 새로운 기술이지만, 많은 개발자와 엔지니어가 서버리스 운영의 미래를 위한 혁신적인 솔루션을 구축하기 위해 노력하고 있습니다.

이미 아시다시피, '서버리스'는 서버가 없다는 의미가 아니라, 관리해야 할 서버의 수는 줄어들고 기능은 더욱 풍부해진다는 의미입니다. 다음 프로젝트에 안정적인 FaaS(Function as a Service) 플랫폼을 찾고 계신다면, 최고의 서버리스 컴퓨팅 플랫폼에 대한 이전 글을 참고해 보세요.

이제 우리가 사용할 수 있는 다양한 프레임워크를 살펴보고, 서버리스 분야에서 개발 중인 몇 가지 흥미로운 프로젝트를 소개하며 마무리하겠습니다. 함께 살펴보시죠!

AWS Amplify

AWS Amplify를 사용하면 웹 및 모바일 애플리케이션을 위한 확장 가능한 서버리스 앱을 신속하게 구축할 수 있습니다. 무한한 유연성을 경험해 보세요. 스마트 워크플로를 통해 데이터, 스토리지, 인증 등 다양한 기능을 갖춘 서버리스 백엔드를 구성할 수 있습니다.

코드 몇 줄만으로 모바일 및 웹 앱을 기존 AWS 리소스 또는 새로운 AWS 리소스에 연결할 수 있습니다. 몇 번의 클릭만으로 단일 페이지 웹 앱, 서버 측 렌더링 앱, 정적 웹 사이트를 호스팅하고 배포할 수 있습니다. 콘텐츠 및 앱 사용자 관리도 매우 간편합니다.

AWS Amplify는 프론트엔드 모바일 및 웹 개발자가 AWS에서 풀 스택 앱을 더 빠르게 생성하고 필요에 따라 앱을 사용자 지정할 수 있도록 지원합니다. Amplify는 React, Angular, JavaScript, Vue.js, Next.js 등 다양한 웹 프레임워크와 iOS, Ionic, Flutter, Android, React Native와 같은 모바일 플랫폼을 지원합니다.

Amplify의 풍부한 UI 컴포넌트 및 통합 기능을 활용하여 앱 개발을 가속화할 수 있습니다. 인증, 상호 작용, 기능, DataStore, 사용자 관리, API(REST, GraphQL), 분석, AI/ML 예측, 스토리지, PubSub, 푸시 알림 등 다양한 개발 기능 및 도구를 제공합니다. 또한 관리형 호스팅, PR 미리보기, CI/CD, 사용자 지정 도메인 및 배포 모니터링 기능도 제공됩니다.

Midway

기존 서버 측 애플리케이션, 소규모 프로그램, 마이크로서비스를 만들고 서버리스 서비스를 구축하고 싶으신가요? 그렇다면 Node.js 서버리스 프레임워크인 Midway를 사용해 보세요. Midway는 IoC 주입 메커니즘을 사용하여 애플리케이션 로직을 분리하고 대규모 Node.js 앱을 보다 쉽게 개발할 수 있도록 TypeScript로 작성되었습니다.

Midway는 express, EggJS, koa를 기본 프레임워크로 사용할 수 있습니다. 또한 GRPC, Dubbo.js, RabbitMQ, Socket.io 등의 기본 솔루션을 제공하여 독립적으로 사용할 수 있습니다. Midway는 풀 스택 또는 프론트엔드 개발자를 위한 Node.js 서버리스 웹 프레임워크 역할도 수행합니다.

Midway를 사용하면 컨테이너, VM, Alibaba Cloud, AWS 및 Tencent Cloud에서 실행되는 차세대 앱을 구축할 수 있습니다. Vue 및 React와도 쉽게 통합할 수 있습니다. 다음은 Midway의 주요 기능입니다.

  • 그룹화 및 확장 가능한 플러그인
  • 고급 그룹 미들웨어 호환성 및 아키텍처
  • 기능 분리 및 애플리케이션 계층화
  • 차세대 개발 경험
  • koa 미들웨어 및 Egg 플러그인 지원

Webiny

서버리스 앱을 설계, 배포 및 구축하는 데 필요한 모든 것을 제공하는 서버리스 애플리케이션 프레임워크인 Webiny를 만나보세요. 다양한 사용 사례를 위해 설계되었으며, 아키텍처와 기술 스택을 수정하여 조직 및 프로젝트 요구 사항에 맞게 조정할 수 있습니다.

SEO, 라우팅, 사전 렌더링, 보안, 배포, 번들링 등을 기반으로 비즈니스 웹사이트 및 애플리케이션을 구축할 수 있습니다. GraphQL 리졸버를 추출하여 내부 또는 외부 API를 생성할 수 있습니다. 단일 앱에 국한되지 않고 다양한 데이터베이스를 사용하는 애플리케이션을 구축해 보세요. NodeJS 데이터베이스 드라이버를 사용하여 외부 데이터베이스와 상호 작용할 수 있습니다.

Webiny는 코드 번들링, IaC, 배포 메커니즘 및 프로젝트 구성을 제공합니다. 제품을 목록의 맨 위에 추가하고 전 세계에 SaaS를 제공해 보세요. 내장된 AWS Cognito 및 보안 프레임워크를 사용하여 ACL로 애플리케이션의 일부 또는 전체를 보호할 수 있습니다. Auth0, OKTA 등에 대한 지원도 추가할 수 있습니다. 헤드리스 CMS, 페이지 빌더, 양식 빌더, 파일 관리자 등을 사용할 수 있습니다. 람다 함수에서 새로운 GraphQL API로 CLI 플러그인을 사용하여 상용구 코드를 생성할 수 있습니다.

Webiny의 Admin UI에는 30개 이상의 다양한 React 컴포넌트가 포함되어 있습니다. 또한 DDoS 보호, CDN 및 99.999999999%의 데이터 내구성을 확보할 수 있습니다. Webiny는 시행착오와 연구에 드는 시간을 절약해 줍니다.

AWS Chalice

Python으로 서버리스 애플리케이션을 작성하기 위한 프레임워크를 찾고 계신가요?

AWS Lambda를 통해 앱을 구축하고 배포할 수 있는 AWS Chalice를 사용해 보세요.

Chalice는 앱을 생성, 배포 및 관리하기 위한 명령줄 도구, Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS 및 기타 AWS 서비스와 통합하기 위한 데코레이터 기반 API를 제공합니다.

이를 통해 REST API를 생성하고, 정기적으로 실행되는 작업을 수행하고, 람다 함수를 S3 이벤트 및 SQS 대기열을 비롯한 다양한 AWS 리소스와 연결할 수 있습니다. 코드를 작성한 직후 Chalice를 사용하면 애플리케이션을 빠르게 실행하고 배포할 수 있습니다. Chalice는 Python 2.7, 3.6, 3.7 및 3.8을 포함하여 AWS Lambda가 지원하는 모든 Python 버전을 지원합니다.

애플리케이션을 배포하기 전에 모든 자격 증명을 구성해야 하지만, AWS CLI 또는 boto3를 이미 구성한 경우 이 단계를 건너뛸 수 있습니다. 배포 후에는 필요한 부분을 수정하고 변경 사항을 다시 배포할 수 있습니다. 더 깊이 있는 학습을 위해 튜토리얼, 주제 및 API 참조를 참고하세요.

Zappa

Zappa는 Python 앱을 위한 서버리스 프레임워크입니다. API Gateway 및 AWS Lambda에서 서버리스 및 이벤트 기반 Python 앱을 빌드하고 배포하는 작업을 더욱 간편하게 만들어줍니다. Zappa를 사용하면 현재 배포 비용을 최소화하면서 유지 관리, 가동 중지 시간 및 무한 확장의 이점을 누릴 수 있습니다.

설치 및 구성을 시작하기 전에 Python 3.x 및 AWS 계정이 있어야 하며 AWS 자격 증명 파일이 올바르게 설정되어 있는지 확인해야 합니다. pip를 사용하여 Zappa를 쉽게 설치할 수도 있습니다.

Zappa는 배포 설정을 자동으로 구성합니다. 설정이 완료되면 단일 명령줄로 프로덕션 환경에 앱을 배포할 수 있습니다. API Gateway CloudFormation 템플릿이 필요한 경우 템플릿 명령을 사용하십시오. SSL 인증서, AWS Certificate Manager 인증서 및 Let's Encrypt 인증서를 사용하여 사용자 지정 하위 도메인 및 도메인 이름에 Zappa를 배포할 수 있습니다.

API 키, IAM 정책, API Gateway Lambda 권한 부여자, Cognito 사용자 풀 권한 부여자 및 API Gateway 리소스 정책과 같은 API Gateway에서 보안 엔드포인트를 활성화할 수 있습니다. 또한 로컬 환경, 원격 AWS 환경, 원격 환경 등의 환경 변수를 S3 파일을 통해 설정할 수 있습니다.

Architect

Architect는 차세대 AWS 클라우드 기능 기반 서버리스 인프라를 전체 로컬, 오프라인 워크플로 등을 통해 생성, 배포 및 유지 관리하는 데 도움을 줍니다.

Architect는 상당히 정교한 프로젝트이므로 프로젝트 철학과 문서 페이지를 전체적으로 읽어보는 것이 좋습니다.

Up

Up은 무한한 확장성을 갖춘 서버리스 애플리케이션을 배포하는 데 도움이 되는 프레임워크입니다. Up을 사용하여 정적 웹사이트, API 등을 배포할 수도 있습니다. Up은 사용자에게 정말 중요한 일에 집중할 수 있는 유연성을 제공합니다.

Up은 기존 HTTP 서버 인스턴스를 배포하므로 새로운 프로토콜을 배울 필요가 없습니다. 대신 Django 또는 Express와 같은 선호하는 프레임워크를 사용하여 시작할 수 있습니다.

Claudia.js

Claudia.js는 개발자에게 Node.js 기반 프로젝트를 Lambda 시스템 및 API로 푸시할 수 있는 수단을 제공합니다. Claudia는 배포 작업, 구성을 자동화하고 최신 개발을 위한 JavaScript 환경을 자동으로 설정합니다.

이것이 여러분에게 의미하는 것은 무엇일까요? Claudia를 사용하면 몇 분 안에 마이크로서비스 여정을 시작할 수 있습니다. 결과적으로 불필요한 고민을 줄이고 실제 문제 해결에 더 많은 시간을 할애할 수 있습니다.

Claudia를 사용해야 하는 주요 이유는 다음과 같습니다.

  • 단일 명령으로 인스턴스 배포, 업데이트 및 관리
  • NPM 패키지와 완벽하게 작동
  • 통합된 상용구 구조로 당면한 작업에 더욱 집중할 수 있습니다.
  • 여러 버전에서 동시에 작업할 수 있는 버전 관리
  • 짧은 학습 곡선

Jets

루비를 좋아하시나요?

그렇다면 마이크로서비스를 생성하고 배포하기 위한 서버리스 Ruby 프레임워크인 Jets를 사용해 보세요. 이 프레임워크에는 API 구조를 생성하고 Lambda에 배포하는 데 필요한 모든 도구가 포함되어 있습니다.

Jets는 또한 AWS에서 제공하는 다양한 서비스 및 리소스를 결합하는 데 사용할 수 있는 별도의 기능을 작성하는 데 사용할 수 있습니다.

Jets는 기존 코드를 Lambda 및 기타 AWS 서비스용 함수로 변환하는 방식으로 작동합니다. 결과적으로 배포 및 프로비저닝과 같은 작업을 건너뛰고 기능 코드를 작성하는 데 더 많은 시간을 할애할 수 있습니다.

Pulumi

Pulumi는 모든 클라우드 기반 플랫폼에 소프트웨어를 만들고 배포하는 데 도움이 되는 편리한 SDK를 제공합니다. SDK는 컨테이너, 호스팅 서비스, 핵심 인프라 및 컨테이너를 지원합니다.

원하는 언어로 코드를 작성할 수 있습니다. Pulumi는 GCP, AWS, Kubernetes, Azure와 같은 서비스 제공업체의 리소스를 프로비저닝하고 관리합니다.

Serverless

누군가가 "serverless.com" 도메인 이름을 얻을 만큼 운이 좋았고, 그저 그 행운을 활용하고 있는 것뿐이라고 생각할 수도 있습니다! 하지만 이는 사실이 아닙니다.

Serverless Framework는 GitHub에서 30,000개 이상의 별을 받은 가장 인기 있는 서버리스 프레임워크 중 하나입니다.

그렇다면 이 프레임워크로 무엇을 할 수 있을까요? 무엇보다도 이벤트 등에 응답하는 수단으로 마이크로서비스를 사용하는 앱을 만들 수 있습니다. 예를 들어, 앱은 특정 호출이 있을 때만 응답하고 수요에 따라 확장 및 축소됩니다. 결과적으로 유휴 서비스를 유지 관리하는 데 사용되는 많은 비용을 절약할 수 있습니다.

이 프레임워크는 AWS Lambda, Google Cloud Functions 등과 같은 새로운 이벤트 기반 컴퓨팅 서비스를 활용합니다. 서버리스 아키텍처 개발 및 배포를 위한 스캐폴딩, 워크플로 자동화 및 모범 사례를 제공하는 명령줄 도구입니다. 또한 플러그인을 통해 완전히 확장할 수 있습니다.

Sigma

Sigma는 서버리스 개발 아이디어를 기반으로 구축된 새로운 클라우드 기반 IDE입니다. 단순한 텍스트 편집기가 아니라 실시간으로 코드를 작성하고 해당 코드를 라이브 애플리케이션으로 게시할 수 있는 완전한 기능을 갖춘 IDE입니다.

Sigma IDE는 선택한 서버리스(FaaS) 플랫폼과 구성 파일의 요구 사항만 처리합니다. 결과적으로 반복적인 작업에 소비하는 시간을 크게 줄일 수 있습니다.

또한 Sigma는 유사한 결과를 얻기 위해 다른 도구와 달리 서버가 없습니다. IDE는 전적으로 브라우저 내에서 실행되며 일부 기능을 제외한 모든 기능에 대해 백엔드 서비스가 작동할 필요가 없습니다. 특히 사용자 인증 및 분석 데이터 수집에는 백엔드가 필요합니다.

Sigma는 계속해서 지켜볼 가치가 있으며 직접 사용해 보는 것도 좋습니다.

Auth0

서버리스 개념에 관심이 있다면, 이 글의 앞부분에서 언급한 서버리스 프레임워크에 대해 들어봤을 것입니다.

Auth0은 모든 Serverless Framework 사용자를 위한 효과적인 추가 기능인 Auth0 Web Tasks를 구축하기 위해 노력했습니다. 이 프로젝트의 이름은 Webtask이며 여기에서 홈페이지를 찾을 수 있습니다.

본질적으로 Webtask를 사용하면 인프라에 대한 걱정 없이 호환 가능한 앱을 만들 수 있습니다. Webtask에서 제공하는 CLI를 사용하여 서버 측 로직을 작성하고 모든 기능을 배포할 수 있습니다. 그런 다음 HTTP 프로토콜을 사용하여 백엔드를 탐색할 수 있습니다.

업데이트: Webtask 웹사이트는 이후 폐쇄되었습니다.

서버리스 예시

이 글의 앞부분에서 Serverless Framework에 대해 이야기했으며, 여기에서는 다양한 서버리스 프레임워크의 사용 사례를 제공합니다.

이러한 예제는 특정 프레임워크에 국한되지만, 새로운 서버리스 개념을 배우는 과정을 계속해서 즐길 수 있습니다.

예제는 AWS, Azure, Kubeless, Google Cloud 및 OpenWhisk와 같은 플랫폼에서 사용할 수 있습니다. 또한 nodeJS, Python, Go, Java, PHP 및 Swift의 6가지 언어를 지원합니다.

다음과 같은 예제를 살펴보세요. Twitter 농담 봇과 OAuth 드롭박스 API.

실제 학습을 원한다면 온라인 코스를 확인해 보세요.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.