Dart는 주로 프론트엔드 개발에서 많이 사용되지만, 서버 사이드 개발에서도 강력한 도구가 될 수 있습니다.
이번 블로그에서는 Dart를 사용하여 관계형 데이터베이스(PostgreSQL, MySQL 등)에 연결하고 데이터를 처리하는 방법을 초보자도 쉽게 이해할 수 있도록 설명하겠습니다.
1. Dart에서 데이터베이스와 연결하기
Dart에서는 다양한 패키지를 사용하여 데이터베이스와 연결할 수 있습니다.
PostgreSQL과 MySQL은 가장 많이 사용되는 관계형 데이터베이스 중 하나로, Dart에서 이들 데이터베이스와 연결하는 방법을 살펴보겠습니다.
2. PostgreSQL과 연결하기
PostgreSQL은 강력한 오픈소스 관계형 데이터베이스입니다. Dart에서는 postgres 패키지를 사용하여 PostgreSQL 데이터베이스와 연결할 수 있습니다.
2.1 PostgreSQL 패키지 설치
먼저 pubspec.yaml 파일에 postgres 패키지를 추가합니다.
dependencies:
postgres: ^2.5.0
터미널에서 pub get 명령어를 실행하여 패키지를 설치합니다.
2.2 PostgreSQL 연결 및 데이터 처리
다음은 PostgreSQL에 연결하고 데이터를 삽입하고 조회하는 간단한 예제입니다.
import 'package:postgres/postgres.dart';
Future<void> main() async {
// PostgreSQL 데이터베이스 연결
final connection = PostgreSQLConnection(
'localhost', // 데이터베이스 서버 주소
5432, // 포트 번호
'my_database', // 데이터베이스 이름
username: 'my_user', // 사용자 이름
password: 'my_password' // 비밀번호
);
// 연결
await connection.open();
// 테이블 생성
await connection.query('''
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name TEXT,
email TEXT
)
''');
// 데이터 삽입
await connection.query(
'INSERT INTO users (name, email) VALUES (@name, @email)',
substitutionValues: {
'name': 'John Doe',
'email': 'john.doe@example.com'
}
);
// 데이터 조회
List<List<dynamic>> results = await connection.query('SELECT * FROM users');
for (final row in results) {
print('User: ${row[0]}, ${row[1]}, ${row[2]}');
}
// 연결 종료
await connection.close();
}
- PostgreSQLConnection
PostgreSQL 데이터베이스와 연결하는 클래스입니다. 서버 주소, 포트 번호, 데이터베이스 이름, 사용자 이름, 비밀번호를 입력합니다. - connection.open()
데이터베이스에 연결합니다. - connection.query()
SQL 쿼리를 실행합니다. 데이터베이스에 테이블을 생성하고 데이터를 삽입하며, 데이터를 조회합니다. - connection.close()
데이터베이스 연결을 종료합니다.
3. MySQL과 연결하기
MySQL은 또 다른 인기 있는 관계형 데이터베이스입니다.
Dart에서는 mysql1 패키지를 사용하여 MySQL 데이터베이스와 연결할 수 있습니다.
3.1 MySQL 패키지 설치
먼저 pubspec.yaml 파일에 mysql1 패키지를 추가합니다.
dependencies:
mysql1: ^0.18.1
터미널에서 pub get 명령어를 실행하여 패키지를 설치합니다.
3.2 MySQL 연결 및 데이터 처리
다음은 MySQL에 연결하고 데이터를 삽입하고 조회하는 간단한 예제입니다.
import 'package:mysql1/mysql1.dart';
Future<void> main() async {
// MySQL 데이터베이스 연결
final settings = ConnectionSettings(
host: 'localhost', // 데이터베이스 서버 주소
port: 3306, // 포트 번호
user: 'my_user', // 사용자 이름
password: 'my_password', // 비밀번호
db: 'my_database', // 데이터베이스 이름
);
final connection = await MySqlConnection.connect(settings);
// 테이블 생성
await connection.query('''
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
)
''');
// 데이터 삽입
await connection.query(
'INSERT INTO users (name, email) VALUES (?, ?)',
['Jane Doe', 'jane.doe@example.com']
);
// 데이터 조회
var results = await connection.query('SELECT * FROM users');
for (var row in results) {
print('User: ${row[0]}, ${row[1]}, ${row[2]}');
}
// 연결 종료
await connection.close();
}
- ConnectionSettings: MySQL 데이터베이스와 연결하기 위한 설정을 정의합니다.
- MySqlConnection.connect(settings): 데이터베이스에 연결합니다.
- connection.query(): SQL 쿼리를 실행합니다. 데이터베이스에 테이블을 생성하고 데이터를 삽입하며, 데이터를 조회합니다.
- connection.close(): 데이터베이스 연결을 종료합니다.
Dart에서 관계형 데이터베이스(PostgreSQL, MySQL)와 연결하여 데이터를 처리하는 방법에 대해 알아보았습니다.
PostgreSQL과 MySQL 모두 postgres와 mysql1 패키지를 통해 쉽게 연결할 수 있으며, SQL 쿼리를 사용하여 데이터베이스 작업을 수행할 수 있습니다.
이 방법을 통해 Dart로 강력한 서버 사이드 애플리케이션을 개발할 수 있습니다.
이 블로그가 Dart에서 데이터베이스를 연결하고 사용하는 데 도움이 되었기를 바랍니다. 추가적인 질문이나 도움이 필요하시면 언제든지 말씀해 주세요!
구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
'Dart > Dart Server' 카테고리의 다른 글
[중급] Dart 서버 데이터베이스 연동/ 간단한 데이터 모델링 및 쿼리 작성 (1) | 2024.09.11 |
---|---|
[중급] Dart 서버 데이터베이스 연동/ ORM(Object-Relational Mapping) 도구 사용법 (Aqueduct ORM 등) (0) | 2024.09.11 |
[중급] Dart 서버 프레임워크 이해하기/ 프레임워크를 이용한 구조화된 서버 개발 (2) | 2024.09.09 |
[중급] Dart 서버 프레임워크 이해하기/ 각 프레임워크의 설치 및 기본 사용법 (0) | 2024.09.09 |
[중급] Dart 서버 프레임워크 이해하기/대표적인 Dart 서버 프레임워크 소개 (Aqueduct, Shelf ) (2) | 2024.09.09 |