Dart Frog

시작하기

Siyoung.dev 2025. 12. 31. 16:26

Dart Frog는 Shelf와 Mason에 기반하여 Remix.run, Next.js, Express.js를 포함한 많은 백엔드 라이브러리에 영감을 받아 Dart로 개발된 백엔드 라이브러리이다.

Dart Frog는 개발자가 Dart에서 백엔드를 효과적으로 구축할 수 있도록 돕는 것을 목표로 하며, 현재 여러 소스의 데이터를 집계하고, 구성 및 정규화하는 백엔드 구축 프로세스를 최적화하는 데 중점을 두고 있다.

Dart Frog는 개발자의 학습 곡선과 램프업 시간을 줄이기 위해 작은 API 표면적을 가진 간단한 코어를 제공한다. 또한 Dart Frog는 Flutter/Dart 개발자가 도구, 모델 등을 공유할 수 있는 통합 기술 스택을 보유하여 생산성을 극대화할 수 있도록 돕기 위한 것이다.

또한 Dart Frog는 대중적인 기술이라고 보기는 어렵다. 하지만 “대중적이지 않다”가 나쁜 기술이라는 것은 아니다. Dart와 Flutter를 주력으로 사용하는 개발자라면, FastAPI가 Python 개발자에게 제공하는 경험을 비슷하게 얻을 수 있다. 즉, Spring처럼 모든 상황에 적합한 범용 프레임워크라기보다는, Dart 기반 개발자에게 최적화된 선택지라고 할 수 있다.


Quick Start

전제 조건

Dart Frog를 사용하려면 컴퓨터에 Dart SDK가 설치되어 있어야 한다.

참고
Dart Frog를 사용하려면 다음 버전의 Dart가 필요하다. ≥3.0.0 < 4.0.0

Dart Frog 설치하기

다음 명령어를 사용해서 pub을 이용해 Dart Frog를 전역 설치한다.

dart pub global activate dart_frog_cli

프로젝트 생성하기

dart_frog create 명령어를 이용해서 새로운 프로젝트를 만들 수 있다.

dart_frog create dart_frog_example

서버 실행

새로 생성된 프로젝트를 열고 다음 명령어를 통해 Dart Frog 서버를 실행합니다.

dart_frog dev

Tip

실행 중인 Dart Frog 서버를 사용자 지정하려면 다음 옵션으로 지정할 수 있다.
--port - Dart Frog 서버를 실행할 포트입니다. 기본 포트는 8080입니다.
--dart-vm-service-port - Dart VM 서비스가 실행되는 포트입니다. 기본값은 8181이며, 이는 동일한 호스트에서 여러 Dart Frog 서버를 동시에 실행할 때 필요합니다.
--host - Dart Frog 서버를 실행할 호스트 주소를 지정하는 것으로 기본값은 localhost입니다. 추가로 옵션을 지정하려면 -- 를 사용하여 dart frog dev 명령 옵션 처리를 종료할 수 있다. -- 이후에 오는 모든 인자는 Dart 도구 프로세스에 그대로 전달된다.

주의

dart_frog_cli 의 각 릴리즈는 dart_frog 런타임의 특정 범위만 지원합니다. 현재 dart_frog 런타임이 설치된 dart_frog_cli 버전과 호환되지 않으면 버그가 발생하며, 이에 따라 dart_frog_cli 버전이나 dart_frog 버전 중 하나를 업데이트해야 합니다.


프로덕션 빌드 만들기

Dockerfile을 포함하는 프로덕션 빌드를 생성하여 어디에나 배포할 수 있습니다.

dart_frog build

제거하기

Dart Frog를 완전히 제거하기 위해, 먼저 CLI completion 파일을 제거해야 합니다.

dart_frog uninstall-completion-files

이제 Pub을 이용해 Dart Frog를 전역으로 설치했다면 다음 명령어를 이용해 Dart Frog를 제거할 수 있습니다.

dart pub global deactivate dart_frog_cli

지원 기능

이름 상태
Hot Reload
Dart DevTools
File System Routing
Index Routes
Nested Route
Dynamic Routes
Middleware
Dependency Injection
Production Build
Docker
Static File Support
WebSocket Support
VS Code Extension
Autogenerated Dart Client Package 🚧
Autogenerated API Documentation 🚧

'Dart Frog' 카테고리의 다른 글

Prologue  (0) 2025.12.31
Dart Frog 공부하기  (0) 2025.12.31