웹사이트나 서비스를 개발하다 보면 생각보다 빨리 이런 고민을 하게 됩니다.
또한 저처럼 홈서버가 없는경우에도 이런 고민을 많이 하게 됩니다.
“로그인과 회원가입은 어디에서 처리하지?” “데이터베이스 때문에 서버를 하나 만들어야 하나?” “백엔드는 어디에 올리는 게 좋을까?” “AWS와 Oracle Cloud는 언제 써야 할까?”
처음에는 서버 하나를 만들고 모든 기능을 그 안에 넣어야 할 것 같지만, 꼭 그렇지는 않습니다.
요즘은 프로젝트의 각 부분에 맞는 서비스를 따로 사용하는 방식도 많이 사용합니다.
먼저 역할을 나눠보자
하나의 웹서비스도 실제로는 여러 부분으로 나눌 수 있습니다.
사용자
↓
Frontend
↓
Backend / API
↓
Database
여기에 로그인, 파일 저장, 이미지 저장 같은 기능도 추가됩니다.
각 역할에 적합한 서비스를 선택하면 서버 관리 부담을 크게 줄일 수 있습니다.
로그인과 데이터베이스는 Supabase
Supabase는 PostgreSQL을 기반으로 하는 백엔드 서비스입니다.
단순히 SQL 데이터베이스만 제공하는 것이 아니라 다음과 같은 기능을 함께 제공합니다.
- PostgreSQL
- 로그인 / 회원가입
- 사용자 인증
- Storage
- API
- 실시간 데이터 처리
예를 들어 커뮤니티 사이트를 만든다면 다음과 같이 구성할 수 있습니다.
웹사이트
↓
Supabase
├─ Auth
│ └─ 로그인 / 회원가입
│
├─ PostgreSQL
│ ├─ 사용자 정보
│ ├─ 게시글
│ └─ 댓글
│
└─ Storage
└─ 이미지 / 파일
간단한 프로젝트라면 별도의 데이터베이스 서버를 직접 구축하지 않아도 됩니다.
특히 로그인과 회원가입까지 필요한 서비스라면 개발 시간을 상당히 줄일 수 있습니다.
프론트엔드는 Cloudflare Pages나 Vercel
HTML, React 같은 프론트엔드를 배포한다고 해서 반드시 가상 서버가 필요한 것은 아닙니다.
정적 사이트나 프론트엔드 프로젝트라면 다음과 같은 서비스를 사용할 수 있습니다.
- Cloudflare Pages
- Vercel
GitHub 저장소와 연결해두면 코드를 Push할 때 자동으로 새 버전을 배포할 수도 있습니다.
예를 들어 다음과 같은 구성이 가능합니다.
사용자
↓
Cloudflare Pages
↓
Supabase
웹사이트는 Cloudflare Pages에서 제공하고, 로그인과 데이터는 Supabase에서 처리하는 방식입니다.
개인 프로젝트라면 상당히 간단하면서도 관리하기 편한 구조입니다.
백엔드 API는 Railway나 Render
모든 프로젝트를 Supabase만으로 만들 수 있는 것은 아닙니다.
Python이나 Node.js로 직접 API를 만들고 싶을 수도 있습니다.
예를 들면:
Frontend
↓
Node.js API
↓
Database
이런 가벼운 백엔드 프로그램은 Railway나 Render 같은 서비스를 사용할 수 있습니다.
직접 Linux 서버를 만들고 방화벽이나 프로세스를 관리하는 것보다 배포 과정이 간단한 편입니다.
GitHub와 연결해서 자동 배포하기에도 편리합니다.
개인 프로젝트나 프로토타입에는 이런 방식이 상당히 잘 맞습니다.
직접 서버를 관리하고 싶다면 Oracle Cloud
Railway나 Supabase 같은 서비스는 편리하지만 서버를 마음대로 구성하고 싶은 경우에는 한계가 있습니다.
이럴 때 VPS를 사용할 수 있습니다.
Oracle Cloud에서는 가상 서버를 만들어 직접 Linux를 설치하고 원하는 프로그램을 실행할 수 있습니다.
예를 들어:
Oracle Cloud
├─ Node.js API
├─ Python 프로그램
├─ Discord Bot
├─ Docker
└─ 기타 서버 프로그램
이렇게 한 서버에서 여러 프로그램을 실행할 수도 있습니다.
개인 서버나 테스트 서버를 직접 관리해보고 싶다면 좋은 선택지가 될 수 있습니다.
다만 무료 인스턴스는 리전의 남은 자원이 부족하면 생성하지 못하는 경우가 있다는 점은 단점입니다.
AWS는 언제 사용하는 게 좋을까?
AWS는 단순히 가상 서버 하나만 제공하는 서비스가 아닙니다.
EC2를 포함해 다양한 클라우드 서비스를 제공합니다.
예를 들면:
- EC2
- S3
- RDS
- Lambda
- CloudFront
프로젝트 규모가 커졌을 때 필요한 기능을 추가하면서 확장하기 좋습니다.
실제 기업에서도 많이 사용되기 때문에 클라우드 인프라를 공부하려는 목적에도 잘 맞습니다.
다만 작은 개인 프로젝트에서는 필요한 서비스보다 설정해야 할 것이 많아 복잡하게 느껴질 수 있습니다.
따라서 단순히 웹사이트 하나를 배포하기 위해 무조건 AWS부터 사용할 필요는 없습니다.
Discord Bot 같은 프로그램은?
Discord Bot 역시 결국 계속 실행되어야 하는 하나의 프로그램입니다.
간단한 봇은 많은 CPU나 메모리가 필요하지 않은 경우가 많기 때문에 작은 호스팅 환경에서도 충분히 운영할 수 있습니다.
예를 들면:
- 봇 전용 호스팅
- Railway
- 소형 VPS
등을 사용할 수 있습니다.
반대로 여러 봇이나 API 서버 등 여러 프로그램을 함께 운영한다면 Oracle Cloud 같은 VPS를 사용하는 방법도 있습니다.
즉, Discord Bot 때문에 특별한 서버가 필요한 것이 아니라 프로그램의 규모와 필요한 자원에 맞게 호스팅을 선택하면 됩니다.
용도별로 정리하면
| 필요한 기능 | 추천 서비스 |
|---|---|
| 로그인 / 회원가입 | Supabase |
| PostgreSQL 데이터베이스 | Supabase |
| 이미지 / 파일 저장 | Supabase Storage |
| 정적 웹사이트 | Cloudflare Pages / Vercel |
| React 프론트엔드 | Vercel / Cloudflare Pages |
| 가벼운 Node.js / Python API | Railway / Render |
| 간단한 Discord Bot | 전용 호스팅 / Railway |
| 여러 프로그램 동시 실행 | Oracle Cloud / VPS |
| Docker 서버 | Oracle Cloud / AWS |
| 직접 Linux 서버 관리 | Oracle Cloud / AWS |
| 대규모 서비스 확장 | AWS |
| 클라우드 공부 | AWS |
개인 프로젝트라면 이렇게 시작해볼 수 있다
간단한 웹서비스를 만든다면 처음부터 서버를 직접 구축할 필요는 없습니다.
Frontend
Cloudflare Pages / Vercel
↓
Backend
Supabase
- Auth
- PostgreSQL
- Storage
직접 처리해야 하는 백엔드 코드가 생기면 그때 API 서버를 추가하면 됩니다.
Frontend
↓
Railway API
↓
Supabase
더 많은 프로그램을 운영하거나 서버 설정을 직접 관리해야 한다면 VPS를 추가할 수 있습니다.
Cloudflare Pages
↓
Supabase
+
Oracle Cloud
├─ API Server
├─ Bot
└─ 기타 프로그램
프로젝트가 성장한 이후 AWS 같은 클라우드 환경으로 옮기거나 확장하는 방법도 있습니다.
마무리
개발을 처음 시작하면 **“웹서비스를 만들려면 일단 서버부터 하나 빌려야 한다”**고 생각하기 쉽습니다.
하지만 요즘은 꼭 모든 것을 서버 한 대에서 처리할 필요가 없습니다.
간단하게 정리하면,
프론트엔드는 Cloudflare Pages나 Vercel, 로그인과 데이터베이스는 Supabase, 가벼운 백엔드는 Railway나 Render, 직접 서버를 관리해야 한다면 Oracle Cloud나 AWS를 사용할 수 있습니다.
어떤 서비스가 무조건 가장 좋은 것은 아닙니다.
결국 가장 중요한 것은 지금 만드는 프로젝트에 어떤 기능이 필요한지 먼저 확인하고, 그 기능에 맞는 서비스를 선택하는 것입니다.
