Dart Frog 파트 5: Dart Globe로 백엔드 서비스 배포 🌍

발행: (2026년 1월 31일 오후 10:16 GMT+9)
4 분 소요
원문: Dev.to

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!

소스 코드

레포에 ⭐를 눌러 ❤️를 표시하고 저자를 팔로우하세요.

Back to Blog

관련 글

더 보기 »