데브허브 | DEVHUB | How I setup custom domains for clientsHow I setup custom domains for clients
- 핵심 목표: 클라이언트가 커스텀 도메인을 앱에 연결하여 사용할 수 있도록 하는 것이 프로젝트의 주요 목표였습니다. 🎯
- 앱 개요: 사용자가 웹사이트 페이지를 수정하고 스타일을 변경할 수 있는 간단한 프로토타입으로, 각 프로젝트는 고유 ID를 가지며 iframe을 통해 제공됩니다. 🖼️
- 커스텀 도메인 솔루션: Cloudflare for SaaS를 활용하여 커스텀 호스트 이름을 설정하고, 자체 인프라 구축 없이 API를 통해 관리합니다. ☁️
- 설정 과정: 사용자는 앱에서 커스텀 도메인을 추가하고, DNS 제공업체에 TXT 레코드(인증서 유효성 검사)와 CNAME 레코드(프로젝트 도메인 연결)를 추가해야 합니다. ⚙️
- 트래픽 라우팅: 커스텀 도메인 트래픽은 Cloudflare를 거쳐 Cloudflare Worker로 라우팅됩니다. Worker는 호스트 이름을 기반으로 프로젝트 ID를 식별하고, Convex 스토리지에서 정적 파일을 가져와 사용자에게 제공합니다. 🛣️
- 백엔드 및 스토리지: 모든 백엔드 로직과 파일 저장은 Convex를 통해 이루어집니다. 💾
- 확장성 및 안정성: Cloudflare Worker를 통한 서비스는 확장성이 뛰어나며, 단일 장애 지점을 피하는 데 중점을 두었습니다. 🚀
- 성능 및 비용 최적화 고려사항: Cloudflare KV를 사용한 캐싱, Convex API 호출 통합, Cloudflare R2로 파일 저장 위치 변경 등 향후 성능 및 비용 개선 방안을 모색 중입니다. ⚡
- 개발 철학: "일단 작동하게 만들고, 올바르게 만들고, 그 다음에 빠르게 만든다"는 접근 방식을 따릅니다. 🛠️
- 대안 검토: Caddy와 Go 프록시를 사용한 VPS 호스팅은 단일 장애 지점 문제로 기각되었으며, Convex를 직접 오리진으로 사용하는 방안도 고려되었으나 DNS 라우팅 복잡성으로 보류되었습니다. 🚫