Dart는 주로 모바일 애플리케이션 개발에 많이 사용되지만, 서버 개발에도 적합한 프레임워크들이 존재합니다.
서버 프레임워크는 웹 서버를 구축하고, API를 제공하며, 클라이언트와의 상호작용을 처리하는 데 필요한 도구들을 제공합니다.
이번 포스트에서는 대표적인 Dart 서버 프레임워크인 Aqueduct와 Shelf에 대해 초보자도 쉽게 이해할 수 있도록 설명하겠습니다.
서버 프레임워크란 무엇인가요?
서버 프레임워크는 웹 서버나 애플리케이션 서버를 개발하는 데 도움을 주는 소프트웨어 라이브러리입니다. 서버 프레임워크는 다음과 같은 기능을 제공합니다.
- HTTP 요청 처리: 클라이언트로부터의 요청을 받고, 적절한 응답을 반환합니다.
- 라우팅: URL에 따라 요청을 적절한 처리 함수나 핸들러로 전달합니다.
- 미들웨어: 요청과 응답을 가로채어 전처리하거나 후처리합니다.
- 데이터베이스 연동: 데이터베이스와의 연결 및 쿼리 처리를 지원합니다.
Aqueduct
Aqueduct 소개
Aqueduct는 Dart로 작성된 서버 사이드 프레임워크로, 웹 서버와 RESTful API를 구축하는 데 유용합니다.
Aqueduct는 많은 기능을 내장하고 있으며, 웹 애플리케이션 개발을 위해 필요한 다양한 도구를 제공합니다.
주요 기능
- 라우팅: URL 경로에 따라 요청을 적절한 핸들러로 전달합니다.
- 미들웨어: 요청과 응답을 처리하는 중간 단계에서 작업을 수행할 수 있습니다.
- ORM (Object-Relational Mapping): 데이터베이스와의 연동을 쉽게 할 수 있도록 돕는 ORM 기능을 제공합니다.
- 인증 및 권한 관리: 사용자 인증과 권한 관리를 지원합니다.
예제 코드
Aqueduct를 사용하여 간단한 RESTful API를 만드는 예제입니다.
import 'package:aqueduct/aqueduct.dart';
class MyChannel extends ApplicationChannel {
@override
Future prepare() async {
// 준비 작업
}
@override
Controller get entryPoint {
final router = Router();
router.route('/hello').linkFunction((request) async {
return Response.ok('Hello, Aqueduct!');
});
return router;
}
}
void main() {
final app = Application<MyChannel>()
..options.port = 8888;
app.startOnCurrentIsolate();
}
Shelf
Shelf 소개
Shelf는 Dart의 또 다른 서버 사이드 프레임워크로, 간단하고 모듈화된 웹 서버를 만드는 데 중점을 둡니다. Shelf는 기본적인 기능만을 제공하며, 필요한 기능을 플러그인 형태로 추가하여 사용합니다.
주요 기능
- 미들웨어: 요청과 응답을 처리하는 다양한 미들웨어를 제공합니다.
- 라우팅: 간단한 라우팅 기능을 제공합니다.
- 호환성: Dart의 다른 라이브러리와 쉽게 통합할 수 있습니다.
예제 코드
Shelf를 사용하여 간단한 웹 서버를 만드는 예제입니다.
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;
void main() async {
final handler = const Pipeline()
.addMiddleware(logRequests())
.addHandler((Request request) {
return Response.ok('Hello, Shelf!');
});
final server = await io.serve(handler, 'localhost', 8080);
print('Server running on http://${server.address.host}:${server.port}');
}
Aqueduct와 Shelf 비교
- Aqueduct: 기능이 풍부하고, ORM, 인증 및 권한 관리 등의 기능을 내장하고 있습니다. 복잡한 웹 애플리케이션 개발에 적합합니다.
- Shelf: 간단하고 모듈화된 구조를 가지고 있으며, 기본적인 웹 서버를 쉽게 구축할 수 있습니다. 필요한 기능을 플러그인으로 추가하여 사용합니다.
Dart의 서버 프레임워크인 Aqueduct와 Shelf는 각각의 장점과 용도에 맞게 선택하여 사용할 수 있습니다.
Aqueduct는 풍부한 기능과 확장성을 제공하여 복잡한 웹 애플리케이션에 적합하며, Shelf는 간단하고 모듈화된 구조를 통해 기본적인 웹 서버를 신속하게 구축할 수 있게 도와줍니다.
필요에 따라 적절한 프레임워크를 선택하여 효율적인 서버 개발을 할 수 있습니다.
이 블로그 포스트가 Dart의 서버 프레임워크에 대한 이해를 돕는 데 도움이 되길 바랍니다!
구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
'Dart > Dart Server' 카테고리의 다른 글
[중급] Dart 서버 프레임워크 이해하기/ 프레임워크를 이용한 구조화된 서버 개발 (2) | 2024.09.09 |
---|---|
[중급] Dart 서버 프레임워크 이해하기/ 각 프레임워크의 설치 및 기본 사용법 (0) | 2024.09.09 |
[초급] Dart RESTful API 설계 기초/ 경로 매개변수 및 쿼리 매개변수 처리 (0) | 2024.09.08 |
[초급] Dart RESTful API 설계 기초/ CRUD 작업을 위한 기본 API 엔드포인트 설계 (0) | 2024.09.08 |
[초급] Dart RESTful API 설계 기초/RESTful API의 기본 원칙과 설계 (0) | 2024.09.08 |