📌 서버리스 란? (Serverless)
서버리스는 이름에서 알 수 있듯이, 개발자가 서버를 직접 관리하지 않아도 되는 컴퓨팅 모델입니다.
실제로 서버는 존재하지만, 클라우드 서비스 제공업체가
모든 서버 관련 작업(설치, 유지보수, 스케일링 등)을 처리해 줍니다.
따라서 개발자는 비즈니스 로직에 집중할 수 있습니다.
📌 클라우드 컴퓨팅 모델
- IaaS (Infrastructure as a Service)
- PaaS (Platform as a Service)
- BaaS (Backend as a Service)
- FaaS (Function as a Service)
🔎 IaaS (Infrastructure as a Service)
IaaS는 개발자가 직접 서버를 설정하고 관리하는 클라우드 서비스
이 서비스는 기본적인 IT 인프라(서버, 스토리지, 네트워크)를 제공하며,
사용자는 필요에 따라 서버를 생성하고 구성할 수 있습니다.
그러나 운영체제, 소프트웨어 설치, 보안 설정 등은 사용자가 직접 처리해야 하므로,
이 모델은 서버리스라고 부를 수 없습니다.
- AWS EC2 (아마존)
- Microsoft Azure Virtual Machines (마이크로소프트)
- Google Cloud Compute Engine (구글)
🔎 PaaS (Platform as a Service)
PaaS는 프론트엔드 애플리케이션 배포에 적합한 클라우드 플랫폼
React 애플리케이션을 빌드하면 생성된 HTML, CSS, JavaScript 정적 파일을
정적 사이트 호스팅 서비스를 통해 배포할 수 있습니다.
주로 정적 웹사이트와 프론트엔드 애플리케이션을 호스팅하며, 로드밸런싱은 클라우드에서 자동으로 관리
PaaS는 데이터베이스 기능을 제공하지 않으므로, 유동적인 데이터 저장이 필요할 경우
BaaS나 다른 데이터베이스 서비스를 이용해야 합니다.
비용은 트래픽과 데이터 전송량에 따라 청구
- AWS S3 (아마존)
- Netlify
- Vercel
🔎 BaaS (Backend as a Service)
BaaS는 클라우드에서 미리 제공되는 백엔드 기능을 API로 호출하여 사용하는 서버리스 솔루션
미리 정의된 기능(인증, 데이터베이스 등)을 API로 제공하며,
사용자가 직접 함수를 정의하거나 등록할 수 없습니다.
백엔드 개발 없이 API를 통해 로그인이나 데이터 저장 작업을 쉽게 처리할 수 있습니다.
비용은 사용한 자원량에 따라 청구되며, 무료 용량과 호출 횟수가 정해져 있어
이를 초과하면 추가 요금이 발생
- Firebase(Authentication, Firestore) (구글)
- AWS Amplify (아마존)
- Back4App
🔎 FaaS (Function as a Service)
FaaS는 특정 함수가 필요할 때만 실행되는 서버리스 솔루션
사용자는 함수를 정의한 후 클라우드에 업로드하고, URL을 통해 호출할 수 있습니다.
이벤트가 발생할 때만 함수가 실행되며, 서버가 항상 켜져 있지 않아 필요할 때만 리소스를 사용합니다.
함수 호출 횟수와 실행 시간에 따라 비용이 청구되며, 호출되지 않으면 비용이 발생하지 않습니다.
- AWS Lambda (아마존)
- Google Cloud Functions (구글)
- Microsoft Azure Functions (마이크로소프트)
✏️ 리액트에서 서버리스 사용방법
서버리스는 서버 설정, 관리, 스케일링 등을 클라우드가 대신 처리하기 때문에,
개발자는 프론트엔드와 백엔드 로직 구현에만 집중할 수 있습니다.
사용자가 몰리더라도 로드밸런싱이나 서버 확장 작업을 할 필요가 없다는 점 서버리스의 가장 큰 장점
React 애플리케이션 빌드/배포 (PaaS)
빌드된 HTML, CSS, JS 파일을 정적 사이트 호스팅 서비스(예: Netlify, Vercel)에 배포하여
사용자에게 애플리케이션을 제공합니다.
서버리스 백엔드 로직 처리 (BaaS 또는 FaaS)
FaaS (예: AWS Lambda)를 통해 사용자 정의 함수를 작성하고,
사용자가 데이터를 요청하거나 로그인할 때 이를 호출하여 백엔드 로직을 처리합니다.
예를 들어, 사용자가 로그인할 때 FaaS를 통해 정의한 인증 함수를 호출합니다.
BaaS (예: Firebase)와 같은 서비스를 사용하면
미리 정의된 API를 통해 백엔드 작업을 간편하게 처리할 수 있습니다.
예를 들어, Firebase의 인증 API를 활용하여 손쉽게 사용자 인증을 수행할 수 있습니다.
'📌 Front End > └ React' 카테고리의 다른 글
[React] Next.js 다국어(next-i18next) ES모듈 사용 시 에러 해결 방법 - CommonJS (4) | 2024.10.15 |
---|---|
[React] Next.js로 React와 TypeScript 환경 설정하기 (4) | 2024.10.11 |
[React] 리액트에서 Nivo Chart 데이터 시각화 (3) | 2024.10.06 |
[React] 리액트 SSR 렌더링 및 빌드 배포 가이드 - React Vite 프로젝트 SSR (3) | 2024.10.04 |
[React] 리액트 CSR 렌더링 및 빌드 배포 가이드 - React Vite 프로젝트 CSR (4) | 2024.10.04 |