[dart] Dart와 서버 상호작용

Dart는 Google이 개발한 웹 및 모바일 애플리케이션용 프로그래밍 언어이다. Dart는 자바스크립트 및 다른 웹 기술과 호환되며, 서버 측에서도 실행될 수 있다. 서버 상호작용을 통해 Dart 언어로 작성된 애플리케이션은 데이터베이스와 통신하거나 외부 API와 상호작용할 수 있다.

이 글에서는 Dart로 서버 상호작용을 하는 방법에 대해 알아보겠다.

HTTP 요청

Dart에서 서버와 상호작용하기 위해 가장 흔히 사용되는 방법은 HTTP 요청을 보내는 것이다. 표준 라이브러리의 http 패키지를 사용하여 간단하게 HTTP GET 및 POST 요청을 수행할 수 있다.

다음은 Dart에서 HTTP GET 요청을 보내는 예제이다.

import 'package:http/http.dart' as http;

void main() async {
  var response = await http.get('https://example.com/data');
  print('Response status: ${response.statusCode}');
  print('Response body: ${response.body}');
}

위 코드에서는 http 패키지를 사용하여 https://example.com/data로 GET 요청을 보내고, 응답을 출력하는 예제이다.

외부 API 상호작용

외부 API와 상호작용하여 데이터를 가져오는 것은 웹 애플리케이션 및 모바일 애플리케이션에서 흔히 수행되는 작업이다. Dart에서는 http 패키지를 사용하여 외부 API와 통신할 수 있다.

다음은 Dart에서 외부 API와 상호작용하는 예제이다.

import 'package:http/http.dart' as http;

void main() async {
  var response = await http.get('https://api.example.com/data');
  if (response.statusCode == 200) {
    print('Response status: ${response.statusCode}');
    print('Response body: ${response.body}');
  } else {
    print('Failed to load data: ${response.statusCode}');
  }
}

위 코드에서는 http 패키지를 사용하여 외부 API인 https://api.example.com/data로 GET 요청을 보내고, 응답을 확인하여 처리하는 예제이다.

데이터베이스 상호작용

서버 애플리케이션에서 데이터베이스와 상호작용하는 것은 중요한 작업이다. Dart에서는 데이터베이스와의 상호작용을 위해 dart:io 패키지나 외부 라이브러리를 사용할 수 있다.

다음은 Dart에서 데이터베이스와 상호작용하는 예제이다.

import 'package:mysql1/mysql1.dart';

void main() async {
  final conn = await MySqlConnection.connect(ConnectionSettings(
    host: 'localhost',
    port: 3306,
    user: 'username',
    password: 'password',
    db: 'database_name',
  ));
  
  var results = await conn.query('SELECT * FROM table_name');
  for (var row in results) {
    print('Data: $row');
  }
  
  await conn.close();
}

위 코드에서는 mysql1 패키지를 사용하여 MySQL 데이터베이스에 연결하고, 쿼리를 실행하여 결과를 처리하는 예제이다.

마치며

Dart는 서버 측에서도 사용할 수 있는 다목적 언어이며, HTTP 요청을 통해 외부 API와 데이터베이스와 상호작용할 수 있다. Dart를 사용하여 서버 측 개발을 할 때는 이러한 상호작용 방법을 숙지하는 것이 중요하다.

이상으로 Dart와 서버 상호작용에 대한 간단한 소개를 마친다.

http 패키지 문서 mysql1 패키지 문서