Dart Frog 파트 5: Dart Globe로 백엔드 서비스 배포 🌍
Source: Dev.to
전제 조건 (이전 파트에서)
-
Part 4에서 만든 Dart Frog 프로젝트 (인증, 보호된 라우트, 인‑메모리 또는 간단한 DB 포함).
-
Globe 계정 (무료로 가입하세요 ).
-
Globe CLI 설치:
dart pub global activate globe_cli -
로그인:
globe login -
Dart Frog CLI (시리즈에서 이미 설치됨).
-
로컬에서 한 번 빌드:
dart_frog build # creates an optimized production binary in /build
단계 1: 프로젝트를 프로덕션용으로 준비하기
Globe는 Dart Frog 프로젝트를 자동 감지하지만, 몇 가지 조정으로 원활하게 실행할 수 있습니다.
올바른 포트에서 리스닝
Dart Frog는 기본적으로 8080을 사용하지만, Globe는 PORT 환경 변수를 사용합니다. main.dart(또는 서버를 시작하는 파일)를 업데이트하세요:
import 'dart:io';
import 'package:dart_frog/dart_frog.dart';
void main() async {
final port = int.parse(Platform.environment['PORT'] ?? '8080');
await serve(handler, InternetAddress.anyIPv4, port);
}
비밀키 및 환경 변수
Part 4에서 사용한 JWT 비밀키는 하드코딩 대신 Globe의 환경 변수 대시보드에 설정하세요:
final secret = Platform.environment['JWT_SECRET'] ?? 'fallback-dev-secret';
CORS (필요한 경우)
핸들러 전에 필요한 CORS 미들웨어를 추가하세요, 예시:
import 'package:shelf_cors_headers/shelf_cors_headers.dart';
final handler = const Pipeline()
.addMiddleware(corsHeaders())
.addHandler(yourRouter);
로컬에서 빌드
dart_frog build
이는 Globe가 효율적으로 실행할 수 있는 AOT 바이너리를 컴파일합니다.
Globe에 배포
프로젝트 루트에서:
globe deploy
- CLI가 프로젝트를 생성하거나 연결하고 이름을 선택하도록 안내합니다(예:
todo-project). - Globe는 Dart Frog 구조를 자동으로 감지하고, 적절한 프리셋을 적용한 뒤 AOT 바이너리를 빌드합니다.
- 프로덕션 수준 배포를 위해
--prod플래그를 추가하세요:
globe deploy --prod
성공 후
-
URL:
https://your-project-name.globeapp.dev(나중에 커스텀 도메인도 가능). -
엔드포인트 테스트: Postman 또는
curl을 사용해 라이브 URL에 요청하세요, 예시:curl -H "Authorization: Bearer <TOKEN>" https://todo-api-samuel.globeapp.dev/todos
단계 3: 배포 후 팁
- 환경 변수: 대시보드 → Project → Settings → Environment Variables →
JWT_SECRET, DB 자격 증명 등을 추가. - 스케일링 및 성능: 필요에 따라 자동 스케일링; 가능한 경우 엣지 캐시 활용.
- 로그 및 모니터링: 내장 로그 및 메트릭 대시보드.
- 커스텀 도메인: 설정에서 추가 (SSL은 자동으로 제공).
- CI/CD: 푸시 시 자동 배포를 위해 GitHub 레포를 연결.
- 비용: 무료 티어는 초보자에게 충분히 관대하며, 이후 사용량에 따라 비용이 청구됩니다.
라이브에서 전체 스택 앱 테스트
Flutter 앱의 Dio baseUrl을 Globe URL로 업데이트하세요:
final Dio _dio = Dio(BaseOptions(baseUrl: 'https://your-project-name.globeapp.dev'));
Flutter 앱을 실행하면 라이브 백엔드와 안전하게 CRUD Todos를 수행할 수 있습니다. 프로덕션 환경의 풀스택 Dart!
소스 코드
레포에 ⭐를 눌러 ❤️를 표시하고 저자를 팔로우하세요.