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 |